软工作业1:单词统计
刚刚发布的文章,竟然没!有!了!
凌晨两点要重新写一份也是伤啊……
1、预计时间
构思1小时
查找资料3小时
编写代码4小时
改进3小时
2、实际上。。。
构思很快,很快就决定用面向过程去写了……
基本没花多少时间就结束了
查找资料:真的是找了好久好久好久。。。都要疯了。。。这都是些什么东西。。。
前前后后总共找了大约4小时
编写代码:好久不变代码了,手生。而且基本就没写过C++的东西,导致的结果就是编写起来真的很慢,第一次是很简单的程序,大约5小时
第一次优化:第一次优化用了8小时
第二系优化:4小时
3、代码质量分析
没有错误(很开心有木有!!!)
4、性能分析
以扫描D:\VS2012\Common7为例
第一个程序
真的好慢啊,线性表存储+一点优化都没有的算法,真的好慢。跑了10分钟还没跑出来,于是就停了,但是小数据都没问题
第一次优化
优化了数据的存储结构和少量算法。
数据结构是将线性表存储改为了二叉树存储,降低了查找相同词汇的时间。
算法上是将很多在一起一起处理的部分分开,如将读取单词和查找分开。
速度快了很多。
第二次优化
这次优化是将上个程序中每次比较都要强制转换的函数变成了每个单词结构体里的一个数据,节约了很多转换的时间,时间一下子变成了原来的四分之一。
5、测试
555,我还要再把测试数据弄一边,为什么第一次发的文章消失了!!!
(1)简单测试mode1
一个文件
The Kite Runner
Maybe life is a process of running
(2)简单测试mode2
同上
(3)简单测试mode3
同上
(4)多个相同单词
一个文件
cat cat caT Dog dog dOg
(5)有文件夹和文件
文件夹----上个测试文件
|--文件夹 ------- 上的测试文件
|--文件夹-------两个上个测试文件
(6)错误输入(控制台输出,截屏不容易啊……)
(7)非空格分隔
bkuyjygb[jghbh8li’ykukvjh/12file
(8)复杂一点的
D:\VS2012\Common7
(9)单个大文件mode1
The Kite Runner这本书
(10)单个大文件mode3
还是The Kite Runner
6、个人总结
整个假期基本没有用C++编程,手很生,编写速度远不如从前,大脑也感觉像是迟钝了一样。要多加练习。
查找资料上有待提高。首先,这次有同学用C++自带的哈希表做的,很快。在查资料的时候根本就没有往这方面去想。其次,这次查到的资料,有的用不上,也有不够用的。还是需要提高的。
对于程序优化方面还是有很多需要学习的。