第一次个人编程作业

[Github链接](https://github.com/Sophiaxixi/031702310.git

)

PSP表

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 120 100
Estimater 估计这个任务需要多少时间 30 26
Development 开发 900 750
Analysis 需求分析 (包括学习新技术) 150 130
Design Spec 生成设计文档 90 75
Design Review 设计复审 40 60
Coding Standard 代码规范(为开发制定合适的规范) 45 50
·Design 具体设计 80 130
· Coding 具体编码 360 340
Code Review · 代码复审 30 40
· Test · 测试(自我测试,修改代码,提交修改) 160 220
Reporting 报告 60 70
· Test Repor · 测试报告 30 25
Size Measurement 计算工作量 40 45
Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 45 40
. · 合计 2180 2101

计算模块接口的设计与实现过程

  • 解题思路

1.根据开头的1!和2!判断五级地址还是七级地址,并把这个去掉
2.根据逗号分割并用substring()提取出姓名
3.由于手机号不会和其他数字连在一起,可由11位连续数字提取出手机号码
4.省市县用正则表达式分割

  • 类与函数

用到两个类 public class addresspublic class part

  • public class address包含主函数,用来分割姓名和手机号,并且实现Json格式转换输出

  • public class part包含函数 addressResolution1(String address)addressResolution2(String address),分别用来分割五级地址和七级地址

  • 关键代码

 String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<county>[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<village>.*)";
String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<county>[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇|.+道|.+街)?(?<street>.[^路]+路|.+道|.+巷|.胡同|.里弄|.弄)?(?<num>.[^号]+号)?(?<village>.*)";
  • 输入

    2!依山,福建省福州13756899511市鼓楼区鼓西街道湖滨路190号湖滨大厦一层.
    1!妮奕,福建省福州市鼓楼18960221213区五一北路123号福州鼓楼医院.
    2!小陈,广东省东莞市凤岗13965231525镇凤平路13号.
    1! 张三,福建省福州市闽13599622362侯县上街镇福州大学10#111.
  • 输出

{"姓名":"依山","手机":"13756899511","地址":["福建省","福州市","鼓楼区","鼓西街道", "湖滨路","190号","湖滨大厦一层"]}
{"姓名":"妮奕","手机":"18960221213","地址":["福建省","福州市","鼓楼区","","五一北路123号福州鼓楼医院"]}
{"姓名":"小陈","手机":"13965231525","地址":["广东省","东莞市","","凤岗镇","凤平路","13号",""]}
{"姓名":" 张三","手机":"13599622362","地址":["福建省","福州市","闽侯县","上街镇","福州大学10#111"]}

计算模块接口部分的性能改进

1.jpg
运行前的性能分析图
2.jpg
运行后的性能分析图

计算模块部分单元测试展示

  • 测试adress类和part类
    3.jpg

address方法利用率为100%,覆盖率为97%
apart方法利用率为50%,覆盖率为58%

计算模块部分异常处理说明

try
{......}
catch()

  • 只有手机号没有地址的情况
  • 文件流输入无法获取字符串
  • 没有明确省市等字眼的时候依然会输出地址:[]

总结

只要学不死就往死里学

  • 我太难了
  • 速成真的速不成
  • 看到了自己与大佬的差距
  • 流下了不学无术的眼泪
    一开始真的是题目都看不懂,群里大家讲的一堆都是看不懂的名词,于是开始自闭,开始后悔当初没有好好学习。本来想用c++根据字眼判断,后来不知道哪里冒出来的习惯想法,觉得再用c++就学不到新的东西,于是想用java.我只想说属实恐怖,真的太难了,一切都是我从来没有接触过的东西,连github怎么上传还是现学的。从java语法,了解IDEA,再到自己亲手写代码,测试,要是没有询问别人,我早就gg了。感谢给我帮助的朋友们,我一定好好学习,争取不丢计算机学子的脸。
posted @ 2019-09-17 17:24  少h  阅读(298)  评论(2编辑  收藏  举报