第一次个人编程作业

github作业链接 https://github.com/3222004640/3222004640
这个作业来自哪个班级 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136
这个作业的目标 按照PSP操作流程来实现论文查重功能

1.计算模块接口的设计与实现过程

函数关系:


算法:将文件分块读取到缓存区,然后比较字符统计每一块相同的字符数(即字符是否相同,只是针对相应的那一块是否有相同的,而不是整个文件),然后循环统计所有重复的字数。整个文件字数则是使用库函数分别遍历两个文件,然后选取字数最多的那个,重复率=重复字符数/文件里所有的字符数。

2.计算模块接口部分的性能改进

最开始设计的统计重复字符数的方法是将整个文件内容读取出来存到数组中,然后遍历两个数组得到结果,但是这样占用的内存极大,而且需要比较n*m次(n、m分别是两个文件字符数),效率太低。现在使用的是分块处理,相比之前的效率提高了很多,但是程序消耗最多的函数还是比较字符函数char_compare()

3.计算模块部分单元测试展示

测试的函数:similarity_calculation()
设计思路:重复率=重复字符数/文件里所有的字符数,那么被除数不可能为0,否则会出错
部分代码:

EXPECT_EQ(1, Project1.similarity_calculation(1,1)); EXPECT_EQ(0, Project1.similarity_calculation(0, 1000)); EXPECT_EQ(0, Project1.similarity_calculation(1, 0));
测试的函数:calcualting()
设计思路:形参传入的是文件的地址,那么就必须要考虑地址为空的情况
部分代码:
EXPECT_EQ(0, Project1.calcualting(NULL, NULL)); EXPECT_EQ(66, Project1.calcualting("D:/rjgc/org.txt","D:/rjgc/org_add.txt")); EXPECT_EQ(0, Project1.calcualting(NULL, "D:/rjgc/org_add.txt")); EXPECT_EQ(0, Project1.calcualting( "D:/rjgc/org_add.txt",NULL));
测试的函数:file()
部分代码:
EXPECT_EQ(0, Project1.file(NULL, NULL)); EXPECT_EQ(64, Project1.file("D:/rjgc/org.txt", "D:/rjgc/org_add.txt")); EXPECT_EQ(0, Project1.file(NULL, "D:/rjgc/org_add.txt"));

4.计算模块部分异常处理说明

1.similarity_calculation()异常:被除数即文件字符数为0,返回0.
测试用例:EXPECT_EQ(0, Project1.calcualting(NULL, NULL));
2.calcualting()或者file()异常:文件地址为空或者文件打不开,返回0;
 测试用例:EXPECT_EQ(0, Project1.file(NULL, NULL));
 EXPECT_EQ(0, Project1.calcualting(NULL, NULL));

5.psp表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 1790 1370
· Estimate · 估计这个任务需要多少时间 1790 1370
Development 开发 1130 680
· Analysis · 需求分析 (包括学习新技术) 240 180
· Design Spec · 生成设计文档 60 20
· Design Review · 设计复审 20 30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 30
· Design · 具体设计 60 30
· Coding · 具体编码 480 240
· Code Review · 代码复审 60 30
· Test · 测试(自我测试,修改代码,提交修改) 180 120
Reporting 报告 660 690
· Test Repor · 测试报告 120 150
· Size Measurement · 计算工作量 240 300
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 300 240
· 合计 1790 1370
posted @ 2024-03-13 19:07  廖莹  阅读(62)  评论(0)    收藏  举报