一.GITHUB链接:

https://github.com/yaoxuan2018/031702341

二.PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 40
· Estimate · 估计这个任务需要多少时间 600 800
·Development 开发 400 500
· Analysis · 需求分析 (包括学习新技术) 100 120
· Design Spec · 生成设计文档 80 60
· Design Review · 设计复审 30 40
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 60 50
· Design · 具体设计 100 80
· Coding · 具体编码 150 250
· Code Review · 代码复审 30 30
· Test · 测试(自我测试,修改代码,提交修改) 150 250
·Reporting 报告 100 110
· Test Repor · 测试报告 50 40
· Size Measurement · 计算工作量 30 40
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 60 40
· 合计 1970 2450

三.计算模块接口的设计与实现过程

大概思路如下:首先是采用判断关键字来划分的方向,语言是用python。拿到用input函数拿到一个字符串,再用字符串的split函数划分出题目的难度等级以及姓名。电话号码的提取是用re模块的正则表达式,其间还处理如果没有号码或者号码不正确的情况。接着剩下没处理的可以拼接起来形成地址,再来就是划分地址的工作。引入cpca模块,用transform函数划分出前三级(实际是用了jieba模块的切词,再去cpca库里匹配出省市县),难度一里面的第四级行政区地址上网了一下,发现只有七种类别,直接上关键字判断(实际上是用split函数对关键字防割),判断完了之后,自然难度一也结束了。难度二的话除了第四级地址的判断,再引入了第六级地址的判断(xx号/弄…)。难度三的话,目前想到除了遍历以外没啥法子,而遍历还需要爬个中国所有行政区地址文件……

四.计算模块接口部分性能

函数调用图:

时间开销图:

五.单元测试

输入:

1!殴删谭,河北承德承15076364360德县岗子满族乡253省道齐家营中心幼儿园.

1!权暖,13252438214海南省三亚崖城镇111乡道抱古村农场.

1!濮阳逛,河南省南15694715825阳市方城县清河镇010乡道尚营村委会.

1!何擒,上海徐汇区湖13009955601南路街道汾阳路9弄复襄居委社区活动室.

2!郏稀,重庆丰13215590422都县三建乡石龙门村卫生室.

2!楚涡握,湖北随州随县吴山镇18883549874唐王街联宏村委会.

2!夹谷抡枯,甘肃兰州城关区18795320124皋兰路街道皋兰路210号郑家台小区.

2!茅参,上海嘉定区13347914736马陆镇嘉新公路1157号樊家村1256号楼.

3!黄马,甘肃省武威98765432105市凉州区东大街街道北观众路3号3楼.

3!羊舌线,福建省福州鼓楼区鼓东街13827706785道庆城路庆城社区.

输出:

代码覆盖率:

六.计算模块部分异常处理说明

输入:

2!邰爷金, 辽宁省营口市站前区新华东路10-甲5号中共15384771154八田地街道社区委员会

输出:

分析:对于第四级的七种情况划分,就怕会遇到一些这样的情况,相关的关键字在本级缺失,却在后面出现,那叫一个措手不及,可又无可奈何,感觉是一个极限了(上面的街道是第七级的,本来街道所属是行政区第四级,但这地址第四级缺失)

posted on 2019-09-29 15:28  杳轩  阅读(149)  评论(3编辑  收藏  举报