实验报告
(1)设计一个分数类,分数的分子和分母用两个整型数表示,类中定义方法对分数进行加、减、乘、除运算;
(2)在测试类中定义分数类对象,运算并输出运算结果。
public class S3_2 {
public static class Asmd {
int fson;
int fmom;
public int gcd(int a, int b) {
if (a < b) {
int temp = a;
a = b;
b = temp;
}
int t = a % b;
while (t != 0) {
a = b;
b = t;
t = a % b;
}
if (b < 0) {
b = -b;
}
return b;
}
public void Add(int fson1, int fmom1, int fson2, int fmom2) {
int fm = fmom1 * fmom2;
fson1 = fson1 * fmom2;
fson2 = fson2 * fmom1;
int fs = fson1 + fson2;
int g = gcd(fm, fs);
fm /= g;
fs /= g;
System.out.println("两数相加的结果是:"+fs+"/"+fm);
}
public void Sub(int fson1, int fmom1, int fson2, int fmom2) {
int fm = fmom1 * fmom2;
fson1 = fson1 * fmom2;
fson2 = fson2 * fmom1;
int fs = fson1 - fson2;
int g = gcd(fm, fs);
fm /= g;
fs /= g;
System.out.println("两数相减的结果是:"+fs+"/"+fm);
}
public void Mul(int fson1, int fmom1, int fson2, int fmom2) {
int fm = fmom1 * fmom2;
int fs = fson1 * fson2;
int g = gcd(fm, fs);
fm /= g;
fs /= g;
System.out.println("两数相乘的结果是:"+fs+"/"+fm);
}
public void Div(int fson1, int fmom1, int fson2, int fmom2) {
int fm = fmom1 * fson2;
int fs = fson1 * fmom2;
int g = gcd(fm, fs);
fm /= g;
fs /= g;
System.out.println("两数相除的结果是:"+fs+"/"+fm);
}
}
}
import java.util.Scanner;
public class S3_2Test {
public static void main(String[] args) {
S3_2.Asmd asmd= new S3_2.Asmd();
System.out.println("请输入第一个分数的分子:");
Scanner sc1=new Scanner(System.in);
int fson1= sc1.nextInt();
System.out.println("请输入第一个分数的分母:");
Scanner sc2=new Scanner(System.in);
int fmom1= sc2.nextInt();
System.out.println("请输入第二个分数的分子:");
Scanner sc3=new Scanner(System.in);
int fson2= sc3.nextInt();
System.out.println("请输入第二个分数的分母:");
Scanner sc4=new Scanner(System.in);
int fmom2= sc4.nextInt();
asmd.Add(fson1,fmom1,fson2,fmom2);
asmd.Sub(fson1,fmom1,fson2,fmom2);
asmd.Mul(fson1,fmom1,fson2,fmom2);
asmd.Div(fson1,fmom1,fson2,fmom2);
}
}