个人项目

作业所属班级 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136
我理解的作业目标 1. 写一个程序实现论文查重 2.学习使用性能分析工具 3.学习如何进行单元测试

项目github地址https://github.com/ztz-100/ztz-100/tree/main

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 8 8
Estimate 估计这个任务需要多长时间 8 8
Development 开发 675 1050
Analysis 需求分析(包括学习新技术) 30 400
Design Spec 生成设计文档 40 30
Design Review 设计复审 20 10
Coding Standard 代码规范 15 10
Design 具体设计 60 50
Coding 具体编码 360 480
Code Review 代码复审 30 60
Test 测试 120 40
Reporting 报告 40 60
Test Report 测试报告 20 10
Size Measurement 计算工作量 10 20
Postmortem & Process Improvment Plan 事后总结,并提出过程的改进计划 10 30
合计 723 1108

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

  • 主函数 main:主函数负责解析命令行参数,调用其他函数,并处理文件的输入输出。
  • 文件读取函数 read_file():接受文件路径作为参数,以只读模式打开文件,并读取文件内容到动态分配的缓冲区中。
  • 分词函数 tokenize():接受文本内容作为参数,使用空格和标点符号作为分隔符,将文本分割为词语。
  • 相似度计算函数 calculate_similarity():接受原文词语数组、抄袭版词语数组以及它们的长度作为参数,计算它们之间的相似度。
    流程图

其中关键算法在于相似度的计算,使用了词语级别的比较方法。
程序首先将文本内容分割成词语,然后逐个比较原文词语和抄袭版词语,统计共同词语的数量,最后计算相似度百分比。

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


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

测试类

结果

posted on 2024-03-14 02:34  wsztz  阅读(8)  评论(0编辑  收藏  举报

导航