• 第一次编程作业


    链接

    github地址

    (PS:如果我最后还是没法使用评测工具,就用eclipse运行一下我的代码,然后看在结果可怜份上,给点分吧...)


    PSP表格

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

     30

    45

    · Estimate

    · 估计这个任务需要多少时间

     10

    15

    Development

    开发

    500

    620

    · Analysis

    · 需求分析 (包括学习新技术)

     400

    410

    · Design Spec

    · 生成设计文档

    10

    · Design Review

    · 设计复审

     20

     25

    · Coding Standard

    · 代码规范 (为目前的开发制定合适的规范)

     10

    20 

    · Design

    · 具体设计

     30

    30 

    · Coding

    · 具体编码

     120   

    200 

    · Code Review

    · 代码复审

     10

    10 

    · Test

    · 测试(自我测试,修改代码,提交修改)

    200

     420

    Reporting

    报告

    10

     15

    · Test Repor

    · 测试报告

    10

     20

    · Size Measurement

    · 计算工作量

    15

     10

    · Postmortem & Process Improvement Plan

    · 事后总结, 并提出过程改进计划

     30

     20

     

    · 合计

     1405

     1868

     

     

     

     

     

    PS吐槽:我真没想到自己这么这么菜,从中秋前一天开始,几乎从早上做到半夜(完成前一天到3点惹),完成时间已经非常保守了,

    但依旧超过20多小时。BUG还很多,单元测试也还不会搞。。。

    我一直前进,却不知道后面会怎么怎么样...


     

    思路分析

    一、解题步骤

      1、最开始联想到关键字查询,通过联系讨论发现,与正则表达式应用相关。

      2、解决

        第一步:用逗号分开名字

        第二步:用正则表达式提取13位手机号

        第三步:分析地址的划分(难点)

      3、对出现相应的bug进行调式修改

    二、设计与实现过程

      1、函数类型(两个类)

    User类构造函数:输入整个字符串,并得到名字与手机号,并分割出地址串
    User类AddressSolution函数:输入地址串,对地址分析
    User2类webhelp函数:调用百度地图API相应查询
    User类get1,get2函数:对一类题二类题的结果区分
    User类getall函数:对所有属性结果的处理
    User类main主函数:

      2、过程问题

      一开始单纯地认为百度地图API可以直接给我准确的答案,后来发现经过地址正解析逆解析后,四级包括以后四级以后的地址会产生较大误差,

    而前三级相对较为准确。于是采取前三级调用API,后面采用正则表达式关键字查询。

      对于附加的难度3题目,API只能怪补上缺失的前三级。

      3、关键代码

    代码关键在于调用API搞定前三级,赋值给province,city,district变量
    然后再对剩余地址进行5级或7级的分析
    String[] arr=uu.webhelp(b);//调用API,然后赋值前三级
    
    ”(.*?区|.*?街道|.*?镇|.*乡)?(.*)“//5级分类后两级
    
    “(.*?街道|.*?镇|.*乡)?(.*?路|.*?巷|.*?街)?([\d]+?号|[\d]+.?道)?(.*)”//7级之类后三级

     

      4、资料来源

    ——————正则表达式的基础教程——————

    ——————百度地图解析地址——————

    ——————string类的基础运用教程————

    性能分析

    运行前

     运行后

    很明显这次代码的主题对象几乎全用String类处理,对String类的需求较为巨大。所以,对于程序的改善便应该从减少无关对象开始。

      (PS:其实就是因为代码的实现对于我这垃圾来说有些困难,对于bug的处理在于简单粗暴地新建对象,对于内存冗余问题只能依赖

    java的回收机制)

    单元测试

     题目样例的测试

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

    异常处理

     1、遇到前三级关键字多个字时,会报错。

     2、...

    最后总结

    应该30小时以上了吧...

    代码BUG疯狂出,做好中间程序的代码就是不会进行评测工具的测试,好多东西用也不会用,我真TM...尽力了

    本来觉得吧,花上这几天而学的东西以为挺有收获的,从正则走到API调用,从只会c与c++到java第一次实际应用...可时间成本太高,效率极低,完成度差...是应该反省一下的

    有些时候,其实积累跟沉淀就在那里摆着,不是几天几夜、一朝一夕就可以掩盖的...

  • 相关阅读:
    今天还做了点有意义的事
    读“记当年的公开课”
    无语
    小议如何控制学生机结束学生端多媒体控制平台程序
    今天去了中山
    Windows服务创建及安装
    SQL Server数据库表锁定原理以及如何解除表的锁定示例演示
    本地SQL脚本操作外部服务器结果集
    list.FindAll
    一个高效的数据分页的存储过程 可以轻松应付百万数据
  • 原文地址:https://www.cnblogs.com/jay-home/p/11533166.html
Copyright © 2020-2023  润新知