论文查重算法

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136
这个作业的目标 开发个人项目

github:https://github.com/hhuang1231/3122004572

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 15 10
Estimate 估计这个任务需要多少时间 15 10
Development 开发 60 60
Analysis 需求分析 (包括学习新技术) 120 120
Design Spec 生成设计文档 30 20
Design Review 设计复审 5 5
Coding Standard 代码规范 (为目前的开发制定合适的规范) 5 5
Design 具体设计 30 20
Coding 具体编码 15 15
Code Review 代码复审 5 5
Test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告 30 40
Test Repor 测试报告 10 10
Size Measurement 计算工作量 10 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 10 10
合计 390 380

设计与实现

  1. PaperChecker用于完成整个功能
    • 其中main函数作为暴露功能的接口
    • readFile函数用于读取文件
    • calculateSimilarity函数用于计算相似度。主要的算法是将每个文件的文本都根据一个参数分割为若干份词,之后对他们取交集,从而计算出相似度。
  2. PaperChecker用于测试整个功能

性能监控


由图可发现,多数时间花费在分割字词之上。

单元测试

测试函数,主要针对各种文本以及分割长短进行测试

覆盖率

异常处理

要求不能为负数