【软件工程】第一次个人编程作业

mac2022-07-05  21

个人仓库

我的仓库

psp表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)Planning计划7080· Estimate· 估计这个任务需要多少时间7080Development开发10001080· Analysis· 需求分析 (包括学习新技术)120200· Design Spec· 生成设计文档5060· Design Review· 设计复审5060· Coding Standard· 代码规范 (为目前的开发制定合适的规范)8070· Design· 具体设计10080· Coding· 具体编码400450· Code Review· 代码复审7060· Test· 测试(自我测试,修改代码,提交修改)130100Reporting报告130130· Test Repor· 测试报告4040· Size Measurement· 计算工作量4030· Postmortem & Process Improvement Plansgf· 事后总结, 并提出过程改进计划5070合计12001290

计算模块接口的设计与实现过程

编程语言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 = "(?[^省]+自治区|.?省|.?行政区|.?市)(?[^市]+自治州|.?地区|.?行政单位|.+盟|市辖区|.? 市|.?县)(?[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?[^镇]+镇|.+乡)?(?[^路].+路|.+巷|.+街)?(?[\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号东城区人民法院. {"姓名":"小美","手机":"15822153326","地址":["null","null","null","null","null","null","null"]}

无法解析省市缺失的情况

1!张三,福建福州市闽13599622362侯县上街镇福州大学10#111. {"姓名":"张三","手机":"13599622362","地址":["福建福州市","闽侯县","","上街镇","","","福州大学10#111"]}

没有针对题意的难度级别输出

代码功能不完善,无法解决此问题

总结

第一次作业就没有完成好,深刻认识到自己是多么菜,改了好久代码还是没有完成好,必须要加强学习了,争取把以后的作业完成好

转载于:https://www.cnblogs.com/shijinhai/p/11531234.html

最新回复(0)