项目 | 内容 |
---|---|
课程班级博客连接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
做业要求连接 | http://www.javashuo.com/article/p-meyvhbuv-mp.html |
个人课程学习目标 | (1)掌握软件项目我的开发流程;<br>(2)掌握Github发布软件项目的操做方法。 |
这个做业在哪些方面帮助我实现学习目标 | (1)在程序设计方面提升了本身的编程能力;<br> |
项目Github的仓库连接地址 | https://github.com/lipeishan82/- |
###实验内容 ####任务一:陈述学生疫情每日上报子系统使用体验 (1)以前使用的时候不可以记录前一天的信息,通过升级后,可以记录前一天的信息,这给信息不变的人提供了很大的便利; (2)界面比较简洁,统计的防疫信息也比较全面; (3)填写时间相对有限,存在当天忘记填写的状况,能够添加提醒的功能,这样能够减小当天数据不全的现象。html
####任务二:总结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你本身心目中的西北师范大学学生疫情每日填报系统。 我选择了第一类开发: 有一个数据文件,保存了100天 2000 个教职工/学生的全部防疫信息,请设计一个命令行程序, 支持查询某人在某一天的疫情状况, 查询某种数据的周/月的疫情统计状况,并用柱状图显示统计结果。 #####1.需求分析: 2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采起了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工做;在全国范围内调配口罩、防御服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其余省份调集物资保障武汉市民平常生活。java
值得一提的是,中国互联网企业在这次疫情防控中发挥了社会治理方面的重要做用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减小发热病人之间的相互交叉感染具备重要的做用,患者在家经过互联网向在线医生问诊,减小了病毒传播或感染的风险;谣言粉碎对于公众采起理性态度看待疫情的发展具备重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具备重要做用。此外,还有新型肺炎确诊患者同行程查询工具,用户只须要输入本身所乘坐交通工具的时间和班次,就能够确认是否与被确诊感染者同行,提早作好自我隔离和就诊工做。在疫情防控中,中国互联网企业不只发展壮大,在承担社会责任方面也愈来愈成熟。git
为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各种人员基本状况、所在区域及活动轨迹及健康情况的信息收集。师生经过我校企业微信服务大厅访问该系统进行远程信息填报。github
#####2.功能设计:sql
####3.设计实现: 个人数据库设计:我设计了四张表,分别是教师表,学生表,教师防疫表以及学生防疫表,我认为教师表和学生表是从学校的教务处能够直接获取,并且疫情忽然,若是从新组建一张新的表格未免有点浪费时间,故没有将信息表和防疫表组建为一张表。 <br>具体设计以下: 教师表(工号,姓名,性别,所在省份,所在城市) 教师防疫表(工号,是否有症状,是否确诊,当日温度,填写日期)
学生表(学号,姓名,性别,所在省份,所在城市)
学生防疫表(学号,是否有症状,是否确诊,当日温度,填写日期)
数据库
根据数据库我建立了以下几个类: 编程
(1)定义了一个用来进行数据库链接的类。 (2)定义学生类,申明私有变量student_id(学号),stu_sex(性别),stu_pro(学生所在省份),stu_city(学生城市);教师类定义变量内容与教师表的数据库相对应,还有教师防疫信息表以及学生信息表在这两个类中除了数据库对应的两个表中的属性外除此以外我还定义了一个统计确诊人数的变量checknum,方便产生柱状图。 (3)定义了用来进行数据操做的类,分别能够对教师,学生以及两者同时进行操做。 (4)定义了用来产生柱状图的类,因为个人柱状图的设计是将学生和教师分别产生对应的柱状图,故含有两个不一样的类。采用JfreeChart技术实现。微信
重要函数: (1)数据库链接,若是这个不存在,那么链接不上数据库更谈何进行数据的查询以及柱状图的生成。 (2)产生数据集的函数,它所产生的数据对于后面产生柱状图的结果表起了相当重要的做用。 (3)进行数据库操做的一系列函数,是输出精确的第一步。数据库设计
####4.测试运行: 我将个人项目导出为jar,能够直接在命令行下进行运行,因为数据是我向数据库中导入了2000条数据,可能与实际的状况有必定的出入,并且数据量较少,当数据量过大时可能会出现必定时间上的影响 上图为在命令行中,执行了关于人员及信息添加的功能<br>
以上两张图显示了关于教师和学生的防疫信息,能够看出在命令行中添加的数据成功<br> 还能够进行确诊人员信息输出
ide
根据日期以及ID能够进行查询,也能够只提供id进行所有信息的查询,以及提供一段时间的全部人员的信息查询,因为学生和教师均可以进行故在此仅展现一个
柱状图的显示是根据对于确诊人员每日男女人数进行制做的 教师柱状图如图:
学生柱状图:
####5.关键代码:
/** * 使用查询数据库的数据 * @return 数据集 * @throws Exception */ private static CategoryDataset getDataSet() throws Exception { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); java.util.List<Teacherinfo> list = CheckTeacher(); //装成JFreeChart须要的数据集 for (Teacherinfo teacherinfo : list) { SimpleDateFormat sdf = new SimpleDateFormat("MM-dd"); String str = sdf.format(teacherinfo.getDate()); dataset.addValue(teacherinfo.getChecknum(), teacherinfo.getSex(), str); } return dataset; } /** * 根据工号查询信息 * * @param con 链接数据库 * @param teacher_id 针对teacher_id进行查询 */ public void selectTeacherById(Connection con, int teacher_id) throws SQLException { String sql = "select * from teacher t, teacher_info t1 where t.teacher_id = t1.teacher_id and t.teacher_id=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, teacher_id); rs = pstmt.executeQuery(); display(); }
####6.总结 我对于每个对象建立了各一个类,针对不一样人群的查询搜索等操做也进行了不一样类的建立,以及最后柱状图的展现也是进行分类编写,由此实现了模块化。刚开始撰写博客时数据比较少,因此总体的速度比较快,除了柱状图的产生输出可能要用近10s的时间产生,而后我又将数据增长到了2000条,速度稍微慢了一些,再后面数据不断增长后,我也会不断进行测试该项目实现功能的耗时状况。因为后面数据库增大截图很差截,因此,截图时是在较小的数据库中进行的。代码存在了一些冗余的状况,我也会不断进行修正,删减。 ####7.PSP: PSP2.1|任务内容|计划共完成须要的时间(min)|实际完成须要的时间(min) -|-|-|- Planning|计划|8|8 ·Estimate|估计这个任务须要多少时间,并规划大体工做步骤|8|8 Development|开发|665|710 ·Analysis|需求分析 (包括学习新技术)|60|100 ·Design Spec|生成设计文档|20|20 ·Design Review|设计复审 (和同事审核设计文档)|0|0 ·Coding Standard|代码规范 (为目前的开发制定合适的规范)|15|15 ·Design|具体设计|90|120 ·Coding|具体编码|360|320 ·Code Review|代码复审|60|45 ·Test|测试(自我测试,修改代码,提交修改)|60|90 Reporting|报告|65|90 ·Test Report|测试报告|30|60 ·Size Measurement|计算工做量|20|10 · Postmortem & Process Improvement Plan|过后总结,并提出过程改进计划|15|20
因为在每次运行过程当中,多多少少会出现一些不可避免的问题,因此在不断改进,在最后撰写博客的时候,仍是以为有些功能有问题,也在不断修改本身的程序,但愿有较好的体验感。以前撰写程序的时候其实没有很注意代码规范,经过此次查看《码出高效_阿里巴巴Java开发手册》学习了代码规范,对之后的代码撰写以及可读性有了很大的帮助。 ####任务三:完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github帐号的项目仓库中,完成我的项目报告博文做业。 已将工程提交GitHub 在这里,期中撰写README时能够参考这篇博客哟
已完成博客撰写
###总结: 经过这次防疫系统的实现,我对PSP的重要性有了深入的了解,也对SQL语句的书写有了必定的回顾,同时也学会了如何利用JFreeChart进行图形用户界面的设计,提升了编程能力同时也知道了关于编程规范的具体实施。我也会不断提高个人系统性能,向着更好的方向努力。