个人项目作业-论文查重

这个作业属于哪个课程 2023软件工程-双学位(广东工业大学-计算机学院)
这个作业要求在哪里 个人项目作业-论文查重
这个作业的目标 使用PSP表格估计程序开发所需时间,使用gitcode管理代码,学会自动测试程序并返回测试结果

作业gitcode链接

作业gitcode链接

PSP表格

Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
计划 10 5
·估计这个任务需要多少时间 10 5
开发 565 485
·需求分析(包括学习新技术) 60 90
·生成设计文档 60 120
·设计复审 30 45
·代码规范(为目前的开发制定合适的规范) 15 10
·具体设计 30 15
·具体编码 180 150
·代码复审 30 5
·测试(自我测试,修改代码,提交修改) 180 90
报告 210 105
·测试报告 180 90
·计算工作量 20 5
·事后总结,并提出过程改进计划 10 10
合计 805 635

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

函数的个数及关系

pretreatment(file_name)  # 读取文本内容并且对文本内容进行预处理(即过滤掉文本中除汉字以外的字符)
compare_text_content(content1, content2, min_repeated_words=5)  # content1是原文本,content2是待校验文本,min_repeated_words是连续多少个字重复算是抄袭(这里暂定超过连续5个字重复就算是抄袭)
output_result(duplicate_content, output_path)  # 输出涉嫌抄袭的内容
main(original_file, to_be_verified_file, output_path)  # 主函数,调用各个函数并且计算输出重复率。参数含义:原文档(路径),待校验文档(路径),输出结果路径

关键函数的实现过程

compare_text_content(content1, content2, min_repeated_words=5)是整个程序的核心部分,具体的设计流程可以看gitcode链接中的文件“compare_text_content函数的设计思想.docx”。

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

由于pycharm社区版没有profile工具,没有办法进行性能分析,这部分没有完成

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

单元测试代码

import os

files = os.listdir(r"E:\软件工程\第二次作业\测试文本")
txt_test = []
for i in range(len(files)):
    if 'txt' in files[i]:
        txt_test.append(files[i])
for i in range(len(txt_test)):
    print('测试文件为:' + txt_test[i])
    result = os.system(
        'E:/软件工程/第二次作业/main.py E:/软件工程/第二次作业/orig.txt ' + txt_test[i] + ' E:/软件工程/第二次作业/查重结果.txt')
    print(result)
    print('\n')

基本的思想就是利用调用控制台窗口来进行测试。实际应用中,要注意代码中的路径名可能要进行修改。

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

主要针对调用主函数时“输入的文件路径输入错误”和“输入的参数数量过少”这两种异常情况进行处理。
代码如下:

try:
    main(sys.argv[1], sys.argv[2], sys.argv[3])
except FileNotFoundError:
    print('您输入的路径或文件不存在,请重新输入')
except IndexError:
    print('您输入的参数数量过少。请检查输入参数数量是否为3个,再重新输入')
posted @ 2023-03-13 16:02  灵动2333  阅读(75)  评论(0编辑  收藏  举报