github地址:
psp表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 30 |
Estimate | · 估计这个任务需要多少时间 | 1050 | 1540 |
Development | 开发 | 20 | 30 |
Analysis | · 需求分析 (包括学习新技术) | 200 | 650 |
Design Spec | · 生成设计文档 | 30 | 25 |
Design Review | · 设计复审 | 30 | 25 |
Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Design | · 具体设计 | 150 | 150 |
Coding | · 具体编码 | 360 | 520 |
Code Review | · 代码复审 | 100 | 150 |
Test | · 测试(自我测试,修改代码,提交修改 | 150 | 160 |
Reporting | 报告 | 80 | 80 |
Test Repor | · 测试报告 | 10 | 10 |
Size Measurement | · 计算工作量 | 15 | 20 |
Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 50 | 50 |
· 合计 | 1225 | 1930 |
思考过程:
一开始看到题目的时候就感觉此题描述很多,要求和规范也很多,就很烦,脑子里总是理不清题目要素。后来静下心来认真研究才发现这题的本质其实是文件读取和匹配、写入等操作。由于我是一个出血java不到一个月的菜鸡,然后开启了我的“面向百度编程之旅”。。。
资料来源:[百度]www.baidu.com,
[csdn]www.csdn.com,
[各级地址信息文件]https://github.com/zhuyandong/ChineseAddressDict
[代码质量分析]https://www.cnblogs.com/yanduanduan/p/7079302.html
代码思路:
主要思想是搜索各级地址信息文件,逐级分解。总共设计了 三个类,一个主类,负责读1.txt和调用其他两个类;一个5级地址类,负责对五级地址进行分解和写入文件;一个7级地址类,负责对五级地址进行分解和写入文件。地址类分解的思路是:先用spilt()和”\d{11}“正则表达式从主类中传入的String摘除名字和电话号码,然后通过各级函数分别用String的前两个字符与各级地址信息库相匹配,若找到地址信息库中的某行message匹配了,则设置类中相应地址为message,并且从原来的String中删除该级地址,作为下一级分解函数的参数传入。最后通过函数按格式写入2.txt。
改进代码:
木得灵感,不知所措。。。也许可以在查询文件的算法下点功夫?毕竟我的代码只是粗暴的遍历匹配整个地址信息文件,浪费应该挺多的。
性能分析图:
code Quality Analysis:暂无,以后补上。。。主要是工具下载下来不会用就很烦
计算机异常处理:使用try和catch进行异常处理。
学习心得:
真的,我太难了。
我一个萌新,在啥都不懂的情况下,从最简单的system.out.println()开始,到我现在还一脸懵的文件操作方式,用一个星期疯狂百度各种代码,终于在最后这几十分钟搞定了代码部分,然后没时间搞测评性能之类的东西了。。。我枯了。。。