第一次编程作业

1.GitHub项目地址

个人仓库

2.PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 30
Estimate 估计这个任务需要多少时间 1100 1325
Development 开发 1000 1220
Analysis 需求分析 (包括学习新技术) 180 200
Design Spec 生产设计文档 80 80
Design Review 设计复审 10 10
Coding Standard 代码规范 (为开发制定合适的规范) 20 20
Design 具体设计 120 120
Coding 具体编码 500 700
Code Review 代码复审 40 40
Test 测试(自我测试,修改,提交修改) 50 50
Reporting 报告 100 105
Test Report 测试报告 50 55
Size Measurement 计算工作量 15 15
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 35 35
合计 1130 1355

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

解题步骤

  • 1.输入文件并按行读取信息到一个String类型的数组中
  • 2.对数组中每一条信息进行处理
    -首先是判断这条信息的难度级别并把难度级别从信息中切除
    -再根据“,”把名字从信息中切除
    -使用正则表达式匹配出信息中的电话号码,并将其从信息中切除
    -使用正则表达式匹配信息中的地址,此时要根据最先判断出的难度级别选择将地址分为几级
  • 3.最后就是把处理后的信息输出

使用的类名、方法名及其说明

类名 方法名 说明
Main类
main(String[] args) 项目的入口,完成任务:输入文件并读取信息、判断信息的难度级别、调用informationResolution类的方法
informationResolution类 提供了对信息的具体处理方法
get_phone(String str) 得到电话号码
addressResolution1(String str) 难度级别1的信息处理方法
addressResolution2(String str) 难度级别2的信息处理方法

关键代码
正则表达式参考来自
正则表达式匹配地址
难度级别1所用的正则表达式

String regex="((?<province>[^省]+省|.+自治区)|上海|北京|天津|重庆)(?<city>[^市]+市|.+自治州)(?<county>[^县]+县|.+区|.+镇|.+局)?(?<town>[^区]+区|.+镇)?(?<village>.*)";

难度级别2所用的正则表达式

String regex = "((?<province>[^省]+省|.+自治区)|上海|北京|天津|重庆)(?<city>[^市]+市|.+自治州)(?<county>[^县]+县|.+区|.+镇|.+局)?(?<town>[^区]+区|.+镇|.+街|.+乡)?(?<road>[^路]+街|.*?巷|.*?路)?(?<num>[^号]+门牌号|.*?号)?(?<village>.*)"

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

这部分内容暂时还没做(不好意思)

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

  • 测试用例
    2!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
    1!张三,福建省福州市闽13599622362侯县上街镇福州大学10#111.
    2!王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
    1!小陈,广东省东莞市凤岗13965231525镇凤平路13号.
  • 输出结果
    {"姓名":"李四","电话":"13756899511","地址":["福建省","福州市","鼓楼区","鼓西街","道湖滨路","110号","湖滨大厦一层."]}
    {"姓名":"张三","电话":"13599622362","地址":["福建省","福州市","闽侯县","上街镇","福州大学10#111."]}

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

  • 信息当中没有省或市这样的关键字(这个问题应该是可以解决的,我搜索了解决方法但是我确实不懂啊)
  • 输入的手机号不规范
  • 输入的信息没有难度级别
  • 直辖市的处理

7.总结

  • 这次的编程作业我采用java编写,原因是之前学过的C++基本上可能还给老师了,同时我在暑假自己看视频学了一点java的基础知识,所用我就自信地用了java。
  • 但是在写代码的时候我才认识到自己学过的那么一丢丢java真的是太基础了(真的是菜),所以这次写代码的过程中大多数代码都是现学现用,而且这么短的时间内学的真的很浅,还是要继续努力啊!
posted @ 2019-09-17 22:44  Z1515  阅读(187)  评论(3编辑  收藏  举报