Java类部分练习题

1、分数
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
这个类的构造函数是:Fraction(int a, int b)
构造一个a/b的分数。
这个类要提供以下的功能:

double toDouble();将分数转换为double 

Fraction plus(Fraction r);将自己的分数和r的分数相加,产生一个新的Fraction的对象。

Fraction multiply(Fraction r);将自己的分数和r的分数相乘,产生一个新的Fraction的对象。
void print();将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。如果分数是1/1,应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。
注意,在创建和做完运算后应该化简分数为最简形式。如2/4应该被化简为1/2。

输入格式:

程序运行时会得到四个数字,分别构成两个分数,依次是分子和分母。

输出格式:

输出一些算式。这些输入和输出都是由Main类的代码完成的,你的代码不要做输入和输出。

输入样例:

2 4 1 3

输出样例:

1/2

1/3

5/6

1

1/2

import java.util.Scanner;

class fraction {
   public int a,b;
   public fraction(int a,int b){
       this.a=a;
       this.b=b;
   }
   public fraction plus(fraction r){
       return new fraction(this.a*r.b+this.b*r.a, this.b*r.b);
   }
   public fraction mul(fraction r){
         return new fraction(this.a*r.a, this.b*r.b);
   }
   public void print(){
       if(this.a==this.b){
           System.out.println("1");
       }else{
           int temp=0;
           int aa=this.a;
           int bb=this.b;
           if(aa < bb){
               temp = aa;
               aa = bb;
               bb = temp;
           }
           while(aa%bb != 0){
               temp = aa%bb;
               aa = bb;
               bb = temp;
           }
           System.out.println(this.a/bb+"/"+this.b/bb);
       }
   }
}
 class main{
   public int a;
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        fraction a1=new fraction(sc.nextInt(), sc.nextInt());
        fraction b=new fraction(sc.nextInt(), sc.nextInt());
        a1.print();
//        System.out.println(a1.a);
//        main main=new main();
//        System.out.println(main.a);
        b.print();
        a1.plus(b).print();
        a1.mul(b).plus(new fraction(5,6)).print();
        a1.print();
        b.print();
    }
}

1/3

猜你喜欢

转载自blog.csdn.net/skylibiao/article/details/81225085