第一次个人编程作业

GIT链接:https://github.com/zyj-19991106/031702340.git

PSP表格

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

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

·设计思路

1.先将字符串中的难度等级提取出来,如果是1!就划分5级。如果是2!就划分7级。
2.然后用正则表达式匹配出字符串中的人名以及手机号码
3.将手机号码以及姓名从原字符串中分去,这样就只剩下地址信息,再用cpca对地址信息进行前三级的划分
4.再根据第四级的关键词“街道”、“镇”等关键字划分
5.若要划分7级,则再根据“街”、“巷”等关键词划分出第五级,根据“号”匹配出第六级的门牌号,剩余内容为第七级地址

·类和函数

第一次用python,很多类和函数都是现学现卖的
使用到的模块有re、json、cpca等
使用到的函数有:
字符串操作函数:string.strip() ,string.split()
列表操作函数:list.append(),list.pop()
使用json输出:json.dumps()
cpca前三级划分函数:cpca.transform(list,cut=False)

·关键和独到之处

感觉用cpca划分前3级更加节省时间,但是划分的准确度却不是特别高

计算接口模块性能改进

函数调用图:
时间开销图:

单元测试

输入:
1!郏稀,重庆丰13215590422都县三建乡石龙门村卫生室.
1!印模,云南省红河哈尼族彝族自治州蒙自市明白村明白小15153379393学.
1!殴删谭,河北承德承15076364360德县岗子满族乡253省道齐家营中心幼儿园.
1!权暖,13252438214海南省三亚崖城镇111乡道抱古村农场.
1!濮阳逛,河南省南15694715825阳市方城县清河镇010乡道尚营村委会.
1!桓猿攀,辽宁省营口13898044414市盖州市西海街道305国道盖州市西海农场.
1!弓器,河北省衡水市景县刘集乡马道仁村14785155220村委会.
2!濮婚时,广西壮13602947448族自治区桂林七星区七星区街道育才路15号北院广西师大育才校区.
2!夹谷抡枯,18795320124甘肃省兰州城关区皋兰路街道皋兰路210号郑家台小区.
2!羊舌线,福建省福州鼓楼区鼓东街13827706785道庆城路庆城社区.
2!柏雅蚜,上海市长宁区周家桥街道武夷路718号武夷花园722号13757741271楼.
输出:
{"姓名": "郏稀", "手机": "13215590422", "地址": ["重庆", "重庆市", "丰都县", "三建乡", "石龙门村卫生室"]}
{"姓名": "印模", "手机": "15153379393", "地址": ["云南省", "红河哈尼族彝族自治州", "蒙自市", "", "红河哈尼族彝族自治州蒙自市明白村明白小学"]}
{"姓名": "殴删谭", "手机": "15076364360", "地址": ["河北省", "承德市", "承德县", "岗子满族乡", "253省道齐家营中心幼儿园"]}
{"姓名": " 1!权暖", "手机": "13252438214", "地址": ["海南省", "三亚市", "", "崖城镇", "111乡道抱古村农场"]}
{"姓名": "濮阳逛", "手机": "15694715825", "地址": ["河南省", "南阳市", "方城县", "清河镇", "010乡道尚营村委会"]}
{"姓名": "桓猿攀", "手机": "13898044414", "地址": ["辽宁省", "营口市", "盖州市", "西海街道", "305国道盖州市西海农场"]}
{"姓名": "弓器", "手机": "14785155220", "地址": ["河北省", "衡水市", "景县", "刘集乡", "马道仁村村委会"]}
{"姓名": "濮婚时", "手机": "13602947448", "地址": ["广西壮族自治区", "桂林市", "七星区", "七星区街道", "育才路", "15号", "北院广西师大育才校区"]}
{"姓名": "羊舌线", "手机": "13827706785", "地址": ["福建省", "福州市", "鼓楼区", "鼓东街道", "庆城路", "", "庆城社区"]}

代码覆盖率

异常处理说明

2!柏雅蚜,上海市长宁区周家桥街道武夷路718号武夷花园722号13757741271楼.
{"姓名": "柏雅蚜", "手机": "13757741271", "地址": ["上海市", "上海市", "长宁区", "周家桥街道", "武夷路", "718号武夷花园722号", "楼"]}
根据“号”字匹配出现失误

心得体会

1.这次作业纯自学,没有基础直接发
2.直接意识到自己已经noob得没边,需要加紧学习
3.十三水太难了,能不能晚点交555

posted @ 2019-09-28 20:56  夜色怡人、  阅读(153)  评论(2编辑  收藏  举报