个人项目
| 作业要求 | 链接 |
|---|---|
| 1.在Github仓库中新建一个学号为名的文件夹。 2.在开始实现程序之前,在PSP表格[附录2]记录下你估计在程序开发各个步骤上耗费的时间,在你实现程序之后,在PSP表格记录下你在程序的各个模块上实际花费的时间。 3.使用C++ 、Java语言或者python3实现,提交python代码时请附带上requirements.txt,。C++请使用Visual Studio Community 2017进行开发, 运行环境为64-bit Windows 10。对于C++/Java,还需将编译好的程序发布到Github仓库中的releases中 4.提交的代码要求经过Code Quality Analysis工具的分析并消除所有的警告。 5.完成项目的首个版本之后,请使用性能分析工具Studio Profiling Tools来找出代码中的性能瓶颈并进行改进。 6.使用Github[附录3]来管理源代码和测试用例,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。 7.使用单元测试[附录4]对项目进行测试,并使用插件查看测试分支覆盖率等指标;写出至少10个测试用例确保你的程序能够正确处理各种情况。 |
要求链接 |
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 80 |
| Estimate | 估计这个任务需要多少时间 | 1200 | |
| Development | 开发 | 60 | 120 |
| Analysis | 需求分析 (包括学习新技术) | 120 | 240 |
| Design Spec | 生成设计文档 | 120 | 120 |
| Design Review | 设计复审 | 300 | 100 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 120 | 120 |
| Design | 具体设计 | 120 | 240 |
| Coding | 具体编码 | 120 | 120 |
| Code Review | 代码复审 | 120 | |
| Test | 测试(自我测试,修改代码,提交修改) | 60 | 20 |
| Reporting | 报告 | 60 | 60 |
| Test Repor | 测试报告 | 60 | 60 |
| Size Measurement | 计算工作量 | 60 | 120 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 100 |
| 合计 | 1200 | 1500 | |
| github链接 | |||
思路 |
|||
| ---- | |||
| 1.写入文本,并转成string模式 | |||
| 2.把文本的字符串通过SimHash算法求出其SimHash值,再使用海明算法求出距离 | |||
| 3.把距离写出文本 |
计算模块接口的设计与实现过程 |
|---|
设计 |
![]() |
实现过程 |
| 文本——》SimHash=分词,hash,加权,合并,降维——》得出两个SimHash值——》用海明算法算出距离——》把距离输入到指定的文本 |
性能分析 |
|---|
![]() |
![]() |
单元测试 |
|---|
文本的输入 |
![]() |
![]() |
SimHash的生成 |
![]() |
海明算法的结果 |
![]() |
使用例子 |
|---|
![]() |
![]() |
心得 |
|---|
| 在学习新算法的时间耗费比较多。而且有很多还没用相通之处,算法上也应该有很多需要优化的地方,但随意改动又会导致程序运行失败,说明还得多去熟悉程序语法 |










浙公网安备 33010602011771号