项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12416880.html |
我的课程学习目标 | (1)掌握软件项目个人开发流程 (2)掌握Github发布软件项目的操作方法 |
这个作业在哪些方面帮助我实现学习目标 | (2)对Github发布软件项目的操作方法熟悉了 (2)锻炼了自己编程的能力 |
项目Github的仓库链接地址 | https://github.com/xcpxhyyqx1128/yyqx |
实验内容
任务1:陈述学生疫情每日上报子系统使用体验;
- 使用初期,感觉系统性能不够完善,当学生登录人数较多时,就会出现服务器异常现象;经过开发人员快速维护后,系统性能改善了很多,登录系统填报时不再出现服务器崩溃情况;而且选项具有保持记录的功能,如果填报信息没有改变,则可以直接提交,可以为用户节省时间;我觉得可以在设置的选项中可以添加体温填报这一项;界面不是很友好,比如选择当前所在省、市、县可以直接用当前所在地区一个选择框来实现。
任务2:总结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你自己心目中的西北师范大学学生疫情每日填报系统
-
我选择第二类开发要求:
- 系统可采集学生疫情有效信息;
- 系统支持用户在线使用;
- 每日只可填报一次,提交后无法修改,每日十点疫情信息填报截止;
- 各学院指定负责人登录系统,可查看本学院学生填报的汇总数据,可点击查看学生联系方式、班主任联系方式,学院负责人核实本院所有学生数据后,将数据提交给学校防控办;
- 学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件。
用户在线访问链接:
学生疫情信息填报:http://los.mydchuxian.top/
学生疫情后台登录:http://los.mydchuxian.top/admin.php (用户名:admin 密码:admin) -
1.需求分析
2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工作;在全国范围内调配口罩、防护服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其他省份调集物资保障武汉市民日常生活。
值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减少发热病人之间的相互交叉感染具有重要的作用,患者在家通过互联网向在线医生问诊,减少了病毒传播或感染的风险;谣言粉碎对于公众采取理性态度看待疫情的发展具有重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具有重要作用。此外,还有新型肺炎确诊患者同行程查询工具,用户只需要输入自己所乘坐交通工具的时间和班次,就可以确认是否与被确诊感染者同行,提前做好自我隔离和就诊工作。在疫情防控中,中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。
为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各类人员基本情况、所在区域及活动轨迹及健康状况的信息收集。师生通过我校企业微信服务大厅访问该系统进行远程信息填报。
-
2.功能设计
- 基本功能:
(1)学生疫情信息填报功能;
(2)用户在线使用功能;
(3)管理员对上报的疫情信息修改、删除、查询功能。
(4)学生提交疫情信息时增加验证功能,如果信息未全部填写,则会提醒;
- 基本功能:
-
3.设计实现
- student表:存储学生疫情信息
- login表:存储管理员登录信息
- 因为前端用web,后端用PHP编写,所以没有涉及类和函数。
-
4.测试运行
学生疫情信息填报:
管理员登录:
查看全部学生疫情统计信息:
查找某一学生疫情信息:
- 5.关键代码
/* 获取修改后的学生信息 */
include 'coon.php';
$id = $_POST['id'];
$name = $_POST['name'];
$sex = $_POST['sex'];
$age = $_POST['age'];
$edu = $_POST['edu'];
$check = $_POST['check'];
$tel = $_POST['tel'];
$city = $_POST['city'];
/* 编写预处理sql语句 */
$sql = "UPDATE `student`
SET
`name`= ?,
`sex`= ?,
`age`= ?,
`edu`= ?,
`check`= ?,
`tel`= ?,
`city`= ?
WHERE `id`= ?";
/* 预处理SQL模板 */
$stmt = mysqli_prepare($link, $sql);
/* 参数绑定,并为已经绑定的变量赋值 */
mysqli_stmt_bind_param($stmt, 'ssssssss', $name, $sex, $age, $edu, $check, $tel, $city, $id);
if ($name) {
/* 执行预处理(第1次执行) */
$result = mysqli_stmt_execute($stmt);
/* 关闭连接 */
mysqli_close($link);
if ($result) { /* 修改学生成功 */
header("Location:main.php");/* 跳转到首页 */
}else{
exit('修改学生信息sql语句执行失败' );
}
}else{ /* 修改学生失败 */
echo "修改学生失败!<br><br>"; /* 输出提示,跳转到首页 */
header('Refresh: 3; url=main.php'); /* 3s后跳转 */
-
6.总结:
模块化设计是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。我将整个系统分为两个模块,一个是学生疫情信息填报模块、另一个是管理员后台管理模块,然后将这两个模块联系起来。 -
7.展示PSP:
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 30 | 25 |
· Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 30 | 25 |
Development | 开发 | 650 | 820 |
·· Analysis | 需求分析(包括学习新技术) | 180 | 220 |
· Design Spec | · 生成设计文档 | 20 | 25 |
· Design Review | · 设计复审 (和同事审核设计文档) | 0 | 0 |
· Coding Standard | 代码规范(为目前的开发制定合适的规范) | 20 | 15 |
· Design | 具体设计 | 120 | 140 |
· Coding | 具体编码 | 280 | 380 |
· Code Review | · 代码复审 | 30 | 40 |
· Test | · 测试(自我测试,修改代码,提交修改) | 40 | 40 |
Reporting | 报告 | 55 | 65 |
·· Test Report | · 测试报告 | 30 | 30 |
· Size Measurement | 计算工作量 | 15 | 20 |
· Postmortem & Process Improvement Plan | · 事后总结 ,并提出过程改进计划 | 10 | 15 |
- 通过写PSP,发现耗时最多的是具体编码环节,需求分析和具体编码环节估计和实践相差巨大,我觉得在需求分析阶段估计和实践相差大的原因是将系统设置成用户在线可以登录的学习花费了较多的时间,具体编码花费时间较多是因为自己编程能力较差,存在写代码特别慢的问题,所以花费了较多的时间。但是通过写PSP,我设计项目变得有序起来,不再像以前一样,一拿到题目,然后就想着怎么快点把代码写出来,只要代码写出来就相当于完成作业了,而是每个环节都考虑到了,不再是遇到问题就手忙脚乱,让我明白了制定计划的重要性。
任务3:将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中。
实验总结
由于自身编程能力不足,未能实现每日在10点前填报功能和导出疫情信息到excel文件。但通过这次项目的设计,我学会了逼迫自己学习,因为以前这样的项目一般是课程设计,我们都是小组一起做的,自己只会负责其中的一块,而这次是自己做整个过程,虽然有些功能还没有实现,但还是感觉收获很大;不过通过这次项目,也暴露了很多自己的问题,思考问题不全面,希望自己可以在以后的学习过程中可以不断改进。