这个作业属于哪个课程 |
软件工程实践2020春 |
这个作业要求在哪里 |
软工实践寒假作业(2/2) |
这个作业的目标 |
最近新型冠状病毒疫情严重,全国人民都感到担忧,迫切希望能够及时了解到病毒最新的情况,作为IT学子,大家请你帮忙开发一个疫情统计程序。 |
作业正文 |
本文正文 |
其他参考文献 |
作业要求附带文献 |
一、GitHub仓库位置
二、PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
5 |
6 |
Estimate |
估计这个任务需要多少时间 |
5 |
6 |
Development |
开发 |
320 |
350 |
Analysis |
需求分析 (包括学习新技术) |
20 |
10 |
Design Spec |
生成设计文档 |
5 |
5 |
Design Review |
设计复审 |
10 |
5 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
Design |
具体设计 |
10 |
5 |
Coding |
具体编码 |
180 |
210 |
Code Review |
代码复审 |
30 |
30 |
Test |
测试(自我测试,修改代码,提交修改) |
60 |
80 |
Reporting |
报告 |
100 |
90 |
Test Repor |
测试报告 |
60 |
40 |
Size Measurement |
计算工作量 |
30 |
40 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
10 |
10 |
合计 |
425 |
446 |
|
三、思路描述
通过日期顺序读入日志文件,然后将文件内容以空格进行分块,用哈希表进行读取保存,而后对内容进行判定以及统计
四、设计实现过程
st=>start: 文件读取
op=>operation: 保存内容
cond=>condition: 判断是否读取完成 Yes or No?
e=>end: 统计并输出
st -> op -> cond
cond(yes)->e
cond(no)->op
五、代码说明
for(int i = 0; i < fileContent.size() - 2; i++)
{
if(fileContent.get(i + 1).equals("新增") ) //判别新增
{
String provin = fileContent.get(i); //获取这条信息关联的省份
String type = fileContent.get(i + 2); //感染患者或者疑似患者
String str = fileContent.get(i + 3); ;
str = str.substring(0 , str.length() - 1); //截取人数
if(!statistic.containsKey(provin + type)) //检查哈希表中是否已经存在该省份的数据了
{
initStatistic(provin);
}
int sum = Integer.parseInt(str) + Integer.parseInt(statistic.get(provin + type));
statistic.put(provin + type , String.valueOf(sum));
}
以新增计数为例,从储存数组中提取对应位置的数据,判断信息类别,若为新增则提取对应的省份,类别以及人数,进行计算。
六、单元测试

七、代码规范
详情查看GitHub仓库要求说明
八、心路历程与收获
经过这样一个简单的要求才发现自己的专业知识以及专业能力是多么匮乏,实践经验过少导致的一系列问题使得我在实际操作过程中在各方各面都遭遇了极大的阻碍,这样一个很简单的系统在我刻意拉长的时间安排下依旧无法完成,甚至经过如此长时间的工程也只能完成一个以我个人角度都极不满意的半成品,各种功能要求以及性能都不尽人意,这次的经验教训将成为我在下次作业到来之前努力的动力,争取能够每次作业中都进步一点点
九、技术路线图相关的5个仓库
简介:一个用来帮助学习简单三维图形设计的仓库,有深度的领域,照明,正常的映射。
简介:一个三维机器学习领域相关的仓库,为一名学习者的笔记,近年来,三维机器学习领域取得了巨大的进展,这是一个集计算机视觉、计算机图形学和机器学习于一体的跨学科领域。跟随他人的脚步更容易对相关知识循序渐进地学习。
简介:这是一个相关知识讲座的仓库,拥有完善的分类和清晰的说明,便于接触和学习相关知识,关于可理解光线跟踪的相关技术编写方式。
简介:这是一个用于构建可伸缩Web3D应用程序的图形库,可以通过这个仓库了解图形库相关的设计思路,从而获得自己进行设计时的思路启发,属于较为精深研究时需要的仓库而储存下来。
简介:这是一个游戏开发资源的存放仓库,将其记录的原因是在学习完毕后不能缺少实践,而实践就需要相应的素材以及资源,这个仓库的内容就是给最后实践阶段预留的网络素材资源。