大吃一278 2022-11-30 00:36 采纳率: 84%
浏览 33
已结题

Java | 分数计算类

编程定义名为Fraction的类,其中包含:
2个数据成员:代表分数的分子和分母的int型变量a、b
4个方法:
① 构造方法:Fraction(int x, int y)
② 分数加法:Fraction plus(Fraction r)
③ 分数乘法:Fraction mul(Fraction r)
④ 输出最简分数:void print()
⑤ main()方法:从键盘输入两个分数的分子和分母,分别输出两个分数值及它们的和、乘积值。程序运行界面参见如下格式:

img

  • 写回答

1条回答 默认 最新

  • 程序员Forlan 2022-11-30 08:11
    关注
    class Fraction {
        int a,b;
        Fraction(int a,int b){//构造函数
            this.a=a;
            this.b=b;
        }
        void print() {//打印分数
            int x = a,y = b,r;
            if(a == b) {
                System.out.println(1);
                return;
            }
            while(y!=0) {
                r = x%y;
                x=y;
                y=r;
            }
            a/=x;
            b/=x;
            System.out.println(a + "/" + b);
        }
        double toDouble() {//分数转化为double类型
            return a/b;
        }
        Fraction plus(Fraction r) {//分数加法
            Fraction result = new Fraction(0,0);
            result.b=this.b*r.b;
            result.a=this.a*r.b+r.a*this.b;
            return result;
        }
        Fraction multiply(Fraction r) {//分数乘法
            Fraction result=new Fraction(0,0);
            result.a=this.a*r.a;
            result.b=this.b*r.b;
            return result;
        }
    
    public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            Fraction a = new Fraction(in.nextInt(), in.nextInt());
            Fraction b = new Fraction(in.nextInt(),in.nextInt());
            a.print();
            b.print();
            a.plus(b).print();
            a.multiply(b).plus(new Fraction(5,6)).print();
            a.print();
            b.print();
            in.close();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月30日
  • 已采纳回答 11月30日
  • 创建了问题 11月30日

悬赏问题

  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了
  • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
  • ¥188 需要修改一个工具,懂得汇编的人来。
  • ¥15 livecharts wpf piechart 属性
  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了