第一次个人编程作业
| 这个作业属于哪个课程 | 软件工程 |
|---|---|
| 作业要求 | 作业要求 |
| 作业目标 | 学习个人编程,学习使用github,性能分析以及进行代码测试 |
Github地址
https://github.com/Swan331/3119005480
PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(min) | 实际耗时(min) |
|---|---|---|---|
| Planning | 计划 | 20 | 20 |
| Estimate | 估计这个任务需要多少时间 | 15 | 10 |
| Development | 开发 | 400 | 580 |
| Analysis | 需求分析 (包括学习新技术) | 120 | 100 |
| Design Spec | 生成设计文档 | 15 | 15 |
| Design Review | 设计复审 | 20 | 20 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 15 | 15 |
| Design | 具体设计 | 30 | 20 |
| Coding | 具体编码 | 140 | 150 |
| Code Review | 代码复审 | 30 | 30 |
| Test | 测试(自我测试,修改代码,提交修改) | 40 | 40 |
| Reporting | 报告 | 40 | 35 |
| Test Report | 测试报告 | 20 | 15 |
| Size Measurement | 计算工作量 | 5 | 5 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 5 | 5 |
| total | 合计 | 915 | 1060 |
模块设计
这个代码一共有三个类:
1.getText:负责读写文件
2.MainClass:Main方法所在的类
3.SimHash:计算海明距离的类


实现过程:运行程序,键入命令行后,调用getText类的getArticle函数读入文件,并作为参数传给两个SimHash类的对象。通过调用SimHash的函数得到文本相似度,调用getText类的writeArticle函数将结果写出到文件。流程图如下:

核心算法SimHash流程图:

性能优化


测试代码
getText类的:


测试结果

异常解决
捕捉命令行键入文件有误的异常

读写文件,捕捉找不到读写文件的异常


浙公网安备 33010602011771号