2017《面向对象程序设计》课程作业一

新增要求

  • 要求生成四个数字以及若干个运算符,例如生成的运算式:(5 - 4 ) * (3 + 8),或者(5+3)* 4 * 6。

  • 体现函数分离、模块化的思想。
    如以下函数scan()//该函数用于与用户交互,获取输入数据

    randomNumber()//用于随机生成数字

    randomOperation()//用于随机生成运算符

    generateExpression()//用于生成运算式

    calculateResult()//用于计算生成的运算式的结果

    print()//将统计结果输出给用户

  • 采用C++编码,特别要求必须采用C++的标准输入输出,即cin/cout。

代码改动

  • 之前代码输出题目如:a+(b*c)形式,这次增加一个变量d和一个新的符号,生成题目如:(5 - 4 ) * (3 + 8)。

  • 将能够改动的输入输出全都替换为c++的标准输入输出,由于代码中有些部分需要利用到返回值,所以这些部分的输入没有改动。

运行实例

代码地址

GitHub地址

感想

我在第一次编码时,已经将各个功能用不同的函数表示,但是不够彻底,generateexpression函数的功能和main函数混在一起,整个程序的结构,看起来就不那么清晰。在重构的时候,发生了一些阻碍,主要是变量的设置不够理想,不同函数之间的变量设置成了相同的名字,所以更改的时候就要检查哪些变量是哪个函数的,是否能够设置成全局变量,重构起来增加了许多麻烦,这是原来的代码不理想的地方。而好的地方,正是将原先编写好了的自定义函数,因为功能都分了块,所以从三个数过渡到四个数就轻而易举了。所以,程序的模块化是一个很重要的方法,它能为日后的维护提供许多方便,也便于分工与合作。

posted @ 2017-04-23 20:55  范加索尔拉  阅读(310)  评论(7编辑  收藏  举报