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

作业要求:

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

这次作业要求将每一块分开,我重新看了一遍我的代码,发现之前都有进行分块处理,心想这次应该不会太难(暗自窃喜中)。可是当我着手要按要求那样重新编排我的代码时却发现很难把我的代码分成一块块的排列在主函数里。

scan()//该函数用于与用户交互,获取输入数据
print()//将统计结果输出给用户

我发现我的主函数里只有两种功能,即scan()和print()这两个功能,但是在这两个功能又不能完全独立分开。原因是我的代码结构和要求不太一,下面会解释。

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

我在想,time.h头文件里不是已经有time()这个函数可以实现随机了吗,为什么还要独立出来呢?

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

这个在我的代码里叫int operation(int score),这个外函数主要用来决定生成运算,不过输出算式并不是它的功能;除此之外它还要顺带计算总分,虽然只是提供算式的答案给int sco(frac result)函数(这个才是接收用户答案并且和正确答案比较的函数,因为有这个函数的存在,所以我才说scan()要单独实现在主函数里很奇怪)。

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

我有一系列的frac print(参数) 函数,用来输出特定的算式,并根据运算顺序计算结果返回给operation(),只不过这一系列函数很分散,甚至各自情况都不一样,所以我不知道到底该怎么将他们合并成一个函数扔在主函数里。

总的来说,我的代码是通过主函数调用operation(),然后operation()再调用time(),print(),sco()等等,是一层层递进的嵌套关系,现在突然要让我把这些剥离开来变成主函数里的一系列并列函数,我觉得除非重新写一段代码,不然就目前而言不太可能实现。
所以我最后只改了一下输入输出的形式,改用C++的形式,其他的我连原有的函数名都不改了。
还有一件很严肃的事,就是我本来好很纠结要不要把.h和.cpp分开写,后来发现根本没必要纠结,因为我还是搞不清到底什么要放在public里面,什么要放在private里面,我觉得我的变量也好,函数也好,都没有什么需要特殊保护以免被修改的呀。。。。暴露了一直没好好学习C++
GitHub
2017《面向对象程序设计》课程作业一