个人项目
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023 |
|---|---|
| 这个作业的要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023/homework/13324 |
| 这个作业的目标 | 积累第一次个人项目的经验 |
ps:Github链接:https://github.com/Ljhwswa/3123004357
一.PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 30 | 30 |
| · Estimate | · 估计这个任务需要多少时间 | 120 | 240 |
| Development | ·开发 | 120 | 120 |
| Analysis | ·需求分析 (包括学习新技术) | 60 | 60 |
| · Design Spec | · 生成设计文档 | 30 | 30 |
| · Design Review | · 设计复审 | 30 | 30 |
| Coding Standard | ·代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
| · Design | ·具体设计 | 40 | 40 |
| · Coding | ·具体编码 | 60 | 60 |
| ·Code Review | · 代码复审 | 30 | 40 |
| ·Test | ·测试(自我测试,修改代码,提交修改) | 30 | 30 |
| Reporting | 报告 | 30 | 30 |
| · Test Repor | ·测试报告 | 10 | 10 |
| · Size Measurement | · 计算工作量 | 20 | 20 |
| · Postmortem & Process Improvement Plan | ·事后总结, 并提出过程改进计划 | 30 | 30 |
| · 合计 | 660 | 790 |
二.接口模块说明
1. read_file函数
功能:
用于读取指定路径下的文件内容。
如果文件不存在或读取失败,会给出相应提示并终止程序。
调用关系:
仅在main函数中被调用,用于获取原始文本和抄袭文本。
2. split_text函数
功能:
用于将输入的文本分割为单词。
去除标点符号和非字母字符,并将所有单词转换为小写。
调用关系:
在main函数中被调用,用于预处理原始文本和抄袭文本。
3. count_word_frequency函数
功能:
用于统计单词列表中每个单词的出现频率。
返回单词到频率的映射。
调用关系:
在main函数中被调用,用于统计原始文本和抄袭文本的词频。
4. cosine_similarity函数
功能:
用于计算两个词频向量的余弦相似度。
调用关系:
在main函数中被调用,用于计算原始文本和抄袭文本的相似度。
5. write_result函数
功能:
用于将相似度结果写入指定文件。
结果保留两位小数。
调用关系:
在main函数中被调用,用于将相似度
三.程序cpu占用和性能图


四.测试和结果输出

注:
在测试中,本程序可写入外部文件来进行对文件的读取和测试。
四.模块异常情况
本程序包含以下两种程序异常:
(1)编码错乱
在读取论文的时候,使用读取UTF-8的编码方式,在程序一开始会执行判断,判断是否为UTF-8编码方式,若不是,则会返回错误。
(2)读取论文异常,也会返回错误,以此来达到程序的完整性。
**五.Github仓库截图

浙公网安备 33010602011771号