项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE/ |
作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12416880.html |
我的课程学习目标 | (1)掌握软件项目个人开发流程。(2)掌握Github发布软件项目的操作方法。 |
这个作业在哪些方面帮助我实现学习目标 | 用Windowsbutters插件,githup的使用 |
项目githup的仓库地址链接 | https://github.com/wvc8/wangyulan.git |
1、实验目的与要求
(1)掌握软件项目个人开发流程。
(2)掌握Github发布软件项目的操作方法。
2、实验内容和步骤
任务1:陈述学生疫情每日上报子系统使用体验;
学校通知在西施易通或者企业微信上填报,刚开始我在西施易通上使用,结果数据加载不出来,于是转而企业微信。前几天每天都要输入,后续有了记忆功能,只需要根据自己的情况又变动就改改,方便了很多,但是总是被忘掉,这两天不知道又什么原因直接进不去,界面设计简单,对学校而言这样的系统就能统计数据就可以了,对用户而言需要再完善。
任务2:总结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你自己心目中的西北师范大学学生疫情每日填报系统。
第一类开发要求:
有一个数据文件,保存了100天 2000 个教职工/学生的所有防疫信息,请设计一个命令行程序, 支持查询某人在某一天的疫情情况, 查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果。
第二类开发要求:
1. 系统可采集学生疫情有效信息;
2. 系统支持用户在线使用;
3. 每日只可填报一次,提交后无法修改,每日十点疫情信息填报截止;
4. 各学院指定负责人登录系统,可查看本学院学生填报的汇总数据,可点击查看学生联系方式、班主任联系方式,学院负责人核实本院所有学生数据后,将数据提交给学校防控办;
5. 学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件。
我选的是第二类开发要求
1需求分析
武汉发生新型冠状病毒(2019-nCoV)疫情,被证实存在人传人现象后,为组织疫情进一步蔓延,中国政府于2020 年 1 月 23 日对武汉采取了隔离措施,包括北京、上海等 31个省市也相继实施了严格的防控措施,国际国内社会高度关注中国政府采取的高强度防控疫情举措。1 月 30 日晚,世界卫生组织宣布,将新型冠状病毒疫情列为“国际关注的突发公共卫生事件”。中国各地的医疗机构在中央政府的统一调配下,全国各地卫生工作人员正迅速分批次赶往武汉,支援当地卫生系统。大到国家小到个体,在疫情面前我们要做到同心协力,共同抗击病毒。
中国的互联网企业在这次应对疫情当中充分的发挥了互联网在社会治理方面的作用。以腾讯为例,围绕应对疫情的方方面面开发了十一款产品;滴滴还在武汉专门组建了车队,服务于医护人员的通勤;此外,还有互联网公司开发了新型肺炎确诊患者同行程查询工具;抖音有专门的页面,可向用户介绍冠状病毒及其当前状态。该应用程序还添加了特殊的视频效果 ,以为武汉的医务人员和与该病毒作斗争的患者提供支持;中国最受欢迎的即时通讯应用程序微信拥有一个特殊的“发烧诊所”地图,百度在其应用程序上有专门的抗肺炎页面,该页面会实时更新与冠状病毒相关的新闻。中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。
我看到支付宝、微信、百度等都可以查看每天疫情的动态数据,还有我们学校要求师生在企业微信上每天上报疫情情况表等,体验到互联网带给了我们的便利,同时也可以看到这些界面的变化,就比如支付宝而言最初只是显示确诊病例,死亡人数,疑似病例和治愈人数,而现在又加了每个省份的现有确以及国外具体情况等等,我们可以体会到系统越来越完善,因此对于每日学生疫情有效信息上报系统也需要完善,所以本次尽自己所能开发一款疫情防控情况每日上报表系统,方便大家使用。
参考文献
中国抗击新型冠状病毒:进展和影响
中国科技公司将如何抗击新型冠状病毒
2功能设计
基本功能
1. 系统可采集学生疫情有效信息;
2. 系统支持用户在线使用;
3. 每日只可填报一次,提交后无法修改,每日十点疫情信息填报截止;
4. 各学院指定负责人登录系统,可查看本学院学生填报的汇总数据,可点击查看学生联系方式、班主任联系方式,学院负责人核实本院所有学生数据后,将数据提交给学校防控办;
5. 学校防控办指定负责人登录子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件。
扩展功能
1. 用户登录模块添加了用户名与密码不匹配,只输入用户或密码显示不能为空以及重置,具体用截图显示;
2. 系统增加了疫情指南;
3. 对用户界面以及系统主界面进行了美化,还有系统退出功能。
3设计实现
分为view视图层(系统的每个界面的层次)登录LogOnFrm是登录界面,MainFrm是系统主界面 StuTypeFrm是学生界面,TeacherFrm是教师填报界面,Util层(连接数据库的)Model层创建的学生类、教师类、用户类。先要用户登录后条装主系统界面,主系统界面上分为,系统设置、教师登录、学生登录和疫情防控指南。系统设置里有退出系统的操作,疫情防控里可以查看关于如何防控的措施,在教师登录和学生登录里是填报和维护,由于时间的原因,维护里还没实现后续会增加查询和删除之类的。
4测试运行
登录界面
只输入用户或密码显示为空
登录后跳转主界面
可查看疫情防控指南
教师填报界面,还是和上面一样的一样可以置空若是一项为空就不能填报
学生登录,填写信息提交成功
后台显示目前收集到的提交信息
这里解释一下“王辉”为空,就是有一种特殊情况,填写内容或只填写第一个内容就点击提交,然后一直确定按钮直到也能提交成功。
登录创建的表
创建的教师填报报表
学生表,编号设置为自增
导出学生填报的Excel表和教师填报的Excel表
系统退出,点击是可撤销系统
5代码部分
在本次项目中我使用的技术是Swing+jdbc+mysql,开发工具是eclipese+windowbuilder插件。
下图是我的本次项目中的相关代码
分为视图层(系统的每个界面的层次)比如登录LogOnFrm是登录界面,StuTypeFrm是学生界面,TeacherTrs是教师填报界面,Util层(连接数据库的)Model层创建的学生类、教师类、用户类。
关键代码:
package hiai.util;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* 连接数据库类
* @author wang
*
*/
public class DbUtil {
private String dbUrl="jdbc:mysql://localhost:3306/my demo";//数据库的连接地址
private String dbUserName="root";//数据库用户名
private String dbPassWord="root";//数据库密码
private String jdbcName="com.mysql.jdbc.Driver";//驱动名称
//数据库连接
public Connection getCon()throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassWord);
return con;
}
//数据库关闭
public void closeCon(Connection con)throws Exception{
if(con!=null){
con.close();
}
}
//测试数据库是否连接
public static void main(String[] args) {
DbUtil dbUtil=new DbUtil();
try {
dbUtil.getCon();
System.out.println("数据库连接成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
6总结:
本次项目从开始下载安装mysql,以及在eclipse里安装windowbuilder插件到连接数据库,对我而言都是极大的挑战,每天一点一点的实现,中间碰到了好多问题,最气的是忘记保存又重新开始,还有在eclipe中导入包最基本的Ctrl+shif+O失效,当所有的基本实现时,发现数据提交不上去,最后折腾了好久原来时数据库中建表的问题,通过完成本次项目收获颇多但是好费劲,所以在后续学习中要不断努力。对于“模块化”,我理解的是实施项目前先要逻辑清晰,尤其是在编写程序时按模块划分,比如数据库的连接、学生类、教师类等按照模块一步一步实现。
7PSP展示
PSP | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间 |
---|---|---|---|
Planning | 估计这个任务需要多少时间,并规划大致工作步骤 | 30 | 30 |
Deveploment | 开发 | 3000 | 4200 |
Analysis | 需求分析 (包括学习新技术) | 60 | 90 |
Design Spec | 生成设计文档 | 0 | 0 |
Design Review | 设计复审 | 0 | 0 |
Coding Standard | 代码规范(和同事审核设计文档) | 20 | 20 |
Design | 具体设计 | 180 | 240 |
Coding | 具体编码 | 500 | 900 |
Code Review | 代码复审 | 60 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 80 | 100 |
Reporting | 报告 | 150 | 200 |
Test Report | 测试报告 | 30 | 40 |
Size Measurement | 计算工作量 | 20 | 30 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 35 | 35 |
经验分享:通过本次项目的完成,我最大的收获就是在代码的编写过程中学会使用构造遭方法会节约好多时间,还有界面的设计,界面设计好之后添加事件,再完成代码中的设置;本次项目中我遇到了很多的问题,从最开始的数据库连接到eclipse里的快速导入包的快捷键失效等等,这些问题通过查询资料之后,还有一个最大的问题就是当数据提交不成功,代码没有错,可是数据库没有内容,经过了好久原来是数据库的表建的有问题,总而言之大家要细心,还有每次做一点保存一点,或者备份,本次项目中我老是由于没有保存,不得不从头开始。
任务3:完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中。
通过学习如何将源码上传到githup,已经完成