软件工程个人项目Word frequency program by11061167龚少波

(一)工程设计时间预计

1.代码编写:4小时

   熟悉Visual studio 2012的使用 ;

   程序代码部分主要分为三个步骤:

   (1)主函数的构建,包括各种函数调用及输入输出部分;

   (2)对目标文件夹的搜索;

   (3)对文件的中单词的查找筛选及统计。

    同时由于对C++语言比较生疏,需要查阅一些工具书和请教别的同学花费较多时间。

2.程序调试:2小时

   各种测试数据的构建:15分钟。

   数据测试和改正代码:1小时45分钟(据经验知:这种超过百行的程序总是会出现很多错误,调试时会花很多时间)。

 3.程序优化:1小时

   计算各个步骤的大概时间复杂度,查阅资料在运行时间上做出优化。

   主要有对目标文件夹的查找搜索算法的优化、对文件内单词是否重复的查找算法优化、输出时的排序算法的优化。

 预计总时间:7小时。

(二)、实际用时:

 1.代码编写:4小时30分

 2.程序调试:3小时

 3.程序优化:1小时

 实际总时间8小时30分。

 代码编写和程序调试部分花去太多时间,尤其是调试,输出总不对,每次调试单步执行都要花费好久,最后还是请教了

大神帮忙看一下才过的。

(三)、程序优化:

测试文件属性:

 性能分析报告:

优化方法:

        可见执行大概需要12秒左右,主要性能瓶颈在主函数,但是主函数主要是输出时的排序代码,我采用的是冒泡排序,确实复杂度较大,

 这里可以采用快速排序,能够实现优化效果;

 其次就是在对目标文件夹的检索中函数的执行次数较高,如下:

由于这个读取文件的方法是请教的别人的,具体怎么优化位置,准备另外花时间查查资料。

(四)、测试用例

1、测试空文件夹

2、测试多个文件中相同内容,看程序能否正确统计

3、大规模文本,进行压力测试

4、空文本测试

5、数字开头文件,不合法单词测试

6、不同格式文件测试

7、目标文件夹中包含多个子目录的测试

8、测试特殊字符对分词的影响

9、针对字典序的测试

(五)、收获和感想

    通过这次的作业,我学到了好多专业知识,虽然以前上过C++的课程,但是都是老是在课堂上讲,等到自己回去动手编程时就感觉

无从下手,然后老师也没有具体的编程要求,上课讲的知识应付完考试就什么都忘了,最后就变成什么也没学到,还真是“读万卷书

不如行万里路”,在实践中学习才是最好的策略。

原文地址:https://www.cnblogs.com/gongshaobo93/p/3337988.html