第一次个人编程作业
1.本次作业的github地址链接:
https://github.com/15759928829/181700140
2.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 100(sum) | |
Estimate | 估计这个任务需要多少时间 | 100 | |
Development | 开发 | 800 | |
Analysis | 需求分析 (包括学习新技术) | 60 | |
Design Spec | 生成设计文档 | 40 | |
Design Review | 设计复审 | 30 | |
Coding Standard | 代码规范 | 30 | |
Design | 具体设计 | 100 | |
Coding | 具体编码 | 300 | |
Code Review | 代码复审 | 40 | |
Test | 测试 | 200 | |
Reporting | 报告 | 100 | |
Test Repor | 测试报告 | 20 | |
Test Repor | 计算工作量 | 20 | |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | |
合计 | 1000 |
3.计算模块接口的设计与实现过程
由于省级行政区与市级行政区可能缺少省/市,所以这个不能通过判断有没有省/市来确定省份与城市,所以收集了所有的省份信息和省份中市级行政区的信息,并保存在文件中。
- 第一步,读取省份信息文件,并通过函数split进行拆分,并储存在字典中。
- 第二步,将地址通过split函数以‘,’进行拆分成两部分,然后通过读取[0][2:]可以读出姓名,使用正则匹配compile和findall可以读取电话号码,并将其从地址中删除。
- 第三步,因为等级是在第一位,所以可以直接读取等级。
- 第四步,使用函数find将收集的数据中的省份与地址进行匹配,同时进行判断是否属于直辖市或者自治区,如果不属于就在后面加上‘省’储存在字典之中。
- 第四步,通过第三步找到的省份,在用里面的城市与地址进行匹配,然后将其存储在字典之中。并将其删除。
- 第五步,判断等级,如果是第一级,使用find函数查找关键词,找到之后将其与前面的值存储下来同时将其从地址中删除。并将最后的地址也存人字典。如果是第二级就多加一步
4.计算模块接口部分的性能改进。
5.计算模块部分单元测试
1!卞继主,黑15241257071龙江省齐齐哈尔市建华区卜奎街道鑫海家园B7号楼.
1!庾感裤,宁夏回族自治区中卫沙坡头区砖塔13963011320村卫生室.
2!宦塌骨,北京市丰台区马家堡街道角门南路13865443474甲14号富卓苑小区.
1!宫焊,上海市虹桥街道中山西路1065号中山广场15038265133B座.
1!宁枪裂,北京市平谷区滨河街道林荫18883080553北路7号金谷东园7号楼.
{"姓名": "卞继主", "电话": "15241257071", "地址": ["黑龙江省", "齐齐哈尔市", "建华区", "卜奎街道", "鑫海家园B7号楼"]}
{"姓名": "庾感裤", "电话": "13963011320", "地址": ["宁夏回族自治区", "中卫市", "沙坡头区", "", "砖塔村卫生室"]}
{"姓名": "宦塌骨", "电话": "13865443474", "地址": ["北京", "北京市", "丰台区", "马家堡街道", "角门南路", "甲14号", "富卓苑小区"]}
{"姓名": "宫焊", "电话": "15038265133", "地址": ["上海", "上海市", "", "虹桥街道", "中山西路1065号中山广场B座"]}
{"姓名": "宁枪裂", "电话": "18883080553", "地址": ["北京", "北京市", "平谷区", "滨河街道", "林荫北路7号金谷东园7号楼"]}
6.计算模块部分异常处理说明。
2!解维牌,上海市长宁区仙霞新13345422905村街道虹古路261弄虹古小区4号楼.
错误:{"姓名": "解维牌", "电话": "13345422905", "地址": ["上海", "上海市", "长宁区", "仙霞新村街道", "虹古路", "261弄虹古小区4号", "楼"]}
正确:{"姓名": "解维牌", "电话": "13345422905","地址": ["上海", "上海市", "长宁区", "仙霞新村街道", "虹古路", "261弄", "虹古小区4号楼"]}
这个例子中出现了门牌的关键字,导致了具体地址的错误
2!柳吻,辽宁省大连市中山区青泥13013864707洼桥街道上海路45号宏孚大厦苏宁易购.
错误:{"姓名": "柳吻", "电话": "13013864707", "地址": ["上海", "上海市", "中山区", "青泥洼桥街道", "上海路", "45号", "宏孚大厦苏宁易购"]}
正确:正确答案:{"姓名": "丰缓", "手机": "13608320376", "地址": ["天津", "天津市", "滨海新区", "新城镇", "新城村东里", "5号", "新城中学"]}
在收集的省份数据里面上海排在了辽宁之前,导致判断为上海
1!翁庆,江苏省13860627003宿迁市宿城区172乡道罗圩中心小学.
错误:{"姓名": "翁庆", "电话": "13860627003", "地址": ["江苏省", "宿迁市", "宿城区", "172乡道罗圩中心小学", "道罗圩中心小学"]}
正确:正确答案:{"姓名": "翁庆", "手机": "13860627003", "地址": ["江苏省", "宿迁市", "宿城区", "", "172乡道罗圩中心小学"]}
未能正确判断出道路
7.完整PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 100(sum) | 90 |
Estimate | 估计这个任务需要多少时间 | 100 | |
Development | 开发 | 800 | 1035 |
Analysis | 需求分析 (包括学习新技术) | 60 | 65 |
Design Spec | 生成设计文档 | 40 | 50 |
Design Review | 设计复审 | 30 | 45 |
Coding Standard | 代码规范 | 30 | 45 |
Design | 具体设计 | 100 | 120 |
Coding | 具体编码 | 300 | 360 |
Code Review | 代码复审 | 40 | 150 |
Test | 测试 | 200 | 200 |
Reporting | 报告 | 100 | 200 |
Test Repor | 测试报告 | 20 | 40 |
Test Repor | 计算工作量 | 20 | 50 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 110 |
合计 | 1000 | 1325 |
简单总结
这次的作业学习到了几个新的函数,在此次编码的过程中,考虑的不够全面的,虽然在后面有对算法进行了一些优化但是还是没有提高很多分数。总的来说就是算法不够好,考虑的不够全面周到。虽然这次作业做得不够好但我也有一些收获,学会使用了几个新的函数。