第四次作业----结队编程
第四次作业——结队编程
姓名 | ***泳清 |
学号 | 201831061116 |
博客地址 | https://www.cnblogs.com/diaoyongqing666/ |
作业要求 | https://www.cnblogs.com/harry240/p/11524113.html |
Github项目地址 | https://github.com/Boucher1/-Wordcount |
一、psp表格
二、模块设计与实现过程
1.本程序拥有一个结构体,里面包含了单词内容以及出现次数。
2.具有如下一些功能
存储单词,和Ascii码字符数,以及单词总个数。
将单词中的大写字母转换为小写字母方便比较单词是否一致。
通过冒泡排序将单词按字典顺序排序。
统计同一单词出现的次数。
通过选择排序将单词出现频率按照降序排列输出。
最后将其输出到文件中。
三、代码复审
1.我采用的是写了再改软件开发模式,很快写完代码后编译出错的地方反复修改,有些编写时候没考虑到的地方会多进行一些添加或修改,尽量去丰富程序地可用性。
2.总的来说代码还是比较符合需求和规格说明的。
3.但是在设计过程中没有考虑的太周全,很多地方还需要改进。
4.可读性来说的话算一般吧,这次没有较好的排版。
5.代码维护上比较方便,行数不是太多。
四、性能改进
这块暂时感觉没有什么需要特别改进的地方,我觉得那就应该是将程序的一些功能封装为函数,可以提高程序运行的效率。
以下为性能分析图。。。
五、程序运行结果
1.input 文件。
2.output 文件
六、计算模块部分异常处理说明
文件打开操作错误
若以只读或者只写方式打开的文件不存在时则会提示错误信息并异常退出程序。
七、结队过程
虽然我知道本次作业是结队编程作业,目的也是为了让我们体验结队编程的好处。
但因暂时没找到队友,所以这次作业由自己完成,后面会找一位同学一起来丰富这个程序,望助教老师见谅,dbq。
八、作业总结
本次作业很遗憾没有和同学一起结队编程,没有享受到两人一起并肩作战的氛围,也没有体会到1+1>2的效果。但通过对室友结队编程的过程进行学习和观察,明白很多结队编程才能享受到乐趣,两个人在一起互相理解互相讨论互相帮助,效率比一个人要高很多。一个人的力量是有限的,个人的编程是朴实,无华且 枯燥的,团队的协作才能事半功倍。
对于编程中出现的问题,刚开始我发现对于最后一个单词的记录会遗漏,反观自己的代码发现,判断一个字符串为单词的条件为下一个字符是非字母字符,但这样就容易出现一个问题,当输入最后一个单词后面不再接任何字符的时候,此时已经到了文件的末尾,将不再进行判断,会对最后一个单词产生遗漏,因此,对于用户输入过程中需要添加一个限定条件——输入一个表示字符结束的任意字符(非字母),这样便可以解决上述问题。还有就是在计算不同单词个数的时候出现单词数错误,我通过单步调试检查出了错误所在——冒泡排序的判断结束标志出错,修改之后程序正常运行。