|
项目 |
内容 |
|
课程班级博客链接 |
|
|
这个作业要求链接 |
|
|
我的课程学习目标 |
(1)掌握软件项目个人开发流程; |
|
项目Github的仓库链接地址 |
https://github.com/1532207421?tab=repositories
|
1、实验目的与要求
(1)掌握软件项目个人开发流程。
(2)掌握Github发布软件项目的操作方法。
2、实验内容和步骤
项目开发背景简介:
2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工作;在全国范围内调配口罩、防护服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其他省份调集物资保障武汉市民日常生活。
值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减少发热病人之间的相互交叉感染具有重要的作用,患者在家通过互联网向在线医生问诊,减少了病毒传播或感染的风险;谣言粉碎对于公众采取理性态度看待疫情的发展具有重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具有重要作用。此外,还有新型肺炎确诊患者同行程查询工具,用户只需要输入自己所乘坐交通工具的时间和班次,就可以确认是否与被确诊感染者同行,提前做好自我隔离和就诊工作。在疫情防控中,中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。
为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各类人员基本情况、所在区域及活动轨迹及健康状况的信息收集。师生通过我校企业微信服务大厅访问该系统进行远程信息填报。
参考文献:
1. 中国抗击新型冠状病毒:进展和影响[EB/OL]. (2020-02-01)/[2020-03-04]. http://cn.chinadaily.com.cn/a/202002/01/WS5e358d1fa3107bb6b579c92b.html
2.需求分析
(1)在疫情期间,为了有效了解到学生老师的健康情况,开发一款能够被同学老师所使用的软件,进行每天的健康信息签到;
(2)在校师生可以使用此软件来进行健康信息签到,同时学校主管也可以使用此软件统计所有学生的信息,以便上报给学校疫情防控中心;
任务2:总结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你自己心目中的西北师范大学学生疫情每日填报系统。
第2类开发要求
1. 系统可采集学生疫情有效信息;
2. 系统支持用户在线使用;
3. 每日只可填报一次,提交后无法修改,每日十点疫情信息填报截止;
4. 各学院指定负责人登录系统,可查看本学院学生填报的汇总数据,可点击查看学生联系方式、班主任联系方式,学院负责人核实本院所有学生数据后,将数据提交给学校防控办;
5. 学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件。
实验截图:
登录界面:

添加个人信息:

全部信息:

电话查询:

修改个人信息:


后边补充到导出到TXT文件:

由于时间有限没将它加入按钮实现但能额外实现;后续会添加上;
package 测;
import java.sql.*;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
public class sqlchtxt {// JDBC 驱动名及数据库 URL
private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String url = "jdbc:sqlserver://127.0.0.1:1433;database=test";
private static String user = "sa";
private static String passwd = "bulikai.0";
public static void wf(String file, String conent) {
BufferedWriter out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file, true)));
out.write(conent+"
");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //加载数据库驱动
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(url, user, passwd);
// 执行查询
System.out.println(" 实例化Statement对象...");
stmt = conn.createStatement();
String sql;
sql = "SELECT stuId, stuname, stuSex,stutel FROM test.dbo.stue2";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
int id = rs.getInt("stuId");
String name = rs.getString("stuname");
String Sex = rs.getString("stuSex");
String stutel = rs.getString("stutel");
// 输出数据
String fn = "E://1.txt"; //文件名
System.out.print("ID: " + id +" name: " + name +"Sex: " + Sex+"stutel: "+stutel);
wf(fn, "ID: " + id +" name: " + name +"Sex: " + Sex+"stutel: "+stutel); //你要写什么,这里就加上什么
System.out.print("
");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
任务3:完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中。(50分)

PSP:
| PSP2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
|---|---|---|---|
| Planning | 计划 | 20 | 25 |
| Estimate | 估计这个任务需要多 少时间,并规划大致 工作步骤 |
20 | 25 |
| Development | 开发 | 700 | 1000左右 |
| Analysis | 需求分析 | 30 | 45 |
| Design Spec | 生成设计文档 | 25 | 25 |
| Design Review | 设计复审 | 40 | 30 |
| Coding Standard | 代码规范 (为目前的 开发制定合适的规范) |
20 | 20 |
| Design | 具体设计 | 360 | 280 |
| Coding | 具体编码 | 300 | 460 |
| Code Review | 代码复审 | 50 | 45 |
| Test | 测试(自我测试, 修改代码,提交修改) |
40 | 60 |
| Reporting | 报告 | 100 | 100 |
| Test Report | 测试报告 | 30 | 20 |
| Size Measurement | 计算工作量 | 30 | 30 |
|
Postmortem & Process Improvement Plan |
事后总结 ,并提出过 程改进计划 |
30 | 40 |
总结:由于前期规划不好没有制作PSP导致进度一直提不上来,再后来老师的提醒下制作了PSP进度一下就提起来了,本次实验中利用java以及sql server简单的实现信息填写,信息查询,信息下载(要求中让实现excel文件下载,但由于在官网插件下载不下来只能简而其次简单的实现了TXT文件下载,)通过这次单人编程,熟悉了个人软件开发的流程,刚开始做登录界面时由于管理员和信息填报者为两个体系,最后用查阅资料用按钮以及数据库中多重查询解决了登录问题,内部界面很简单的实现了一下,会在后续中完善Excel下载;并将其实现在网页中。