第一次个人编程作业

第一次个人编程作业:论文查重

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11146
这个作业的目标 实现论文查重算法,学会使用PSP表格估计,学会 Git commit 规范,学会单元测试

1. GitHub仓库

https://github.com/Zlaojie/3218005306

2. PSP表格

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

3. 计算模块接口的设计与实现过程

  • 类图

  • 函数的流程图

  • 算法思路
    Paper类读取相对路径下的原始论文存储路径和抄袭论文原始路径,获取文本特征之后,将字符串以两个字符为单元有重叠地进行切割,切割的结果存入HashSet中,例如:“一位真正的作家只为内心写作”分词后的结果:一位、位真、真正、正的、的作、作家、家为、为内、内心、心写、写作。之后PaperCompare类会将原始论文和抄袭论文的文本特征进行比较,如果抄袭论文中的文本特征和原始论文的文本特征有相同的,则count加一。之后再在主类PaperPath中用count计算重复率,并且把重复率写入结果文件中。

4. 计算模块接口部分的性能改进

  • JProfiler的性能分析图
  • 内存分析

5. 计算模块部分单元测试展示

  • 测试的函数:testMain()
  • 单测的测试覆盖率

6. 计算模块部分异常处理说明

  • 找不到系统文件

posted @ 2020-09-24 22:11  Zlaojie  阅读(216)  评论(0编辑  收藏  举报