您的位置:首页 > 产品设计 > UI/UE

Project: Individual Project - Word frequency program-11061154周辰光

2013-09-25 04:37 288 查看
一、预计用时:

(1)明确要求:30min;

(2)文件的遍历:2h;

(3)Simple mode 词频统计:1h;

(4)extend mode 词频统计:1h;

(5)对单词词频排序输出:0.5h;

(6)测试与调试:2h;

(7)程序优化:2h;

二、实际用时:

(1)遍历文件夹:文件操作本来就没有掌握,自己动手的时候一筹莫展,这部分工作是放在最后完成的,最终还是参考的同学的代码,用时比较久,4h

(2)Simple词频统计:在这部分中,首先用c编写的代码,花了1.5h,然后再改写进c++中,由于我c++不很会,花费了1.5h

(3)Extend词频统计:这一部分主要借鉴上一部分代码,其中仅仅改变了对单词的识别,花费了1h

(4)排序与输出:首先做的是标准输出,花费了20分钟,然后改成文件输出花费0.5h

(5)测试与调试:3h;

在调试阶段,是最头痛的阶段,基本模式还比较简单,在扩展模式中,在提取出数字的时候,由于忽略数字之后还可以再有字母的情况,导致某些单词无法输出,经过改进后,这个问题终于解决;

另外比较大的问题就是文件操作方面,使得程序能够递归遍历文件夹下所有文件让我吃了很大苦头。

经过调试后,至少程序已经可以跑了,这让我熬了一宿也感到很是欣慰。

(6)程序优化:3h

四、测试用例

1、空文本

运行结果如下:



说明可排除空文件
2、多种后缀格式



运行结果



说明可以在多种文件类型下运行
相应代码如下

const regex pattern("\\w+\\.(txt|cs|h|cpp)");


3、简单模式大小写测试(含排序)
用例:



结果:



4、扩展模式下的大小写测试;
测试用例:



结果:



5、长度小于4单词测试
用例:



结果:



6、数字位于单词中间:
用例:



结果:



7、多个子目录下有文件

结果:



8、字典序排序
用例:



结果:



9、测试数字开头单词:

用例:



结果:



10、压力测试

运行结果:



五、收获

从这一次的软件工程作业中,我学到了很多。
首先就是认识到了程序员的艰辛,为了完成作业已经整整刷了两个通宵,但在这么高强度的工作中,也切切实实地提高了自己的编程能力。
另外,就是做事要先易后难,层层推进,这次编程,我文件处理方面的东西不会,于是我就先把词频分析的部分先写出来,然后再加上文件处理方面的代码,先做出一个较为简单的版本,再逐渐优化,这样就大大降低了难度。
其次,在这次的作业中,我懂得了向别人学习的重要性。
当然,我知道自己还有很多不足的地方,我会在今后的课程中能够向老师、助教和同学不断学习,不断进步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: