LAB3 整数相加

//yuec2 Yue Cheng
package lab3;

public class Fraction {
    int numerator;
    int denominator;
    //obeject with 1
    Fraction() {
        numerator = 1;
        denominator = 1;
    }
    //object with passing value
    Fraction(int numerator, int denominator) {
        this.numerator=numerator;
        this.denominator = denominator;
    }
    double toDecimal() {
        return (float)numerator / denominator;
    }
    //refer to the former object
    public String toString() {
        return this.numerator + "/" + this.denominator;
    }

    //findGCD medthod
    int findGCD(int n , int d) {
        //base cases
        if (n == 0) return 1;
        if (d == 0) return n;

        else return findGCD(d , n % d);
    }



    Fraction add(Fraction f) {
        int a = f.numerator * this.denominator;
        int b = f.denominator * this.numerator;
        int num = a + b;
        int den = f.denominator * this.denominator;

        int gcd = findGCD(num , den);
        num /= gcd;
        den /= gcd;

        this.numerator = num;
        this.denominator = den;
        //if a newly-defined return type, return a new object
        Fraction f3 = new Fraction(num, den);
        return f3;
    }        
}
//yuec2 Yue Cheng
package lab3;

//parent class
public class MixedFraction extends Fraction{
    int naturalNumber;
    
    MixedFraction(int naturalNumber, int numerator, int denominator) {
        //from father class
        super(numerator, denominator);
        this.naturalNumber = naturalNumber;
    }
    
    public String toString() {
        return this.naturalNumber + " " + this.numerator + "/" + this.denominator;
    }
    
    double toDecimal() {
        double number = (double) naturalNumber + super.toDecimal();
        return number;
    }
    
    Fraction toFraction() {
        int num = naturalNumber*denominator + numerator;
        int den = denominator;
        Fraction f = new Fraction(num, den);
        return f;
    }
    
    Fraction add(MixedFraction mf) {
        Fraction f1 = this.toFraction();
        Fraction f2 = mf.toFraction();
        Fraction f3 = f1.add(f2);
        return f3;
    }
    
    
}

 【知识】

主类中用constructor建对象,子类中用关键字。

【过程分析】

开始觉得自己能行,一次告一点地写到了7:00,后来一run发现写完的全是错,而且还有半个函数没写,UX小姐姐帮我写完的。不然那要跪,真的很危险。

【原因】

理解题意都要好长的时间,但是还是要基本理解的。一些知识点第一次学,不熟练。而且改bug说真的很花时间,有的还要整个重写。

【措施】

6:00-6:10理解题意,最多到6:15

6:10-6:20写姓名搭好框架和最简单的内容,最多到6:25

6:20-7:00抱大腿,一直到跑通所有case,最多到7:05。

7:10起码提交一次,7:10-7:20检查。

不要自己写,自己写就是个坑。但也不可能直接让助教敲是不,所以自己先把method SIG和最容易的函数写出来,然后说我不会,能不能be specific给我敲。如果不给就换一个人问。

实在不行就复制同学的,保命要紧。

【总结】

反正就是逐个大腿抱过去吧…… 

猜你喜欢

转载自www.cnblogs.com/immiao0319/p/9749208.html