个人项目作业-论文查重
这个作业属于哪个课程 | 2023软件工程-双学位(广东工业大学-计算机学院) |
---|---|
这个作业要求在哪里 | 个人项目作业-论文查重 |
这个作业的目标 | 使用PSP表格估计程序开发所需时间,使用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个,再重新输入')