一,github
https://github.com/fwh-g/031702118
二,PSP表格(初步估计)
Planning |
计划 |
10 |
|
Estimate |
估计这个任务需要多少时间 |
10 |
|
Development |
开发 |
1635 |
|
Analysis |
需求分析(包括学习新技术) |
1140 |
|
Design Spec |
生成设计文档 |
5 |
|
Design Review |
设计复审 |
60 |
|
Coding Standard |
代码规范(为目前的开发制定合适的规范) |
30 |
|
Design |
具体设计(用伪代码,流程图等方法来设计具体模块) |
10 |
|
Coding |
具体编码 |
300 |
|
Code Review |
代码复审 |
30 |
|
Test |
测试(自我测试,修改,提交修改) |
60 |
|
Reporting |
报告 |
100 |
|
Test Report |
测试报告 |
60 |
|
Size Measurement |
计算工作量 |
10 |
|
Postmortem & Process Improvement Plan |
*事后总结并提出过程改进计划 |
30 |
|
|
合计 |
1745 |
|
三,计算模块接口的设计与实现过程
编码转换
将GBK编码与UTF-8编码进行相互转换。
读文件时,将UTF-8编码转化成GBK编码;写文件时将GBK编码转化为UTF-8编码。
输出个人信息
读取“!”前的数字,存入level中,并删除起始至”!“的内容
输出姓名
读取字符串“,“前的内容并输出;将字符串起始到”,“的内容删除
输出电话号码
从字符串中找到11位连续的数字,输出;并将其从字符串中删除。
输出地址
1.输出省、市时(省、市的输出分别调用函数):从字符串中读取两个汉字,判断是否是直辖市:如果是,就输出省、市的信息;否则 从”province.txt"和“city.txt”中找到和其匹配的内容,并输出。删除字符串中关于省、市的信息。
2.输出第三、第四级地址时(分别调用函数):从字符串提取一个汉字,判断是否为“县、市、区”或“镇、乡、街道”;若是,则在相应位置输出,并在字符串中删除该汉字及之前的内容。
3.根据level的值判断是否直接输出字符串剩下地址信息:若level=1,直接输出剩下的地址信息;若不为1,分别调用函数输出第五、第六级地址(函数与输出第三、第四级地址时类似),接着输出剩下的地址信息。
四,计算模块接口部分的性能改进
增加了判断直辖市的函数,减小了输出省、市的函数的负担。
以下为1000个样例的分析报告
五,计算模块部分单元测试展示
测试部分
地址提取
测试样例
评测工具所给样例中抽取10个
输入
1!鲁胞,上海长宁区周18951233466家桥街道长宁路999号春天花园.
1!臧街经,北京市东城区北新桥街道东直门内大街民15679601503安小区8号楼.
1!双韵,安徽黄山市歙县雄村镇006县道与G56杭瑞高速歙县雄村乡防保站13575634949.
2!微生句,广西壮族自治区桂林市七星15605131954区七星区街道金星路2号矿地院.
2!郁蕾喘,海18807961204南省海口秀英区长流镇美李小学.
2!柳吻,辽宁省大连市中山区青泥13013864707洼桥街道上海路45号宏孚大厦苏宁易购.
1!诸葛宁盛,河南省15613629652焦作市山阳区定和街道塔南路287号新兴日化.
1!冯昔唉,安徽省合肥市庐江县郭河镇G3京台高18835354291速合肥市庐江县广寒桥街道.
3!蔺脚贺,湖南省娄底市冷水江市石槽村三尖镇15581828223人民政府.
3!墨笑,四平市平东街道国测小区8号13185319734楼.
输出
[
{"姓名":"鲁胞","手机":"18951233466","地址":["上海","上海市","长宁区","周家桥街道","长宁路999号春天花园"]},
{"姓名":"臧街经","手机":"15679601503","地址":["北京","北京市","东城区","北新桥街道","东直门内大街民安小区8号楼"]},
{"姓名":"双韵","手机":"13575634949","地址":["安徽省","黄山市","歙县","雄村镇","006县道与G56杭瑞高速歙县雄村乡防保站"]},
{"姓名":"微生句","手机":"15605131954","地址":["广西壮族自治区","桂林市","七星区","七星区街道","金星路","","2号矿地院"]},
{"姓名":"郁蕾喘","手机":"18807961204","地址":["海南省","海口市","秀英区","长流镇","","","美李小学"]},
{"姓名":"柳吻","手机":"13013864707","地址":["辽宁省","大连市","中山区","青泥洼桥街道","上海路","45号","宏孚大厦苏宁易购"]},
{"姓名":"诸葛宁盛","手机":"15613629652","地址":["河南省","焦作市","山阳区","定和街道","塔南路287号新兴日化"]},
{"姓名":"冯昔唉","手机":"18835354291","地址":["安徽省","合肥市","庐江县","郭河镇","G3京台高速合肥市庐江县广寒桥街道"]},
{"姓名":"蔺脚贺","手机":"15581828223","地址":["湖南省","娄底市","","冷水江市石槽村三尖镇","","","人民政府"]},
{"姓名":"墨笑","手机":"13185319734","地址":["","四平市","平东街道国测小区","","","","8号楼"]}
]
覆盖率
100%
六,计算模块部分异常处理说明
异常样例
输入
1!鲁胞,上海长宁区周18951233466家桥街道长宁路999号春天花园.
3!墨笑,四平市平东街道国测小区8号13185319734楼.
输出
{
"姓名":"鲁胞",
"手机":"18951233466",
"地址":[
"上海",
"上海市",
"上海市",
"长宁区周家桥街道",
"长宁路999号春天花园"
]
},
{
"姓名":"墨笑",
"手机":"13185319734",
"地址":[
"",
"四平市",
"平东街道国测小区",
"",
"",
"",
"8号楼"
]
}
异常类型
1.直辖市判别时在内部删除字符串,未返回
2.难度为3时,地址未能补全
七,PSP表格
Planning |
计划 |
10 |
20 |
Estimate |
·估计这个任务需要多少时间 |
10 |
20 |
Development |
开发 |
1635 |
1730 |
Analysis |
·需求分析(包括学习新技术) |
1140 |
1200 |
Design Spec |
·生成设计文档 |
5 |
0 |
Design Review |
·设计复审 |
60 |
30 |
Coding Standard |
·代码规范(为目前的开发制定合适的规范) |
30 |
30 |
Design |
·具体设计(用伪代码,流程图等方法来设计具体模块) |
10 |
20 |
Coding |
· 具体编码 |
300 |
240 |
Code Review |
·代码复审 |
30 |
90 |
Test |
测试(·自我测试,修改,提交修改) |
60 |
120 |
Reporting |
报告 |
100 |
90 |
Test Report |
·测试报告 |
60 |
45 |
Size Measurement |
·计算工作量 |
10 |
10 |
Postmortem & Process Improvement Plan |
·事后总结并提出过程改进计划 |
30 |
35 |
|
合计 |
1745 |
1840 |