java实验报告——分数类

实验报告

(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);
    }

}

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值