第一次个人编程作业

1.Github

JUICY33

2.PSP表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划50
· Estimate· 估计这个任务需要多少时间5050
Development开发1300
· Analysis· 需求分析 (包括学习新技术)500500
· Design Spec· 生成设计文档3030
· Design Review· 设计复审3030
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)3010
· Design· 具体设计100120
· Coding· 具体编码500520
· Code Review· 代码复审3030
· Test· 测试(自我测试,修改代码,提交修改)8080
Reporting报告50130
· Test Repor· 测试报告3090
· Size Measurement· 计算工作量1010
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划1030
· 合计14001530

3.模块接口设计与实现

设计

实现

本来写了四个类,看着看着晕掉了就删了三个,全部都归在一起了。

为了避免使用for去比对所有地址串带来的性能浪费,就引入了一个表,比对前两个字。

代码组织如下

1330742-20190929194446129-642084030.png

关键代码:
String regex="(?[^省]+自治区|.?省|.?行政区|)(?[^市]+自治州|.?地区|.?行政单位|.+盟|市辖区|.?市|)(?[^县]+县|.+?区|.+市|.+旗|.+海域|.+岛)?(?.+镇|.+街道)?(?.街|.路|.巷)?(?[\d]+号|)?(?.*)";

返回:

[{"姓名":"李四","手机":"13756899511","地址":["福建省","福州市","鼓楼区","鼓西街道","湖滨路","110号","湖滨大厦一层"]},
{"姓名":"张三","手机":"13599622362","地址":["福建省","福州市","闽侯县","上街镇","","","福州大学10#111"]},
{"姓名":"王五","手机":"18960221533","地址":["福建省","福州市","鼓楼区","","五一北路","123号","福州鼓楼医院"]},
{"姓名":"小美","手机":"15822153326","地址":["北京","北京市","东城区","","交道口东大街","1号","北京市东城区人民法院"]},
{"姓名":"小陈","手机":"13965231525","地址":["广东省","东莞市","","凤岗镇","凤平路","13号",""]}]

4.接口性能

比for快了很多。

1330742-20190929194456532-997414720.png

程序中消耗最大的函数:

  • 读取数据函数byte[ ]

5.单元测试展示

单元测试代码:

private static void getProvince(String add){
        int len = 0;
        for (String s : level_one){
            String sub = s.substring(s.length() - 1);
            if (sub.equals("省")){
                if (add.substring(0,s.length() - 1).equals(s.substring(0,s.length() - 1))) {
                    province = s;
                    len = s.length() - 1;
                    if (add.charAt(s.length() - 1) == '省') {
                        len = s.length();
                    }
                    break;
                }
            }else if (sub.equals("市")) {
                if (add.substring(0,s.length() - 1).equals(s.substring(0,s.length() - 1))) {
                    province = s.substring(0,s.length() - 1);
                    city = s;
                    len = s.length() - 1;
                    if (add.charAt(s.length() - 1) == '市') {
                        len = s.length();
                    }
                    break;
                }

            }else if (s.substring(s.length() - 3).equals("自治区")) {
                if (add.substring(0,s.length() - 3).equals(s.substring(0,s.length() - 3))) {
                    province = s;
                    len = s.length() - 3;
                    if (add.substring(s.length() - 3,s.length()).equals("自治区")) {
                        len = s.length();
                    }
                    break;
                }
            }
        }

        nowAdd = add.substring(len);
        return;
    }

测试函数:

getprovince()

构造测试数据思路:

通过比对“市”或“自治区”的位置,精确划分“省”。

测试覆盖率:
img

6.异常处理

img

样例:

1.无手机号
2.无级别

7.小结

这是我第三个完整的java程序,在参考了网路上各路大佬的方法,合起来看了有半天的csdn,掘金和简书之后:

  • 初步了解实践了json的用法
  • 学习了祖国大好河山的地理知识
  • 因为测试程序跑不出来深深自闭
  • 正则表达式牛批嗷

转载于:https://www.cnblogs.com/juicy33/p/11609669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值