第一次个人编程作业

1.第一次个人编程作业地址

Github

2.PSP表格

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

3.解题思路

  • 使用正则表达式提取电话号码,并在原字符串中删除,
  • 在根据“,”提取姓名,
  • 在根据各级地址,进行地址拆分,
  • 地址拆分采用正则表达式的方法,
  • 进行地址拆分时,对一些特殊情况如:直辖市,进行特殊处理。
  • 由于不会正则表达式就用了一些时间学习了正则表达式,

4.设计实现过程

  • 我所使用的各类函数

    main() 主函数
    searchnumber() 返回电话号码
    searchprovincer() 返回省级
    searchcity() 返回市级
    searchcounty() 返回县级
    searchtown() 返回街道、镇…
    searchroad() 返回路、巷…
    searchdoornum() 返回门牌号

  • 用主函数调用其他函数,对所输入的字符串进行处理。
  • 其他函数采用正则表达式的方法对字符串进行处理。

5.程序性能

程序性能分析图

第一次个人编程作业_第1张图片

覆盖率图片

第一次个人编程作业_第2张图片
第一次个人编程作业_第3张图片

6.关键代码

我的关键代码就是正则表达式,其他都是一些比较不重要的代码,但是其他代码也是很多啊

正则表达式
String REGEX="((13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8})"; 查找电话
String REGEX="([^,]+,)"; 查找姓名
String REGEX="([^省]+自治区|.?省|.?行政区|.?市)"; 查找省级
String REGEX="([^市]+自治州|.
?地区|.?行政单位|.+盟|市辖区|.?市|.*?县)"; 查找市级
String REGEX="(?[^县]+?县|.+?区|.+?市|.+?旗|.+?海域|.+?岛)"; 查找县级
String REGEX="([^镇]+?镇|.+?街道|.+?乡)"; 查找镇级
String REGEX="([^路]+?路|.+?街|.+?巷)"; 查找路...
String REGEX="([^号]+号)"; 查找门牌号

7.异常处理

  • 开始设计的程序无法正确处理直辖市
  • 将直辖市单独提出来特殊处理。
  • 对于一些比较特殊的地名,例如:北京市东城区人民法院,处理出错,
  • 改进了一些正则表达式,消除了这个问题

8.心理路程

  • 经过这一次编程作业,我学习了Java和正则表达式
  • 学会了一些软件的使用
  • 几天学完Java的感觉很爽,我觉得比高考还累,跟期末考试一样累
  • 但是总体而言,学有所得,感觉还是不错的。

你可能感兴趣的:(第一次个人编程作业)