结对编程练习_四则运算(第二周)

设计思路

1.真分数加法/减法:和/差的分母=两个操作数的分母之积,和/差的分子=第一个操作数的分子乘以第二个操作数的分母+/-第二个操作数的分子乘以第一个操作数的分母。

2.真分数乘法:积的分母=两个操作数之积,积的分子=两个操作数之积。

3.真分数除法:先取除数的倒数,转换成真分数乘法。

4.真分数约分:分子、分母同时除以最大公约数。

代码及注释

加法:
public fenshu add(fenshu op2)//加法,例如2/3+1/2=(2*2+1*3)/(2*3) { int commonDenominator = denominator * op2.getDenominator();//和的分母等于分母之积 int numerator1 = numerator * op2.getDenominator();//第一个数的分子乘以第二个数的分母 int numerator2 = op2.getNumerator() * denominator;//第二个数的分子乘以第一个数的分母 int sum = numerator1 + numerator2;//sum和的分子 System.out.print("(" + this.toString() + ")" + " + " + "(" + op2.toString() + ")" + "="); return new fenshu(sum, commonDenominator);//sum分子,commonDenominator分母 }

减法:
public fenshu subtract(fenshu op2)//减法,例如2/3-1/2=(2*2-1*3)/(2*3) { int commonDenominator = denominator * op2.getDenominator();//差的分母 int numerator1 = numerator * op2.getDenominator(); int numerator2 = op2.getNumerator() * denominator; int difference = numerator1 - numerator2;//difference差的分子 System.out.print("(" + this.toString() + ")" + " - " + "(" + op2.toString() + ")" + "="); return new fenshu(difference, commonDenominator);//difference分子,commonDenominator分母 }

乘法:
public fenshu multiply(fenshu op2)//乘法,例如(2/3)*(1/2)=(2*1)/(3*2) { int denom = denominator * op2.getDenominator();//积的分母 int numer = numerator * op2.getNumerator();//积的分子 System.out.print("(" + this.toString() + ")" + " * " + "(" + op2.toString() + ")" + "="); return new fenshu(numer, denom);//numer分子,denom分母 }

除法:
public fenshu divide(fenshu op2)//除法,例如(2/3)/(1/2)=(2*2)/(3*1) { fenshu op1 = op2.reciprocal();//除数取倒数,转变为乘法 int numer = numerator * op1.getNumerator(); int denom = denominator * op1.getDenominator(); System.out.print("(" + this.toString() + ")" + " / " + "(" + op2.toString() + ")" + "="); return new fenshu(numer, denom); }

约分:
private void reduce() { if (numerator != 0) { int common = gcd(Math.abs(numerator), denominator);//求分子分母的最大公约数 numerator = numerator / common; denominator = denominator / common;//约分 } }

运行过程截图

1284381-20180423212622614-785010597.jpg

UML图:

1284381-20180423212649925-587309424.jpg

实验体会

实验为自己一人完成,受到了很多同学的帮助,学到了很多新的知识,使得对于四则运算的了解掌握加深一步。

转载于:https://www.cnblogs.com/zl1998827/p/8921872.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值