第一次个人编程作业

1.Github项目地址

代码

2.PSP表格

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

3.解题思路描述

(1)解题思路

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

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

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

1795969-20190917214819270-635819554.png

(4)计算模块部分异常处理

①转化为json的时候,一开始不能很好的展示出json的格式;
②解决无法处理没有出现具体字的情况。

(5)单元测试,代码覆盖率

1795969-20190917222530760-1826025835.png
1795969-20190917222555749-413754328.png

(6)输入输出样例
  • 输入
    1795969-20190917223222638-555309253.png

  • 输出
    1795969-20190917223249548-1630102694.png

4.心路历程

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

转载于:https://www.cnblogs.com/fzulqx/p/11531230.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值