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

  • 相关阅读:
    你看那个人他像一条狗
    jvm系列(八):jvm知识点总览
    jvm系列(七):jvm调优-工具篇
    百亿互金平台救火故事
    一个脚本引发的血案
    一次dns缓存引发的惨案
    一次生产事故的优化经历
    从零到百亿互联网金融架构发展史
    2016颠倒梦想,2017静心前行
    Spring Boot(九):定时任务
  • 原文地址:https://www.cnblogs.com/vancasola/p/6750305.html
Copyright © 2020-2023  润新知