• 《西北师范大学学生疫情上报系统》项目报告


    实验二《西北师范大学学生疫情上报系统》项目报告

    项目 内容
    课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
    作业要求 https://www.cnblogs.com/nwnu-daizh/p/12416880.html
    课程学习目标 (1)学习软件项目的个人开发流程(2)掌握GitHub的操作方法
    本次在哪些方面帮助我实现学习目标 软件开发流程的方面和运用学习工具的方面
    项目的Github仓库链接 https://github.com/Siofer/zfw

    项目开发背景简介:
    2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工作;在全国范围内调配口罩、防护服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其他省份调集物资保障武汉市民日常生活。
    值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减少发热病人之间的相互交叉感染具有重要的作用,患者在家通过互联网向在线医生问诊,减少了病毒传播或感染的风险;谣言粉碎对于公众采取理性态度看待疫情的发展具有重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具有重要作用。此外,还有新型肺炎确诊患者同行程查询工具,用户只需要输入自己所乘坐交通工具的时间和班次,就可以确认是否与被确诊感染者同行,提前做好自我隔离和就诊工作。在疫情防控中,中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。
    为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各类人员基本情况、所在区域及活动轨迹及健康状况的信息收集。师生通过我校企业微信服务大厅访问该系统进行远程信息填报。
    参考文献:
    中国抗击新型冠状病毒:进展和影响[EB/OL]. (2020-02-01)/[2020-03-04]. http://cn.chinadaily.com.cn/a/202002/01/WS5e358d1fa3107bb6b579c92b.html
    任务一:
    陈述学生疫情每日上报子系统使用体验;
    任务二:
    结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你自己心目中的西北师范大学学生疫情每日填报系统。你可在以下两类开发要求选择一种完成项目开发任务(我选择的是第一类):
    有一个数据文件,保存了100天 2000 个教职工/学生的所有防疫信息,请设计一个命令行程序,支持查询某人在某一天的疫情情况, 查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果。
    1.需求分析:
    随着疫情的不断蔓延,受灾地区不断扩大,而且,由于中国人口过于密集,更是给了疫情一个良好的传播途径。因此,要尽早控制疫情的蔓延,首要任务就是控制疫情的传播途径,也就是控制确诊人群和潜在的受感染者。为此,我们就需要一个能够及时查找不同人群的工具,以此了解疫情现状并加以控制。
    2.功能设计:
    (1)需建立一个数据库,要求保存100天中2000教职工/学生信息
    (2)可以对库中所有信息进行现时修改
    (3)可以按照不同条件查找不同人群
    (4)可以使用柱状图显示统计结果

    3.设计实现

    本次系统使用C语言实现,因为数据库连不上,没有使用数据库
      构建了几个函数来实现功能:
      create() /录入学生信息/
      display() /显示所有学生信息/
      displayOnnum() /按学号查询/
      displayOnName() /按名字查询/
      displayOnAge() /按年龄查询/
      updatestu() /更新学生信息/
      h=deletestu() /删除信息/
      saveNode() /导出为文本文档/

    4.测试运行

    主界面:

    录入:

    显示全部学生信息:

    按学号查询:

    按姓名查询:

    按年龄查询:

    导出:

    5.关键代码

    struct student *create()
    {
            struct student *p, *q, *head=NULL;
            int k, currentNumOfstu=1,i;
            short sum;
            char tmp[20],str[3];
            printf("输入学生的个数:");
            gets(tmp);
            k=atoi(tmp);
            while(k)
            {
                    p=(struct student*)malloc(sizeof(struct student));
                    printf("
    =======请输入第%d个学生的信息=======
    ", currentNumOfstu);
                    printf("学号:");
                    gets(p->num);
                    printf("姓名:");
                    gets(p->name);
                    printf("填报时间:");
                    gets(p->time);
                    printf("地点:");
                    gets(p->adress);
                    printf("是否感染(Y/N):");
                    gets(p->ganr);
                    printf("性别,男(1),女(0):");
                    p->sex=getchar();
                    getchar();
                    printf("年龄:");
                    gets(str);
                    p->age=atoi(str);
                    printf("系号(1或2或3):");
                    gets(str);
                    p->deptid=atoi(str);
                    if(currentNumOfstu==1)
                            head=p;
                    else
                            q->next=p;
                    q=p;
                    p->next=NULL;
                    k--;
                    currentNumOfstu++;
            }
            printf("
    录入完毕,");
            return head;
    }
    /*菜单*/
    int selectMenu()
    {
            int c=0;
            char s[3];
            system("cls");
            printf("              学生疫情防控信息管理系统
    ");
            printf("===========================================
    ");
            printf(" 1. 录入学生疫情信息
    ");
            printf(" 2. 显示所有学生信息
    ");
            printf(" 3. 按学号查询学生信息
    ");
            printf(" 4. 按姓名查询学生信息(支持模糊查询)
    ");
            printf(" 5. 按年龄查询学生信息
    ");
            printf(" 6. 修改学生信息
    ");
            printf(" 7. 删除学生信息
    ");
            printf(" 8. 追加学生信息
    ");
            printf("9. 保存学生信息到文件
    ");
            printf("10. 从文件载入学生信息
    ");
            printf(" 0. 退出系统
    ");
            do
            {
                    printf("
    请选择功能(0-10): ");    /*在菜单窗口外显示提示信息*/
                    gets(s);           /*输入选择项*/
                    c=atoi(s); /*将输入的字符串转化为整形数*/
            }while(c<0||c>10);    /*选择项不在0~10之间重输*/
            return c;
    }
    

    6.项目总结
    能力有限,做出的项目很简陋。前期花了太多时间查找资料,并且功能并不完全,有许多代码部分我还是询问了别人。但是,此次实验也带给了我很大的帮助。
    7.PSP展示

    psp 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
    Planning 估计这个任务需要多少时间,并规划大致工作步骤 30 8
    Development 开发 1000 1200
    Analysis 需求分析 (包括学习新技术) 80 75
    Design Spec 生成设计文档 0 0
    Design Review 设计复审 (和同事审核设计文档) 0 0
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 20 12
    Design 具体设计 300 600
    Coding 具体编码 300 750
    Code Review 代码复审 30 70
    Test 测试(自我测试,修改代码,提交修改) 30 120
    Reporting 报告 10 20
    Test Report 测试报告 10 10
    Size Measurement 计算工作量 10 30
    Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 10

    任务3:完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中。

  • 相关阅读:
    android touch screen keyboard input移植记录
    共享内存示例代码如下:
    AF
    AF
    etc/fstab的内容是什么意思? 转载
    android 中如何添加新的键值,实现更多功能
    etc/fstab的内容是什么意思? 转载
    IPC框架分析 Binder,Service,Service manager
    共享内存示例代码如下:
    HDU 6125 Free from square (状压DP+分组背包)
  • 原文地址:https://www.cnblogs.com/wxzfw/p/12562651.html
Copyright © 2020-2023  润新知