第一次个人编程作业

github

PSP表格

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

解题思路

因为前两级的省和市会缺失,所以决定打下这两个级别的表进行预处理,拿到字符串之后先处理电话号码然后处理名字和标点。然后根据打的表处理省市,之后按关键字处理接下来的级别。实际操作起来发现比想象中的难很多。

设计实现过程

将代码写了一部分之后发现会出现编码的问题,于是网上找资料尝试转编码。完成这步之后发现后面的东西比想象中的还要复杂很多, 整理好省市的情况之后发现有些二级地区的名字后缀是很特殊的,于是对代码和数据进行了大范围的调整,这一部分花了不少时间。

类图

1330672-20190917142012130-1635148188.jpg

设计了两个类$People$和$Address$以及一个命名空间$Area$

类$People$:

函数作用
GetAns用来返回运算结果
GetNumber提取手机号码
GetName提取姓名
GetAddress调用$Address$类处理地址的具体信息
ClearPunctuation清除标点符号
doit串联这些函数统一进行操作

性能分析

1330672-20190917142049740-1043427467.jpg

1330672-20190917142054292-1740666565.jpg

从图上可以看出,大部分的时间都花费在了转换编码、文件流读入输出、字符串类型的运算以及地址的预处理上,但是这一部分的时间是不可或缺的。

消耗时间最多的函数:

1330672-20190917142105804-1959502670.jpg

单元测试

李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
小陈,广东省东莞市凤岗13965231525镇凤平路13号社保厂.
王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
单元测试结果:
1330672-20190920225044509-254932889.jpg

异常处理

处理了手机号码格式不正确、丢失姓名和地址格式错误的情况

张三,福建福州闽1359362侯县上街镇福州大学10#111.
,福建福州闽13599622362侯县上街镇福州大学10#111.
张三,13599622362福州大学10#111.

运行结果:

1330672-20190917144512029-1618000723.jpg

代码展示:

1330672-20190917144601682-860133008.jpg

运用标记符号在匹配失败是标记在何种类型的匹配下会失败,然后返回异常的原因。

转载于:https://www.cnblogs.com/seast90/p/11531194.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值