课程作业(一)
本次的改动
这次的改动不多,主要是对一些函数进行了重构。
首先是按照这次的分类要求,重新整理了几个源码文件,然后把读入数据的部分和随机生成运算符的部分分别从主函数和生成表达式的函数中分离出来单独作为一个模块,并把判断表达式重复的部分归到生成表达式的文件中,让原本的文件只负责实现输出的功能。
至于其他部分,原本的程序已经实现了一定程度的函数分离,所以没有做太多改动,应该说由于最初的模块设计不够合理,也不好进行修改。。
还有一点修改是在分数类,这次对分数类的成员函数进行了一些修改,去掉了冗余的形参,使它更像一个对象,而不是函数合集。
最后新增了一键退出的功能。
感想
其实在程序快要完成时,我有过对程序进行与这次作业类似的模块分类的想法,但由于最初模块设计就不是很合理,而且一开始为了编写效率,我的生成表达式的模块就直接包含了生成运算符和判重的功能,虽然后来把判重的部分分离了,但还是有些繁重,而且不利于函数分离。主要还是经验不足,没有合理地规划开发日程,并且贪图编写的便利,只预留了对分数部分进行改写的空间。
这次之所以没有再进行更多的修改,一方面是时间原因,另一方面就是上面说的设计问题。如果要在原程序的基础上进行修改,肯定要添上不少的全局变量,而且也会影响到运行效率,所以就只做了一点小调整。其实如果时间允许,还是重写一个比较好,或者至少是重写生成表达式的部分。