1、git 代码:
2、PSP表格:
3、计算模块接口的设计与实现过程
总共有三个类分别是 Characters,Wordcount,Frequency,三个类都有函数get_filename,以及读取字符的函数;
不同的是对文件的操作不同:
Characters中的char_count函数是对文件字符计数(包括空格和回车)
Wordcount是记录文件中符合要求的单词,根据所学的自动机可以得到下图
每当从E转移到A时,把E记录下,但当读取到文件最后一个字符时,若仍在E状态,容易遗漏,则在函数末加一个判断。
Frequency中的word_map函数对单词进行排序;输出时若不满十个则输出“不满十个”
4、计算模块接口部分的性能改进
重点修改了Wordcount中排序的函数,记录单词时用map记录,排序时将map转移至新的pair进行sort,后来想只要频率前十的单词,那不如把map的元素存入对应结构体链表中,做十次冒泡,就改进了。
5、计算模块部分单元测试展示
CPU利用率:
代码覆盖率:
单元测试:
感想:
说实话,这次作业很棒,我个人很喜欢,就如老师所说,差一点就完成不了,虽然实际代码比较简单,但是锻炼了我写文件输入、写头文件、测试文件、控制台操作的能力,几乎可以说是从无到有,最开始的代码全部写在一个main里,还自以为棒棒的,后来在写头文件的时候错误连连,才感叹自己的水平不如别人。很感谢这次作业,让我这个大菜鸡稍微有点儿长进,虽然还差的远呢!