第一次个人编程作业
一,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 |

浙公网安备 33010602011771号