201271050130-滕江南 实验二 个人项目—《西北师范大学学生疫情上报系统》项目报告
项 目 | 内 容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12416880.html |
我的课程学习目标 | (1)掌握软件项目个人开发流程(2)掌握Github发布软件项目的操作方法。 |
这个作业在哪些方面帮助我实现学习目标 | (1)提高了独立完成作业的能力(2)学会了Github基本操作(3)学会了数据库的基本操作(4)提升了JAVA编程能力 |
项目Github的仓库链接地址 | https://github.com/jiangnanteng0413/Epidemic-monitoring-tjn |
任务1:陈述学生疫情每日上报子系统使用体验
疫情每日上报系统的主要是为了记录学校教职工、学生每日的身体状况和行为动态,方便学校收集大数据掌握情况,为学校开学学生返校提供了科学依据。这个系统在使用之初,存在几个问题:1.集中时间段大量用户进入,造成系统奔溃,无法载入的问题,目前这个情况已得到了改善。2.上报的内容每天都要重复填写,比较繁琐,目前这个情况已得到改善,系统保存前一天上报的内容,在此情况下修改即可。本人的建议:1.设置闹钟提醒,在规定时间的前10分钟提醒,可开设闹铃或者推送消息,提醒用户完成情况上报。2.界面优化,填写内容简洁明了,完成填写后可显示内容,确认无误后提交。由于疫情突然,在短时间内完成这个系统,开发人员都十分辛苦。在第一时间完成,并能保障全校范围内的正常使用,觉得非常不容易,为背后的开发人员的辛勤劳动、无私付出点赞!希望我们能早日攻克难关,相聚在美丽的“西施”校园。
任务2:我选择第一类开发任务:有一个数据文件,保存了100天 2000 个员工的所有防疫的信息,请设计一个命令行的程序,支持查询某员工在某一天的疫情情况,查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果。
1.需求分析(5分)
2019 年 12 月,武汉发生新型冠状病毒(2019-nCoV)疫情,为阻止疫情进一步蔓延,中国政府于2020 年 1 月 23 日对武汉采取了隔离措施,包括北京、上海等 31个省市也相继实施了严格的防控措施。
----引用自《中国抗击新型冠状病毒:进展和影响》
当前,疫情防控工作到了最吃劲的关键阶段。为准确高 效采集和统计全校师生员工新冠肺炎疫情防控相关信息,进一步夯实疫情防控工作基础,坚决打赢校园疫情防控阻击战,学校组织力量开发了师生健康打卡系统。
----引用自《关于试运行西北师范大学师生健康打卡系统的通知》
学校教职工、学生分布范围较广,使得采集的疫情数据复杂,难度较大。通过系统构建的上报平台,将数据整合,然后进行统计分析,为进一步掌握学校疫情情况提供科学依据。数据是平台的血液,动态的数据现时更新才能体现平台的生命力。用户通过系统客户端界面填写相关信息,与此同时后台数据库同步更新,并将其存储起来,进行统计分析。后台通过数据整合,可进行筛选排查,生成相应图表,优化疫情数据的可视性。
2.功能设计
基本功能:
(1)采集学生信息;
(2)查询学生信息;
(3)可生成柱状图。
扩展功能:
(1)提取重点关注的人员信息,每日监控;
(2)向负责人发送重点关注人员的信息。
3.设计实现
4.测试运行
5.粘贴自己觉得比较独特的或满意的代码片段,用博客园代码控件来显示。
` package 疫情;
import java.sql.;
import javax.swing.;
import java.awt.;
import java.awt.event.;
import java.awt.Color;
public class LLogin {
public static void main(String[] args) {
new loginFrame();
}
}
class loginFrame extends JFrame implements ActionListener{
Box box1,box2,baseBox;
JLabel userName,userPwd,tubiao;
JTextField nameField;
JPasswordField pwdField;
JButton button;
JTabbedPane choose;
JPanel panel1,panel2;
loginFrame(){
setBackground(Color.white);
userName=new JLabel("账号",JLabel.CENTER);
userPwd=new JLabel("密码",JLabel.CENTER);
nameField=new JTextField(8);
pwdField=new JPasswordField(8);
panel1=new JPanel();
panel2=new JPanel();
choose=new JTabbedPane();
choose.add("登录界面",panel1);
panel1.setLayout(new GridLayout(2,2));
panel1.add(userName);panel1.add(nameField);
panel1.add(userPwd);panel1.add(pwdField);
add(choose,BorderLayout.CENTER);
button=new JButton("登陆");
add(button,BorderLayout.SOUTH);
button.addActionListener(this);
//小图标
ImageIcon tubiao=new ImageIcon("H:/Java:学生信息成绩管理系统/StudentSystem/src/疫情/层云.jpeg");
setIconImage(tubiao.getImage());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setBounds(200,100,500,200);
setTitle("疫情信息管理系统");
validate();
}
public void actionPerformed(ActionEvent e){
String name,pwd;
name=nameField.getText();
pwd=pwdField.getText();
try{
Class.forName("com.mysql.jdbc.Driver"); //加载数据库驱动
}
catch(ClassNotFoundException ex){
System.out.println(ex);
}
try{
Connection con;
Statement sql;
ResultSet rs;
String url,userName,userPwd;
// 连接数据库的语句
url = "jdbc:mysql://localhost:3306/studentinfo?useUnicode=true&characterEncoding=utf-8";
userName="root";
userPwd="root";
con=DriverManager.getConnection(url,userName,userPwd);
sql=con.createStatement();
rs=sql.executeQuery("select * from login where name ='"+name+"' and pwd='"+pwd+"'");
int q=0;
while(rs.next()){
q++;
}
if(q>0){
JOptionPane.showMessageDialog(this, "登陆成功!","消息对话框",JOptionPane.WARNING_MESSAGE);
this.dispose();
new CommFrame();
}
else
JOptionPane.showMessageDialog(this, "账号或者密码错误!","消息对话框",JOptionPane.WARNING_MESSAGE);
}
catch(SQLException exp){
System.out.println(exp);
}
}
6.总结:你设计的程序如何实现软件设计的“模块化”原则。
本人表示很遗憾没有按照要求完成任务,设想是分成信息采集,信息查询,图表生成三个模块 实现软件设计。目前只能做到简单的信息采集和信息查询功能。
7.展示PSP,这个环节重要的是让自己看到自己的估计和实际消耗时间,哪个环节耗时最多,哪个环节估计和实践相差巨大?为什么?(5分)
|PSP |任务内容| 计划共完成需要的时间(min)| 实际完成需要的时间
|-------|--------|-------|--------|-------
|Planning| 估计这个任务需要多少时间,并规划大致工作步骤| 45 |30
|Deveploment| 开发| 3000| 4000
|Analysis| 需求分析 (包括学习新技术)| 2000| 2000
|Design Spec| 生成设计文档| 0 |0
|Design Review| 设计复审 (和同事审核设计文档)| 0| 0
|Coding Standard| 代码规范 (为目前的开发制定合适的规范)| 180| 180
|Design |具体设计 |300 |300
|Coding |具体编码| 300| 800
|Code Review |代码复审| 120| 120
|Test |测试(自我测试,修改代码,提交修改)| 180| 180
|Reporting| 报告 |120 |180
|Test Report| 测试报告 |60 |60
|Size Measurement| 计算工作量| 60 |60
|Postmortem & Process Improvement Plan |事后总结 ,并提出过程改进计划| 60| 60
开发过程是花了大量时间,按照计划是用JAVA语言和SQL实现系统功能。由于个人没有学习过数据库,编程能力比较弱,所以整个项目做起来特别吃力。过程中安装了SQL 2008R,通过视频学习了数据库的基本操作,实现了数据库中的数据导入,但是没有实现数据库和系统界面的连接。界面做的很简单,只能实现信息输入和显示,没有按照任务要求完成本次实验。
8.如果所有的环节你都认真做了,那么,此处你应该会有很多经验愿意与大家分享。
从刚开始上课的时候,就是觉得这是不可能完成任务,但还是硬着头皮看视频学习,想着能做多少做多少,尽力去完成。虽然完成的结果不咋样,但是前后十几天每天都在为了这个项目学习,感觉还是很充实。好几次想要放弃,但还好坚持下来,只能自我安慰:学习过程更重要,继续坚持终将收获成功的果实。