第一次个人编程作业
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,然我一晚上都在怀疑其他代码的正确性。最后换了同学的电脑跑一下才发现我该换电脑了。


浙公网安备 33010602011771号