设计一个有理数类,应该包含加,减,乘,除运算。

有理数类:

public class Rational {
    public int i;
    public int j;
    public Rational(){
    i=1;
    j=1;
    };
    public Rational(int I,int J)
    {
        i=I;
        j=J;
        
    }
    public void setRational(int I,int J)
    {
                i=I;
                j=J;
                        
    }
    public double getI(){return i;}
    public double getJ(){return j;}
    public Rational sum(Rational b){
    Rational su=new Rational();
    su.setRational((int)(i*b.getJ()+j*b.getI()),(int)(b.getJ()*j));
    return su;
    }
    public Rational subtraction(Rational b){
    Rational sub=new Rational();
    sub.setRational((int)(i*b.getJ()-j*b.getI()),(int)(j*b.getJ()));
    return sub;
    
    }
    public Rational multiplication(Rational b){
    Rational mul=new Rational();
    mul.setRational((int)(i*b.getI()),(int)(j*b.getJ()));
    return mul;
    }
    public Rational division(Rational b){
        Rational div=new Rational();
        div.setRational((int)(i*b.getJ()),(int)(j*getI()));
        return div;
    }
    public String toString()
    {
       return i+"/"+j;
    }
}

有理数类的测试:

import java.util.Scanner;
public class RationalTest {
    public static void main(String[]args)
    {
        Scanner in=new Scanner(System.in);
        System.out.println("please enter two  number");
        Rational a=new Rational(in.nextInt(),in.nextInt());
        System.out.println("please enter two number");
        Rational b=new Rational(in.nextInt(),in.nextInt());
        System.out.println("Rational a:"+a);
        System.out.println("Rational b:"+b);
      
        System.out.println("a+b:"+ a.sum(b).toString());
        
        System.out.println("a-b:"+a.subtraction(b).toString());
        
        System.out.println("a*b:"+a.multiplication(b).toString());
        
        System.out.println("a/b:"+a.division(b).toString());
        
    }
    
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于有理数的编程问题。以下是用Java定义一个有理数的基本代码: ``` public class RationalNumber { private int numerator; // 分子 private int denominator; // 分母 public RationalNumber(int numerator, int denominator) { if (denominator == 0) { throw new IllegalArgumentException("分母不能为0"); } // 化简分数 int gcd = gcd(numerator, denominator); this.numerator = numerator / gcd; this.denominator = denominator / gcd; // 如果分母为负数,则将负号调整到分子上 if (this.denominator < 0) { this.numerator = -this.numerator; this.denominator = -this.denominator; } } // 获取分子 public int getNumerator() { return numerator; } // 获取分母 public int getDenominator() { return denominator; } // 法 public RationalNumber add(RationalNumber other) { int top = this.numerator * other.denominator + this.denominator * other.numerator; int bottom = this.denominator * other.denominator; return new RationalNumber(top, bottom); } // 法 public RationalNumber subtract(RationalNumber other) { int top = this.numerator * other.denominator - this.denominator * other.numerator; int bottom = this.denominator * other.denominator; return new RationalNumber(top, bottom); } // 乘法 public RationalNumber multiply(RationalNumber other) { int top = this.numerator * other.numerator; int bottom = this.denominator * other.denominator; return new RationalNumber(top, bottom); } // 除法 public RationalNumber divide(RationalNumber other) { int top = this.numerator * other.denominator; int bottom = this.denominator * other.numerator; return new RationalNumber(top, bottom); } // 约分 private int gcd(int a, int b) { if (b == 0) { return a; } else { return gcd(b, a % b); } } // 转化为字符串形式 public String toString() { if (this.denominator == 1) { return String.valueOf(this.numerator); } else { return this.numerator + "/" + this.denominator; } } } ``` 您可以根据自己的需要对这个代码进行修改和补充。希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值