第一次个人编程作业
作业地址:3122004435
PSP2.1 | Personal Software Process Stages |
预估耗时 (分钟) |
实际耗时 |
---|---|---|---|
Planning | 计划 | 10 | 30 |
Estimate | 估计这个任务 需要多少时间 |
60*7 | 60*12 |
Development | 开发 | 20 | 40 |
Analysis | 需求分析 (包括学习新技术) |
60*1 | 60*4 |
Design Spec | 生成设计文档 | 30 | 30 |
Design Review | 设计复审 | 30 | 10 |
Coding Standard | 代码规范 (为目前的 开发制定合适的规范) |
10 | 0 |
Design | 具体设计 | 60*1 | 60*1 |
Coding | 具体编码 | 60*3 | 60*6 |
Code Review | 代码复审 | 30 | 20 |
Test | 测试(自我测试, 修改代码,提交修改) |
30 | 60 |
Reporting | 报告 | 30 | 50 |
Test Report | 测试报告 | 30 | 40 |
Size Measurement | 计算工作量 | 30 | 10 |
Postmortem & Process Improvement Plan |
事后总结, 并提 出过程改进计划 |
30 | 20 |
合计 | 60*9+30 | 60*28+10 |
流程图
接口与类
DuplicateCheck/
│
├── head/ //头文件
│ ├── compare.h //比较
│ │ ├── float getSimilarity //获取相似度
│ │ ├── bool isCopied //定义是否抄袭
│ │ └── int LCS //查找公共字字数
│ │
│ ├── function.h //预处理
│ │ ├── pair<map<string, list<string>>, map<string, message>>& pretreatment //预处理
│ │ ├── map<string, list<string>>& divideArticle //分句
│ │ ├── list<string>& divideParagraph //拆分自然段
│ │ ├── void findPounIndex //查找标点下标
│ │ ├── map<string, message>& make7CharMap //建立倒排索引
│ │ └── list<string>& cut7CharIndex //滑动窗口截取7字索引
│ │
│ ├── message.h //4字索引所属信息类
│ │ ├── string articleName; //文章名称
│ │ └── string text; //原句
│ │
│ └── output.h //输出
│ └── void writeSimilarityToFile; //向文件写入相似度
│
└── source/ //实现
├── compare.cpp
├── function.cpp
├── main.cpp
├── message.cpp
└── output.cpp
测试
覆盖率
性能分析
改进
- 预处理阶段可以使用多线程
- 比较阶段,可以使用生产者消费者模型,边处理边比较
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步