补作业:随机生成二元四则运算
二元四则运算都需要实现什么功能:
(1) 定制题目数量
(2) 是否有乘除法
(3) 题目数值范围
(4) 加减有无负数
(5) 除法有无余数
(6) 是否支持分数(真分数、假分数…)
(7) 是否支持小数(精确到多少位?)
(8) 打印中每行的间隔
为了实现以上功能,并且为了便于后期实现功能拓展,我们可以将其封装成类,通过在外界设置类的参数,实现不同的功能。
首先,需要实现类的功能接口,并且对类的属性实现初始化。
其次,类添加方法,让类可以按需求生成不同类型的运算题目。通过对题目进行分析,可以发现所有可能出现的运算类型共有4中,他们分别是:
(a)整数运算
(b)小数运算
(c) 分数运算
(d)整数运算 & 分数运算 & 小数运算
然后,需要解决的问题就是如何生成整数运算、小数运算以及分数运算并计算其结果。在本例中,我们用文件分别对运算表达式和运算结果进行存储。将表达式存储于Title.txt文件内,将运算结果存储于Answer.txt文件内。
所以,先要在Ctitle的构造函数内加入清空代码,以保证每次类初始化时文件内容会被清空。
接下来我们实现创建整数运算的方法,在这里与要注意以下问题:
1.除法运算时,除数不能为0
2.若运算不能还有余数,要保证生成的除法运算均可以整除
3.若运算可以还有余数,要保证生成的结果为: 5 ÷ 2 = 2...1 ,而非2.5
接下来实现小数运算,在这里,小数的位数是可以自主选定的,所以如果小数位数选择的是2位,那么在记录如文件时也要保证多余位数不会被记录。如double类型默认写入文件是2.510000,那我们只能保留2.51,并将保留后的结果写入文件。
最后需要进行的就是生成分数,在这里,我们需要注意:
1.是否进行假分数的运算
2.要对分数的运算结果进行约分,将分数化为最简。并且将假分数化简。如5/2要化简为2‘1/2(二又二分之一)
至此,我们的类就编写完成了。接下来只需要在主函数生成类,并进行类方法的调用就行了。