博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一次个人编程作业
阅读量:5272 次
发布时间:2019-06-14

本文共 1352 字,大约阅读时间需要 4 分钟。

PSP表格

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

解题思路

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

设计实现过程

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

类图

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

你可能感兴趣的文章
redis与spring结合错误情况
查看>>
Vue.js的从入门到放弃进击录(二)
查看>>
第六章 字节码执行方式--解释执行和JIT
查看>>
Mesh属性[Unity]
查看>>
ajax与java后台交互
查看>>
面向对象之元类
查看>>
MySQL常用函数
查看>>
实现绘制图形的ToolBar
查看>>
C# 串口接收数据中serialPort.close()死锁
查看>>
Python3控制结构与函数
查看>>
字符串方法title()、istitle()
查看>>
yield语句
查看>>
java序列化问题
查看>>
Html.Partial和Html. RenderPartial用法
查看>>
查看linux系统中占用cpu最高的语句
查看>>
[洛谷P1738]洛谷的文件夹
查看>>
Ubuntu server 16.04的安装 以及配置(服务器版)
查看>>
Jtest 对象库的使用(Object Repository)
查看>>
phpstudy的mysql版本升级至5.7
查看>>
ubuntu server设置时区和更新时间
查看>>