第一次作业词频分析之王熹篇
(一)
礼拜一软工课布置了用c#编写某字符串+文件处理的小程序,可是c#完全不会.....于是,礼拜一晚上装了个win7(原谅原来一直用xp的渣电脑吧...),礼拜2装了个visual studio 2012(暗色界面还不错),礼拜三礼拜4礼拜5陆续看了会儿《c#编程自学手册》--机械工业出版社(讲的还不错,挺容易懂得...主要还是c#容易懂...)
进入正题,今天(也就是礼拜六拉)花了一个下午把程序需要的一些基本框架都写好了,感觉c#功能缺失略碉堡,很多以前感觉很麻烦的东西都几行就搞定了。现在只剩一些细枝末节的东西需要修改了,感觉程序的拓展版还是挺蛋疼的,估计得调试好久。
总而言之(罗列下这文章想说的问题...):1.时间安排表我写了。2.c#易学好用。3.好久不码代码今天感觉很有成就感。
然后就没有然后了。
(二)
昨天把大致框架写完后,还遗留了许多问题,今天早上到现在改了快3个小时,改进了以下的功能。
1.程序现在能判断文件的后缀名是不是.txt,.cs,.h,.cpp。找出文件的后缀名我开始觉得很麻烦,写了半天的字符串处理,后来随便翻了下书,发现了System.IO.Path.GetExtension(),于是,一行就解决了。
2.将字符串与出现次数分别用两个数组进行存储,方便后期的处理和输出。
3.改进了如果当前文件夹下没有文件导致的出错bug。
4.改进了输出格式,实现了在指定的文件中输出。
当然,还有几个问题还没有解决:
1.当某个文件文件名过长时,程序出错。关键在目录下人工删除也删不掉!(@suneony想出这种变态bug)
2.控制台的输入控制
3.extended模式
边学边写的感觉很有成就感~
(三)
晚上又写了两小时代码,有了之前的思路编写拓展版也就容易实现了。
但是在拓展的过程中,我发现之前字符串的处理全部写在一个方法里太密集了,导致如果我添加拓展功能就要在方法中再调用方法,在很不合理。
于是我将原来集转换,排序,合并为一体的字符串处理方法进行了拆分,使得程序的模块化更好,添加拓展功能也就很容易了。
此外,软件的用例也挺麻烦的,深深地体会到了传说中的软件测试的难度和重要性。
希望通过软件工程课程的学习,能更加理解到底该怎样分模块,也学会软件文档的相关知识。
(四)
先贴图两张
9个测试用例准备和测试的时间也不少于编写一个模块要花的时间了。
性能分析如图,没有错误与提醒, 只有7个消息。现在只看得懂这是分析cpu的工作,感觉其他并不太懂。
希望能在以后的学习中更深的理解性能分析器的作用。
总体来说,通过这次的单人开发,我还是收获很多,现在总结如下:
1.时间使用:
装系统和vs2012 4小时
需求分析 1小时
c#的学习 9小时
主题框架的编写 5小时
细节修改 3小时
拓展功能 1小时
测试用例与分析 1小时
2.收获与心得(排名分先后)
程序的模块化确实重要
msdn文档碉堡
将需求理解透也是一门学问
c#好用,类库很猛
然后就没有然后了。
(五)
今天中午收到通知,需求分析被细化了,大家的代码都得改。但是这个细化实在是弱智,细化完还有一堆自相矛盾和不明白的地方,于是又问啊改啊问啊改啊,终于在快四个小时的时候改完了代码,可以交作业了。
虽然弱智,但确实是一个锻炼。锻炼在紧张的情绪下编码的能力(幸好没什么复杂算法),也锻炼了沟通的能力(同学们找老师沟通,之后同学们互相的沟通)。完成了程序非常爽。
这次作业应该终结了,不改了。