第一次个人编程作业
| 这个作业属于哪个课程 | 计算21级 |
|---|---|
| 这个作业要求在哪里 | 个人项目 |
| 这个作业的目标 | 了解Github 和 博客园的使用,设计论文查重算法编程,完成个人编程作业编码部分 |
GitHub地址
一、编码要求
- 在Github仓库中新建一个学号为名的文件夹。
- 在开始实现程序之前,在PSP表格[附录2]记录下你估计在程序开发各个步骤上耗费的时间,在你实现程序之后,在PSP表格记录下你在程序的各个模块上实际花费的时间。
- 使用C++ 、Java语言或者python3实现,提交python代码时请附带上requirements.txt,。C++请使用Visual Studio Community 2017进行开发,运行环境为64-bit Windows 10。对于C++/Java,还需将编译好的程序发布到Github仓库中的releases中
- 提交的代码要求经过Code Quality Analysis工具的分析并消除所有的警告。
- 完成项目的首个版本之后,请使用性能分析工具Studio Profiling Tools来找出代码中的性能瓶颈并进行改进。
- 使用Github[附录3]来管理源代码和测试用例,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。
- 使用单元测试[附录4]对项目进行测试,并使用插件查看测试分支覆盖率等指标;写出至少10个测试用例确保你的程序能够正确处理各种情况。
二、需求
题目:论文查重
描述如下:
设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。
- 原文示例:今天是星期天,天气晴,今天晚上我要去看电影。
- 抄袭版示例:今天是周天,天气晴朗,我晚上要去看电影。
要求输入输出采用文件输入输出,规范如下:
- 从命令行参数给出:论文原文的文件的绝对路径。
- 从命令行参数给出:抄袭版论文的文件的绝对路径。
- 从命令行参数给出:输出的答案文件的绝对路径。
我们提供一份样例,课堂上下发,上传到班级群,使用方法是:orig.txt是原文,其他orig_add.txt等均为抄袭版论文。
注意:答案文件中输出的答案为浮点型,精确到小数点后两位
PSP 表格记录
| PSP2.1 | Personal Software Process Stages | 预估耗时(min) | 实际耗时(min) |
|---|---|---|---|
| Planning | 计划 | 20 | 10 |
| Estimate | 估计这个任务需要多少时间 | 15 | 15 |
| Development | 开发 | 60 | 90 |
| Analysis | 需求分析 (包括学习新技术) | 200 | 240 |
| Design Spec | 生成设计文档 | 15 | 10 |
| Design Review | 设计复审 | 10 | 5 |
| Coding Standard | 代码规范 | 5 | 5 |
| Design | 具体设计 | 50 | 50 |
| Coding | 具体编码 | 100 | 80 |
| Code Review | 代码复审 | 5 | 5 |
| Test | 测试 | 5 | 5 |
| Reporting | 报告 | 10 | 10 |
| Test Repor | 测试报告 | 5 | 5 |
| Size Measurement | 计算工作量 | 15 | 10 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 5 | 5 |
| 合计 | 520 | 545 |
浙公网安备 33010602011771号