Individual Project - Word frequency program
第一次软件工程的作业就让我弄得够呛啊。原因很多,不过还是自己水平真的有待提高。
一,项目预计用时
由于之前没有写过C++或者C#的程序,对这两种语言没有真实的了解,选了用C++做这次的作业,还临时抓紧去买了本书看看,用的visual studio 2012 还是开始作业前不久才装上的。感觉时间很紧。
计划是用空余时间先大致翻翻书,对C++以及vistual studio有更多的了解与掌握。
对于这次作业,预计分为五个部分,其它函数的编写,主体函数(文件的递归扫描读取和单词计数)的编写,拓展部分对连续单词词频统计部分的代码编写以及程序调试和最后的作业整理提交。
第一部分其它函数的编写,利用已有的编程能力,将除上述的主体函数外的小函数写编好,预计用时2小时;
第二部分主体函数的编写,通过翻书查资料,预计用时4小时;
第三部分对连续单词的词频统计,通过适当的修改一写完的单词词频统计部分,预计用时2小时;
第四部分的调试,因为感觉自己编出的程序经常会有这有那的莫名其妙的错误,预计用时4小时;
第五部分最后的作业提交,回顾整个作业过程,总结经验教训,预计用时1小时。
二,项目实际用时
经过这么长一段时间的煎熬,这次的作也算是勉强完成了,果然还是高估自己。
整个过程用时都大大超过的预计用时,作业过程中也发现了自己能力上的的各种不足,有待提高。
第一部分的其他函数编写,这部分相对来说算是最符合预计的了,果然还是因为这部分用到的基本都是已经学过用过的了,相对来说还是比较熟练的。由于一些语法问题,多花了半小时吧就,实际大概用时2.5小时;
第二部分的主体函数就头疼了,感觉书上翻来翻去找不到要用的内容,上网搜关键字又不准确,浪费了一段时间,还是没什么收获,最后在同学的提醒帮助下才从一个别人的博客上发现了要用的函数的介绍与解释。不过虽然找到了,看懂这个函数也花了一点时间,然后根据要求写出自己的代码,这部分整个实际用时大约要5个小时吧;
第三部分的词频统计,一开始想的简单,然后开始写了又突然不知道怎么改了,纠结了好久,想了几种方法又总觉得麻烦,迟迟没有开始编写代码,最后还是决定先写了再说,然后写写改改,又是一段时间,最后感觉还没写好,算法中还有问题估计,都感觉没时间改了,实际用时3小时左右;
第四部分的调试就真的是远远超出预计时间了,之前的就已经花超了不少时间,而且剩下的时间也不多了,可是越急反而越没有效率,从头开始调试,结果一路的bug,一个一个的改,想来想去,有时候还改了这,那又有点问题了,特别是调试第三部分中的代码时,也是上面那部分代码确实没写好吧,里面留下了不少问题,改的时间也就被大大延长了,最后实际的用时都快说不清楚了,前天晚上编完就开始调试,调到实在困得不行了才睡觉,今天下午上完课回来又马上继续调试,结果还是调到了晚上,这些时间加起来,都快8个小时了吧。
第五部分的作业提交算是最轻松的了吧,不过看着截止时间都快到了,因为明天上午满课,也就是说也就剩下今晚的时间了。也暂时没有什么心情总结感慨了,想着能先搞定就不错了,这部分最后花了一个半小时吧。
总共实际用时20个小时,比预计超出很多,每次都是这样吧,真的该好好努力啊。
三,程序性能分析与优化
说实话,由于编写调试程序的过程就占用了我这两天几乎所有的空余时间,对于这部分我做的真的很不够。
而且对于visual studio 2012 的运用也不太熟练,对这个编程工具用的还不是很顺手,它的很多强大的功能都不能很好的利用。
程序的性能分析也只是看看样子,并不能完全理解它给我提供的各种性能分析结果,还是多用用来学习吧。
四,测试用例
1,先是最简单的测试了一下,算是检查下程序的基本功能,方便调试与修改。
2,慢慢加了些比较特殊的内容,如测试不满足要求的单词,看是否会错误的统计进去,或者在单词中加入特殊的符号,看程序是否能够正确应对。
如测试用例中的一个文档,有不少三个字母以下的单词,以及数字开头的单词,还有中文汉字等等。。。
3.测试了连续两个单词的统计情况,也是先选择了一个简单的试试。
4,再在测试用例的文档中加入比较特殊的连续单词,比如连着三个同样的单词,看它是否能正确统计,比如两个单词中有多于一个的空格,看是否会错误的统计进去。。。
5,测试连续三个单词的词频,
6,同样,也测试了一些特殊情况,不过测试结果与测试连续两个单词的词频大致相同。还有一些其他的情况,比如目录中含有子目录或者含有空的子目录,空的子文件等等,不在一一展示。
五,收获
通过这次作业,有了不少收获,同时也有很深的感触。
收获是,通过这次作业,用C++编写了一个程序,对C++有了真实的了解,虽然离掌握还远远不够,以后多加练习吧;同时,通过这次的练习,也算是让一个暑假没有写过什么程序的我重新开始找找写程序的感觉吧,感觉再不写都快忘了怎么写程序了,确实太缺乏练习了。
而说到感触,首先,感觉自己的自学能力不强,不能很好地利用已经学过的知识去学习掌握新的知识与内容,还是因为这方面锻炼的太少或者积极性大不如前了吧,从小接受应试教育,一味接受老师给的,渐渐缺乏自己伸手的习惯,虽然进入大学这方面或多或少的得到改善,但还是远远不够。就这次作业来说,已经学过用过好久了C和Java,让我C++或者C#,我还是一下子不知所措,开始时还是浪费了不少的时间,也因此在一定程度上影响了这次作业的完成情况吧。
而且,自己的编程能力远远不行,作为一名计算机专业的大学生,编程能力还是必不可少的,之前的编程也基本都是完成作业以及实验,以后还要多自己去练习,通过多多的编写程序,逐步提高自己的编程能力把。
最后,对于这学期的软件工程课,虽说还有点不适应老师这样的教学方式,不过我也相信,能跟上老师的教学进度,完成老师的各项要求,还是一定会有不少收获的。第一周的这个个人作业结束了,我对于自己这次作业的完成情况是比较不满意的,原因有很多,也因此让我发现了自己目前身上存在着的这些问题吧,在接下来的学习中,尽力改正加油吧。