第一次个人编程作业
psp2.1
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 40 |
· Estimate | 估计这个任务需要多少时间 | 10 | 40 |
Development | 开发 | 30 | 40 |
· Analysis | 需求分析 (包括学习新技术) | 10 | 60 |
· Design Spec | 生成设计文档 | 20 | 45 |
· Design Review | 设计复审 | 30 | 30 |
· Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
· Design | 具体设计 | 30 | 30 |
· Coding | 具体编码 | 10 | 20 |
· Code Review | 代码复审 | 30 | 40 |
· Test | 测试(自我测试,修改代码,提交修改) | 60 | 10 |
Reporting | 报告 | 80 | 20 |
· Test Report | 测试报告 | 30 | 10 |
· Size Measurement | 计算工作量 | 20 | 40 |
· Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 100 |
Total | 合计 | 360 | 480 |
`
try:
# 读取原文文件内容
with open(original_file_path, 'r', encoding='utf-8') as original_file:
original_text = original_file.read()
# 读取抄袭版论文文件内容
with open(plagiarized_file_path, 'r', encoding='utf-8') as plagiarized_file:
plagiarized_text = plagiarized_file.read()
# 计算重复率
similarity = calculate_similarity(original_text, plagiarized_text)
# 将结果写入答案文件,精确到小数点后两位
with open(output_file_path, 'w', encoding='utf-8') as output_file:
output_file.write("{:.2f}".format(similarity))
print(f"重复率计算完成,结果已保存到 {output_file_path}")
except FileNotFoundError:
print("文件未找到,请检查文件路径是否正确。")
except Exception as e:
print(f"发生错误: {e}")
`
代码说明
calculate_similarity 函数:使用 difflib.SequenceMatcher 类计算两个文本的相似度,返回一个 0 到 1 之间的浮点数,表示重复率。
main 函数:
从命令行参数获取原文文件、抄袭版论文文件和输出答案文件的路径。
读取原文文件和抄袭版论文文件的内容。
调用 calculate_similarity 函数计算重复率。
将重复率结果保存到输出答案文件中,精确到小数点后两位。
注意事项
请确保输入的文件路径是正确的,并且文件编码为 UTF-8。
如果文件未找到或发生,程序会输出相应的错误信息
使用方法
测试案例:
将上述代码保存为一个 Python 文件,例如 plagiarism_checker.py。
打开命令行终端,运行以下命令:
python plagiarism_checker.py <原文文件的绝对路径> <抄袭版论文文件的绝对路径> <输出答案文件的绝对路径>
例如
python plagiarism_checker.py /path/to/orig.txt /path/to/orig_add.txt /path/to/answer.txt
- 测试环境准备
通过在命令行输入 python --version 来确认。
将前面给出的 Python 代码保存为 main.py 文件。 - 创建测试文件
在磁盘上创建一个用于测试的文件夹,例如 C:\tests。
在该文件夹下创建三个文件:
原文文件 org.txt:在文件中输入原文内容,比如:
plaintext
今天是星期天,天气晴,今天晚上我要去看电影。
抄袭版论文文件 org_add.txt:输入经过增删改后的内容,例如:
plaintext
今天是周天,天气晴朗,我晚上要去看电影。
答案文件 ans.txt:该文件初始为空,用于存储程序输出的重复率结果。 - 运行测试
打开命令提示符(CMD),输入以下命令来运行代码:
sh
python main.py C:\tests\org.txt C:\tests\org_add.txt C:\tests\ans.txt
若一切正常,命令行将输出类似如下信息:
plaintext
重复率计算完成,结果已保存到 C:\tests\ans.txt
- 验证结果
使用文本编辑器打开 C:\tests\ans.txt 文件,查看其中的重复率结果,结果应为精确到小数点后两位的浮点数。