第一次个人编程作业

1.Github项目地址

代码

2.PSP表格

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

3.解题思路描述

(1)解题思路

  • 首先,先读取文件中内容;
  • 然后,再将姓名进行分割;
  • 然后,将字符中连续的11位数字(即电话号码)进行分割;
  • 接着通过正则表达式进行地址解析,将地址按级分割。
  • 找资料:百度和他人博客。

(2)代码实现以及关键代码

类名 作用
AddressResolveUtils 地址解析
UserBean 提取姓名和电话号码
ContentUtil 输入输出部分
  • private static Map maps = new HashMap()  //筛选 
    private static String[] suffixs //判断是否包含省级地区
    for(Map.Entry entry : maps.entrySet()) //过滤
    private static String restructure(String address, String $suffix, String s)  //拼接
  • String regex="(?[^特别行政区]+特别行政区|[^自治区]+自治区|[^省]+省|[^市]+市)(?省直辖行政单位|省属虚拟市|市辖县|市辖区|县|自治州|[^地区]+地区|[^州]+州|[^盟]+盟|[^市]+市|[^区]+区|)?(?[^旗]+旗|[^市]+市|[^区]+区|[^县]+县)?(?[^县]+县|[^区]+区|[^乡]+乡|[^村]+村|[^镇]+镇|[^街道]+街道)?(?.*)";
  • ArrayList resultList = new ArrayList<>(); for (String data : splitData)   //解析姓名电话部分
  • public static String readStringData() {
            String encoding = "UTF-8";

(3)性能测试

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

(4)代码覆盖率

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

(5)输入输出样例

  • 输入
    第一次个人编程作业_第3张图片

  • 输出
    第一次个人编程作业_第4张图片

4.心路历程

真的是太难太难太难了,没有事先自学过Java,真是感觉太懵了。只能疯狂百度和寻找帮助=.= 感觉太仓促了时间,太短了。以后一定要好好读书!

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