首页 > 代码库 > 小学生四则运算应用软件(一)

小学生四则运算应用软件(一)

一、基本想法

(1)整数和分数的四则运算

        由于四则运算要支持分数,刚开始我想着是自定义分数这种数据类型,而后再重载运算符。可当整数和分数混合运算的话,就要考虑到数据类型间的转化,比较麻烦。于是我转化了下思路,即将整数看成是特殊的分数(分母为1),这样将整数和分数统一起来,那么初始化便可以根据具体的数据类型做出调整,如下图所示:

技术分享

    这里需要特别注意的是,我们最后控制台显示的算式是String类型,因而要能实现分数Fraction和String直接的相互转化。

技术分享

而且要自定义一种隐式转化,这样就能令分数表示出正确的形式(比如整数10不显示分母,分数2/5等)

技术分享

这时问题又出来了,分数2/4等同于1/2,即在实际应用中分数要进行相应化简,解决方案是求取分母分子的最大公约数,并且如果分子为负数,则将分子分母同时乘以-1(为了比较大小乘以分子大小符号不会改变)

技术分享

技术分享

最后便是运算符的重载了,这里以+、<、==为例

技术分享

技术分享

技术分享

其中Add函数具体实现如下:

技术分享

由于减法等同于加一个负数,除法实际上是乘一个倒数,这里就不再赘述

另外分子不能为0,因此要进行相应的异常处理。

技术分享

 

 

 

 

 

 

 

(2)运算符的扩展

 

(3)程序流程

 

二、代码实现

三、遇到bug并解决

四、部分程序截图

五、程序改进

小学生四则运算应用软件(一)