第一次个人编程作业

一,github

https://github.com/fwh-g/031702118

二,PSP表格(初步估计)

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
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表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
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
posted @ 2019-09-29 15:18  _FWH  阅读(120)  评论(3编辑  收藏  举报