第一次个人编程作业

1.github地址

https://github.com/7Hoki/031702213


2.PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 60
·Estimate ·估计这个任务需要多少时间 15 30
·Development ·开发 600 900
·Analysis ·需求分析 (包括学习新技术) 300 400
·Design Spec ·生成设计文档 30 60
·Design Review ·设计复审 30 60
·Coding Standard ·代码规范(为开发制定合适的规范) 10 30
·Design ·具体设计 60 120
·Coding ·具体编码 120 200
·Code Review ·代码复审 30 90
·Test ·测试(自我测试,修改代码,提交修改) 150 200
·Reporting ·报告 60 90
·Test Repor ·测试报告 10 20
·Size Measurement ·计算工作量 20 25
·Postmortem & Process Improvement Plan ·事后总结, 并提出过程改进计划 30 45
·Total ·总计 1495 2330

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

3.1代码语言

我太菜了,我只会学得不怎么好的C语言和C++。但是大佬们都说用C特别难,java我是真的不会,短时间也学不会了,然后他们又说python实现起来更简单也更容易,于是我马不停蹄的上了B站开始速成python,好吧,并没有成,就学到一块块。

3.2代码思路

看到这个题目我一开始直接是蒙的,后来冷静下来开始从头学习pythou,又经过相关的百度知识有了初步的思路。
题目的本质要求:字符串的处理与匹配
1.我们应该首先判断所需输出格式,根据输入的第一个字符即可判断。
2.然后因为输入格式是一定的,所以应该通过“,”将输入信息划分为两段,“,”之前的即为姓名。
3.用正则匹配出11位的电话号码,将其切除后的信息传回主函数。
4.依次根据正则匹配出省、自治区、特别行政区以及接下来的市县镇级城市及街道信息。
5.最后剩下的信息即为具体门牌地址。

3.3计算模块接口的实现

函数名 函数所实现的功能
input() 输入待处理字符串
gethandphone ( s ) 获取电话号码
getprovince ( s ) 获取直辖市/省/自治区/特别行政区信息
getcity ( s ) 获取自治州/市信息
getcountry( s ) 获得县/区/县级市
gettown ( s ) 获得城镇/乡/街道
getroad ( s ) 获得道路信息
getdoornum ( s ) 获取门牌号信息
  • 程序流程图

3.4代码的优缺点

优点

  • 代码中有7个函数,逻辑清晰,结构分明,比较直观
  • 本代码采用暴力求解的方法,简单易懂

缺点

  • 代码采用暴力打法,篇幅较长
  • 输入所占内存大,效率较低

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

4.1代码检测分析报告

代码覆盖率


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

5.1样例测试

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

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

  • 没有题目等级难度选择
  • 没有明确省市等字眼的时候依然会输出地址:[]

7.心路历程

  • 中国地理博大精深,我太难了!
  • 我太菜了,速成是永远不可能速成的,嘻嘻嘻,B站可真是个好东西,呜呜呜,我太难了!
  • 咯咯咯,我马上就去学python,有时间也学学java,留下了不学无术的泪水
posted @ 2019-09-29 22:27  今天不吃糖  阅读(126)  评论(2编辑  收藏  举报