首页 > 代码库 > 软件工程:Individual Project - Word frequency program

软件工程:Individual Project - Word frequency program

千辛万苦敲完了这个项目的代码,说实话真的没想到会花费这么多的时间,在现实的强烈对比下才发现自己真的是图样图森破。

 

1、预计用时

  因为上个学期的OO课做过类似的程序,想一想觉得再做一遍so easy,于是感觉心理有谱,预计用4个小时搞定,再用最多1个小时做测试。

 

2、现实的残酷性

  前3个小时是用来干杂务的(写宏函数,建树,写小函数,对命令行情况的分类讨论,设计整个项目的结构),

  再有3个小时是找各种资料的(文件流,模板库,string类,还有忘得差不多了的二叉树遍历),

 

  再一个3个小时是用来敲代码的,至此简单模式完成。

  运行,崩了。

  Bug年年有,今年特别多。4个小时的时间调试啊有木有!

  调试完成花了两个小时的时间写扩展模式。

  至此,任务完成。总计13个小时。

 

3、性能分析

  大家都在扫描vs的目录,我也扫。

  路径"C:\Program Files (x86)\Microsoft Visual Studio 11.0"

  第一次运行崩了。

  查原因,设了好多断点,终于发现是在遍历树的时候递归层数太多,发生了栈溢出。于是改成非递归形式。

  再运行,可以了。附图。

  结果:

  性能:

  因为采用了树结构,相对于除了哈希表之外的其他一些数据结构而言速度快了不少。

 

4、测试用例

  测试用例使用的是同学那里考来的追风筝的人,结果如图。

  简单模式:

  拓展模式1:

  拓展模式2:

 

三种模式所用函数类似,通过人工查找的办法检测了出现次数比较少的单词的个数,与结果相符。

 

再测试了一些错误输入,程序直接退出,没有崩溃。

 

5、收获

  从这次项目中复习了树的构造和遍历,熟悉了模板库和文件流的使用,知道了栈溢出这一特殊情况。另外还狂敲了四百多行代码,锻炼了coding的手感。

软件工程:Individual Project - Word frequency program