第一次个人编程项目
| 这个作业属于哪个课程 | 计科21级12班 |
|---|---|
| 这个作业要求在哪里 | 个人项目 |
| 这个作业的目标 | 熟悉个人软件开发流程 |
gitee:https://gitee.com/jiajidong/3121004864/tree/master/
1.PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 60 |
| Estimate | 估计这个任务需要多少时间 | 60 | 70 |
| Development | 开发 | 310 | 330 |
| Analysis | 需求分析 (包括学习新技术) | 120 | 210 |
| Design Spec | 生成设计文档 | 50 | 40 |
| Design Review | 设计复审 | 30 | 20 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
| Design | 具体设计 | 50 | 70 |
| Coding | 具体编码 | 300 | 400 |
| Test | 测试(自我测试,修改代码,提交修改) | 120 | 110 |
| Reporting | 报告 | 90 | 80 |
| Test Report | 测试报告 | 40 | 30 |
| Size Measurement | 计算工作量 | 50 | 50 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 70 | 40 |
| 合计 | 1380 | 1540 |
2.需求分析
设计一个查重算法,可以用SimHash算法实现,实现文档对比,查重。
3.模块接口的设计与实现

3.1.1 FileInput类
作用:读取文本内容
类方法:readString

3.1.2 main类
运用包内定义的类方法,实现对文本的读取,分词,hash,加权,合并,降维以及计算汉明距离,通过距离最终得到相似度

3.1.3 SimHash类
主要类方法:simhHash,hash,hammingDistance,getDistance,subByDistance
其中simHash实现SimHash算法,hash实现对特征向量的hash,hammingDistance实现加权,getDistance实现合并与降维,subByDistance实现分组检查

3.2 流程图

4.性能分析


5.模块异常分析
当读取文件不存在时会报错


浙公网安备 33010602011771号