当大二暑假结束,我发现我还是没有熟练掌握一门编程语言时,我就知道苦日子要来了。
这不,才开学第三周,就已经被虐的体无完肤了。连编译课用C语言写的词法分析,都要写很久、Debug很久才能写出来,更别提大数据和软件工程这两门应用性很强的课了……
听到要遍历文件,还要打开不同后缀的txt文件时我觉得我能试着搞一搞。
听到队友说要用map要用hash要用深度优先遍历,我觉得我肯定搞不出来了……
都怪大一大二编程基础没打好。
不过想一想也不是没努力,而是精力用到别的地方了。
所以也不用叹息什么,抓紧点赶上来就好了。
虽然这次作业写得又久又渣,抱了各种大腿,但好歹是写出来了。
1.Before you implement this project, Record your estimate about the time you WILL spend in each component of your program.
我将我的工作拆分成以下几个部分来完成,分别估计完成时间:
1.C++入门,搞懂怎么创建工程,编译,直至helloworld过关。决定用面向过程的方式来写cpp。(预计2小时)
2.弄懂遍历文件的方式,深度优先搜索等相关内容。(预计3小时)
3.txt文件中的word如何读取(预计1小时)
4.word的存储形式(此时已经听说了hash和map,预计2小时)
5.如何将新读入的word与已有的wordlist进行匹配(预计1小时)
6.实现要求中对word的判断(预计3小时)
7.排序如何按number>word两个关键字排序(预计1小时)
8.排序完,如何输出到某一文件(预计1小时)
9.如何高效排序(预计1.5小时)
10.算法分析(预计1小时)
11.博客随笔(预计1小时)
预计时间共15.5小时。
2) After you had implemented this project, record the ACTUAL time you spent in each component of your program.
噢,这真是一件让人伤心的事……
1.C++入门,搞懂怎么创建工程,编译,直至helloworld过关。决定用面向过程的方式来写cpp。(2小时)
2.弄懂遍历文件的方式,深度优先搜索等相关内容。(3小时)
3.txt文件中的word如何读取(1小时)
4.word的存储形式(此时已经听说了hash和map,4小时)
5.如何将新读入的word与已有的wordlist进行匹配(2小时)
6.实现要求中对word的判断(3小时)
7.排序如何按number>word两个关键字排序(2小时)
8.排序完,如何输出到某一文件(1小时)
9.如何高效排序(1.5小时)
10.算法分析(1小时)
11.博客随笔(1小时)
共计19.5小时。
3) Describe how much time you spent on improving the performance of your program, and show a performance analysis graph (generated by VS2012 perf analysis tool), if possible, please show the most costly function in your program.
4) Share your 10 test cases, and how did you make sure your program can produce the correct result. (programs with incorrect result will get 0 points, regardless of speed)
测试样例基本上涵盖了所有的情况:只有空文件夹,正常的样例(txt,cpp,h,cs),有很多文件夹的样例,很深层文件夹的样例。扩展名正确,但是内容损坏的样例等等
5) Describe what you had learned in this exercise.
1.清醒认识到了自己编程能力的薄弱,亟待加强
2.入门C++,将会进一步深入学习
3.学会利用互联网查询所需学习资料,cnblog是个好网站
4.遍历文件夹www.cnblogs.com/summerRQ/articles/2375749.html
5.词频统计www.cnblogs.com/Tony-woo/archive/2007/11/13/958452.html
6.map相关blog.csdn.net/allovexuwenqiang/article/details/5686583
7.各种系统函数的调用