设计一个分数类,分数的分子和分母用两个整型数表示。
类中定义方法对分数进行加、减、乘、除运算。定义分数类对象,运算并输出运算结果。
1.先写一个分数类。
public class fractions {
public int fson;
public int fmom;
public int gcd(int a,int b) {
if (a < b) {
int c = a;
a = b;
b = c;
}
int r = a % b;
while (r != 0) {
a = b;
b = r;
r = a % b;
}
return b;
}
public void fAdd(int fson1,int fmom1,int fson2,int fmom2){
int fm=fmom1*fmom2;
fson1=fson1*fmom2;
fson2=fson2*fmom1;
int fs=fson1+fson2;
if( fs==0){
System.out.println("结果为0");
}
else {
int g = gcd(fs, fm);
System.out.println("最大公约数:" + g);
fs = fs / g;
fm = fm / g;
System.out.println("加法运算后结果中分子为:" + fs);
System.out.println("加法运算后结果中分母为:" + fm);
System.out.println("即分数为:" + fs + "/" + fm);
}
}
public void fSub(int fson1,int fmom1,int fson2,int fmom2){
int fm=fmom1*fmom2;
fson1=fson1*fmom2;
fson2=fson2*fmom1;
int fs=fson1-fson2;
if( fs==0){
System.out.println("结果为0");
}
else {
int g = gcd(fs, fm);
fs = fs / g;
fm = fm / g;
System.out.println("减法运算后结果中分子为:" + fs);
System.out.println("减法运算后结果中分母为:" + fm);
System.out.println("即分数为:" + fs + "/" + fm);
}
}
public void fMul(int fson1,int fmom1,int fson2,int fmom2){
int fm=fmom1*fmom2;
int fs=fson1*fson2;
if( fs==0){
System.out.println("结果为0");
}
else {
int g = gcd(fs, fm);
fs = fs / g;
fm = fm / g;
System.out.println("乘法运算后结果中分子为:" + fs);
System.out.println("乘法运算后结果中分母为:" + fm);
System.out.println("即分数为:" + fs + "/" + fm);
}
}
public void fDiv(int fson1,int fmom1,int fson2,int fmom2){
int fm=fmom1*fson2;
int fs=fson1+fmom2;
if( fs==0){
System.out.println("结果为0");
}
else {
int g = gcd(fs, fm);
fs = fs / g;
fm = fm / g;
System.out.println("除法运算后结果中分子为:" + fs);
System.out.println("除法运算后结果中分母为:" + fm);
System.out.println("即分数为:" + fs + "/" + fm);
}
}
}
2.调用类和方法。
import java.util.Scanner;
public class fractions2 {
public static void main(String[] args){
int i;
fractions fractions=new fractions();
Scanner in=new Scanner(System.in);
int fson1=0;
int fson2=0;
int fmom1=0;
int fmom2=0;
System.out.println("请输入第一个分数的分子:");
fson1=in.nextInt();
System.out.println("请输入第一个分数的分母:");
fmom1=in.nextInt();
System.out.println("请输入第二个分数的分子:");
fson2=in.nextInt();
System.out.println("请输入第二个分数的分母:");
fmom2=in.nextInt();
System.out.println("1.开始运算");
System.out.println("0.退出");
System.out.println("请输入选择:");
i=in.nextInt();
if(i==0){
System.out.println("已退出");
}
else {
while (i!=0) {
System.out.println("0.退出");
System.out.println("1.加法");
System.out.println("2.减法");
System.out.println("3.乘法");
System.out.println("4.除法");
System.out.println("请输入选择:");
i = in.nextInt();
switch (i) {
case 1:
fractions.fAdd(fson1, fmom1, fson2, fmom2);
break;
case 2:
fractions.fSub(fson1, fmom1, fson2, fmom2);
break;
case 3:
fractions.fMul(fson1, fmom1, fson2, fmom2);
break;
case 4:
fractions.fDiv(fson1, fmom1, fson2, fmom2);
break;
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/147499.html