第一次个人编程作业
第一次个人编程作业
这个作业属于哪个课程 | 计科22级12班 |
---|---|
这个作业要求在哪里 | 个人项目 |
这次作业的目标 | 完成一个论文查重的个人项目 |
1、Github地址
2、计算模块接口的设计与实现过程
程序运行过程:
执行程序时,首先调用load_file()加载原文件和抄袭文件分别存入orig_text和plag_text中,然后调用simhash()计算simhash值存入哈希表中,最后通过计算原文件和抄袭文件的汉明距离得出相似度。
算法原理:
-Simhash算法通过将文本字符串分割成单词并计算每个单词的哈希值来实现。在计算Simhash值时,使用了一种简单的技术,即将单词哈希值的每个比特位分别记录在长度为64的数组中。然后将数组的每个值与0进行比较,如果大于零,则将Simhash值的相应位置设置为1,否则设置为0。最后将Simhash值存储到哈希表中。计算完成Simhash值之后,该代码计算原文件和抄袭文件的汉明距离(即不同位的数量),然后将相似度写入输出文件。
3、功能测试
进入powershell命令行输入代码运行并依次附上原文件路径,抄袭文件路径和结果文件路径,若测试文件的路径发生变化则需更改路径
点击查看代码
& "C:\Users\Administrator\Desktop\新建文件夹\main.exe" "C:\Users\Administrator\Desktop\新建文件夹\orig.txt" "C:\Users\Administrator\Desktop\新建文件夹\orig_0.8_add.txt" "C:\Users\Administrator\Desktop\新建文件夹\output.txt"
4、性能分析图
5、异常处理
若传入文件路径出错,则会弹出提示打开文件失败
6、PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 20 |
Estimate | 估计这个任务需要多少时间 | 10 | 10 |
Development | 开发 | 120 | 240 |
Analysis | 需求分析(包括学习新技术) | 60 | 30 |
Design Spec | 生成设计文档 | 10 | 10 |
Design Review | 设计复审 | 10 | 10 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 10 | 10 |
Design | 具体设计 | 10 | 20 |
Coding | 具体编码 | 15 | 30 |
Code Review | 代码复审 | 10 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 60 |
Reporting | 报告 | 30 | 60 |
Test Repor | 测试报告 | 30 | 30 |
Size Measurement | 计算工作量 | 10 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 60 |
合计 | 415 | 620 |