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

个人仓库

  • 我的仓库

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的过程中遇到了很多问题,有的到最后还是没有解决,这次作业真是让我抓狂,一个人做项目真是太难受了

  • 主要类与方法

  1. 提取地址信息
    public static List> addressResolution(String address)
  2. 截取电话号码
    public static String phone_number(String num)
  • 解题思路
  1. 先处理输入数据的标点符号
  2. 利用字符串截取获取姓名
  3. 利用正则表达式获取手机号
  4. 利用正则表达式获取地址信息
    参考博客:https://blog.csdn.net/qq389203946/article/details/80656604
  • 关键代码
  1. String regex = "(? [^省]+自治区|. ?省|.?行政区|. ?市)(? [^市]+自治州|. ?地区|. ?行政单位|.+盟|市辖区|.? 市|. ?县)(? [^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(? [^镇]+镇|.+乡)?(? [^路].+路|.+巷|.+街)?(? [\d]+号|)(? . )";
    Matcher m = Pattern.compile(regex).matcher(address);

  2. Pattern pattern = Pattern.compile("(? 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号",""]},]

    样例都过不了的我

计算模块接口部分的性能改进

  • 性能分析

【软件工程】第一次个人编程作业_第1张图片

【软件工程】第一次个人编程作业_第2张图片

计算模块部分单元测试展示

  • 代码展示
public static String phone_number(String num) {
        if (num == null || num.length() == 0) {
            return "";
        }
        Pattern pattern = Pattern.compile("(? 0) {
            bf.deleteCharAt(len - 1);
        }
        return bf.toString();
    }
  • 覆盖率截图
    【软件工程】第一次个人编程作业_第3张图片

计算模块部分异常处理说明

  • 无法正确解析直辖市

    3!小美,北京市东15822153326城区交道口东大街1号东城区人民法院.
    {"姓名":"小美","手机":"15822153326","地址":["null","null","null","null","null","null","null"]}

  • 无法解析省市缺失的情况

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

  • 没有针对题意的难度级别输出
  • 代码功能不完善,无法解决此问题

总结

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

你可能感兴趣的:(【软件工程】第一次个人编程作业)