【软件工程】第一次个人编程作业
个人仓库
psp表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 70 | 80 |
| · Estimate | · 估计这个任务需要多少时间 | 70 | 80 |
| Development | 开发 | 1000 | 1080 |
| · Analysis | · 需求分析 (包括学习新技术) | 120 | 200 |
| · Design Spec | · 生成设计文档 | 50 | 60 |
| · Design Review | · 设计复审 | 50 | 60 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 80 | 70 |
| · Design | · 具体设计 | 100 | 80 |
| · Coding | · 具体编码 | 400 | 450 |
| · Code Review | · 代码复审 | 70 | 60 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 130 | 100 |
| Reporting | 报告 | 130 | 130 |
| · Test Repor | · 测试报告 | 40 | 40 |
| · Size Measurement | · 计算工作量 | 40 | 30 |
| · Postmortem & Process Improvement Plansgf | · 事后总结, 并提出过程改进计划 | 50 | 70 |
| 合计 | 1200 | 1290 |
计算模块接口的设计与实现过程
-
编程语言
Java
在使用java的过程中遇到了很多问题,有的到最后还是没有解决,这次作业真是让我抓狂,一个人做项目真是太难受了 -
主要类与方法
- 提取地址信息
public static List<Map<String, String>> addressResolution(String address) - 截取电话号码
public static String phone_number(String num)
- 解题思路
- 先处理输入数据的标点符号
- 利用字符串截取获取姓名
- 利用正则表达式获取手机号
- 利用正则表达式获取地址信息
参考博客:https://blog.csdn.net/qq389203946/article/details/80656604
- 关键代码
-
String regex = "(?
[省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[市]+自治州|.?地区|.?行政单位|.+盟|市辖区|.? 市|.?县)(? [县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[镇]+镇|.+乡)?(? [^路].+路|.+巷|.+街)?(? [\d]+号|)(? .*)";
Matcher m = Pattern.compile(regex).matcher(address); -
Pattern pattern = Pattern.compile("(?<!\d)(?😦?:1[358]\d{9})|(?:861[358]\d{9}))(?!\d)");
Matcher matcher = pattern.matcher(num);
- 样例测试
2!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
1!张三,福建福州市闽13599622362侯县上街镇福州大学10#111.
2!王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
3!小美,北京市东15822153326城区交道口东大街1号东城区人民法院.
1!小陈,广东省东莞市凤岗13965231525镇凤平路13号.
- 结果
[
{"姓名":"李四","手机":"13756899511","地址":["福建省","福州市","鼓楼区","","鼓西街道湖滨路","110号","湖滨大厦一层"]},
{"姓名":"张三","手机":"13599622362","地址":["福建福州市","闽侯县","","上街镇","","","福州大学10#111"]},
{"姓名":"王五","手机":"18960221533","地址":["福建省","福州市","鼓楼区","","五一北路","123号","福州鼓楼医院"]},
{"姓名":"小美","手机":"15822153326","地址":["null","null","null","null","null","null","null"]},
{"姓名":"小陈","手机":"13965231525","地址":["广东省","东莞市","","凤岗镇","凤平路","13号",""]},
]
**样例都过不了的我**
计算模块接口部分的性能改进
- 性能分析


计算模块部分单元测试展示
- 代码展示
public static String phone_number(String num) {
if (num == null || num.length() == 0) {
return "";
}
Pattern pattern = Pattern.compile("(?<!\\d)(?:(?:1[358]\\d{9})|(?:861[358]\\d{9}))(?!\\d)");
Matcher matcher = pattern.matcher(num);
StringBuffer bf = new StringBuffer(64);
while (matcher.find()) {
bf.append(matcher.group()).append(",");
}
int len = bf.length();
if (len > 0) {
bf.deleteCharAt(len - 1);
}
return bf.toString();
}
- 覆盖率截图


计算模块部分异常处理说明
- 无法正确解析直辖市
3!小美,北京市东15822153326城区交道口东大街1号东城区人民法院.
- 无法解析省市缺失的情况
1!张三,福建福州市闽13599622362侯县上街镇福州大学10#111.
- 没有针对题意的难度级别输出
- 代码功能不完善,无法解决此问题
总结
第一次作业就没有完成好,深刻认识到自己是多么菜,改了好久代码还是没有完成好,必须要加强学习了,争取把以后的作业完成好

浙公网安备 33010602011771号