第一次个人编程作业
Github
PSP表格
PSP2.1 | Personal Software Process Stages |
预估耗时(min) | 实际耗时(min) |
---|---|---|---|
Planning | 计划 | 60 | 90 |
Estimate | 估计这个任务需要多少时间 | 90 | 120 |
Development | 开发 | 600 | 1200 |
Analysis | 需求分析 (包括学习新技术) |
90 | 120 |
Design Spec | 生成设计文档 | 60 | 90 |
Design Review | 设计复审 | 60 | 90 |
Coding Standard | 代码规范 (为开发制定合适的规范) |
60 | 60 |
Design | 具体设计 | 60 | 120 |
Coding | 具体编码 | 480 | 600 |
Code Review | 代码复审 | 120 | 240 |
Test | 测试 (自我测试,修改,提交修改) |
180 | 240 |
Reporting | 报告 | 90 | 120 |
Test Report | 测试报告 | 30 | 60 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem & Process Improvement Plan |
事后总结 并提出过程改进计划 |
30 | 30 |
合计 | 2030 | 3200 |
计算模块接口的设计与实现过程
- 先通过正则表达式把名字和电话号码单独提取出
- 之后通过几个函数一步一步拆分字符串中的省、市、区、街道
思路历程:
- 咋一看好像也就这两步嘛很简单,但是懵逼的输入输出竟然是以文件(.txt)形式而且竟然还有“省”“市”缺失的情况。好吧,只能屈服于现实,一点一点去网上打开了无数的网页学习。
模块功能类实现
类名 | 实现功能 |
---|---|
DataBase() | 预处理本地比对json文件 |
Separation() | 对字符串的名字,省市等分离 |
FileUitl() | 处理文件的输入和输出 |
模块功能函数实现
函数名 | 实现功能 |
---|---|
DataBase.readJsonData() | 预处理本地比对json文件 |
FiletoString() | 文件输入转字符串 |
StringtoFile() | 字符串转文件输出 |
以及sepProvince()等字符串分离函数 |
函数间关系
- <1>预处理本地json对比库
DataBase.readJsonData()
,这之中会调用文件输入函数FiletoString()
保存在stringBuilder
中等待调用对比 - <2>
FiletoString()
读取输入文件 - <3>调用
Separation()
对每一行输入字符串进行拆分 - <4>拆分完后重新拼接成json样字符串再调用
StringtoFile()
输出为文件
计算模块接口部分的性能改进
- 能码出来我觉得真的不错了。。。。 作为一个小白实在没啥精力也没啥能力去改进性能了
计算模块部分单元测试展示
- 不知道为什么这么神奇,相同测试数据集下我自己跑txt文件格式都是正确,跑test却有7个点过不去
- 测试覆盖率基本达到很高的比重,只有文件输入输出处理功能类
FileUitl()
覆盖率会低一点
计算模块部分异常处理说明
- 我自己的编译器竟然字符串
leve=“2”
的情况下判断语句if(leve==“2”)
的结果是false,然我一晚上都在怀疑其他代码的正确性。最后换了同学的电脑跑一下才发现我该换电脑了。