面向對象程序設計——Java語言第一周作業:設計一個表示分數的類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。

 

你寫的類要和以下的代碼放在一起,並請勿修改這個代碼:

 

import java.util.Scanner;

 

public class Main {

 

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

}

 

}

 

注意,你的類的定義應該這樣開始:

 

class Fraction {

 

也就是說,在你的類的class前面不要有public。

 

輸入格式:

程序運行時會得到四個數字,分別構成兩個分數,依次是分子和分母。

 

輸出格式:

輸出一些算式。這些輸入和輸出都是由Main類的代碼完成的,你的代碼不要做輸入和輸出。

 

輸入樣例:

2 4 1 3

 

輸出樣例:

1/2

1/3

5/6

1

1/2

1/3


代碼如下:


Fraction類:

package test1;

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

}

Main類(題目中已給出):

package test1;
import java.util.Scanner;
public class Main {

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

    }

    }

運行結果:

2 4 1 3
1/2
1/3
5/6
1
1/2
1/3

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM