第一次个人编程作业
[Github](https://github.com/vjudge0913/031702617)
PSP表格。
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Plan | 计划 | 30 | 30 |
Estimate | 估计这个任务需要多少时间 | 5 | 5 |
Development | 开发 | 300 | 60 |
Analysis | 需求分析 (包括学习新技术) | 60 | 10 |
Design Spec | 生成设计文档 | 30 | 0 |
Design Review | 设计复审 | 10 | 0 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 5 | 0 |
Design | 具体设计 | 30 | 0 |
Coding | 具体编码 | 240 | 60 |
Code Review | 代码复审 | 60 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 120 | 30 |
Reporting | 报告 | 60 | 120 |
Test Repor | 测试报告 | 60 | 0 |
Size Measurement | 计算工作量 | 30 | 5 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 10 |
合计 | 1100 | 360 |
计算模块接口的设计与实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?说明你的算法的关键(不必列出源代码),以及独到之处。
刚从温州参加比赛回来,挤不出时间完完整整写完软工作业了,一开始打算用c++整的,被中文编码打败,py和java不是很熟,想来想去自己写个网页吧,实现语言html+js,文件从本地导入,导入成功按F12可以直接查看json结果,点击导出也能下载json到本地
大概看完问题描述,比较关键的几个点应该就是读写文件和字符串处理:
- 读写文件这个平时接触的多,不成问题
- 姓名会比较简单,判断一下第一个出现的逗号,剪出字符子串就行了
- 接下来的电话用的是正则匹配,再回去复习一波问题也不大
- 剩下最后的地址分割,需要考虑的点有点多,时间问题只写了省市区(县)的
找资料的过程比较顺利,和平时遇到的问题相比这次编程作业比较常规,网上基本都有相应的解决思路,毕竟是面向百度编程。
函数如下图
计算模块接口部分的性能改进。记录在改进计算模块性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2017/JProfiler的性能分析工具自动生成),并展示你程序中消耗最大的函数。
![](https://upload-images.jianshu.io/upload_images/10447075-1d6a587507c8ec5b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/10447075-8678781ea0963c6d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/10447075-f03ab31b1ebb50a2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
性能上的优化暂无涉及,没有引入词典,查找耗时并不大,主要的耗时还在网页jquery的引入和页面渲染
计算模块部分单元测试展示。展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试得到的测试覆盖率截图,发表在博客中。
自己选的js,单元测试的分数估计是没了
计算模块部分异常处理说明。在博客中详细介绍每种异常的设计目标。每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景。
目前还不支持缺省、市关键字的补全以及第四级之后信息的提取
心路历程
掌握多门语言很重要,下次一定好好学习,软工该头秃还是得秃的