2018-2019-20175302實驗二《Java面向對象程序設計》實驗報告

2018-2019-20175302實驗二《Java面向對象程序設計》實驗報告

1、實驗步驟及內容

內容一:

參考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST
參考http://www.cnblogs.com/rocedu/p/6736847.html
提交最後三個測試用例都經過的截圖,截圖上要有畫圖加水印,輸入本身的學號。

單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。對於單元測試中單元的含義,通常來講,要根據實際狀況去斷定其具體含義,如Java裏單元指一個類。要進行單元測試首先要在IDEA中安裝JUnit插件,配置Junit.jar包文件,配置完成後使用JUnit測試代碼運行狀況。
優勢:JUnit Test測試能夠測試多種狀況,包括容易出錯的邊界狀況,看程序是否按照本身設計的初衷來運行。
缺點:編譯代碼須要時間,沒法看出代碼中的具體錯誤,可與Debug配合使用。html

內容二:

參考 積極主動敲代碼,使用JUnit學習Java (http://www.cnblogs.com/rocedu/p/4837092.html)
參考http://www.cnblogs.com/rocedu/p/6736847.html
以 TDD的方式研究學習StringBuffer,提交你的單元測試用例和測試經過的截圖,截圖要加上學號水印。
對代碼java

public class exp2_2 {
    public static StringBuffer buffer =new StringBuffer();
    public static void percentage2fivegrade(){
        buffer.append('S');
        buffer.append("tringBuffer");
        buffer.append(1);
    }
}

進行測試:
設計模式

內容三:

參考http://www.cnblogs.com/rocedu/p/6736847.htmlapp

對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式
用本身的學號%6進行取餘運算,根據結果進行代碼擴充:
0: 讓系統支持Byte類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
1: 讓系統支持Short類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
2: 讓系統支持Boolean類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
3: 讓系統支持Long類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
4: 讓系統支持Float類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
5: 讓系統支持Double類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

(中間出現了一些對題目理解失誤。。)ide

public class exp2_3 {
    public static void main(String []args) {
        int p=20175302;
        Int aInt =new Int();
        Byte aByte = new Byte();
        Short aShort = new Short();
        Boolean aBoolean = new Boolean();
        Long aLong = new Long();
        Float aFloat = new Float();
        Double aDouble = new Double();
        aInt.PrintValue(p);
        aByte.PrintValue(p);
        aShort.PrintValue(p);
        aBoolean.PrintValue(p);
        aLong.PrintValue(p);
        aFloat.PrintValue(p);
        aDouble.PrintValue(p);
    }
}

內容四

提交:單元測試代碼和運行成功截圖及碼雲上代碼連接,截圖要加上學號水印
參考http://www.cnblogs.com/rocedu/p/6736847.html
任務:以TDD的方式開發一個複數類Complex,要求以下:
// 定義屬性並生成getter,setter double RealPart; double ImagePart;
// 定義構造函數 public Complex() public Complex(double R,double I)
//Override Object public boolean equals(Object obj) public String toString()
// 定義公有方法:加減乘除 Complex ComplexAdd(Complex a) Complex ComplexSub(Complex a) Complex ComplexMulti(Complex a) Complex ComplexDiv(Complex a)函數

package exp2.Complex;
/**
 * @author ASUS
 */
public class complex {
    // 定義屬性並生成getter,setter
    double realPart;
    double imagePart;
    void setRealPart(double r){
        realPart =r;
    }
    void setImagePart(double i){
        imagePart =i;
    }
    double getRealPart(complex a){
        return a.realPart;
    }
    double getImagePart(complex a){
        return a.imagePart;
    }
    // 定義構造函數
    public complex(double r, double i){
        realPart =r;
        imagePart =i;
    }

    //Override Object

    @Override
    public String toString(){
        String result = new String();
        if (imagePart >0) {
            result = realPart +"+"+ imagePart +"i";
        }
        if (imagePart ==0) {
            result = realPart +"";
        }
        if (imagePart <0) {
            result = realPart +"-"+ imagePart *(-1)+"i";
        }
        return result;
    }


    public complex complexAdd(complex a){
        return new complex(realPart +a.realPart, imagePart +a.imagePart);
    }

    public complex complexSub(complex a){
        return new complex(realPart -a.realPart, imagePart -a.imagePart);
    }

    public complex complexMulti(complex a){
        return new complex(realPart *a.realPart - imagePart *a.imagePart, realPart *a.imagePart + imagePart *a.realPart);
    }

    public complex complexDiv(complex a){
        double d = Math.sqrt(a.realPart * a.realPart) + Math.sqrt(a.imagePart * a.imagePart);
        return new complex((realPart *a.realPart + imagePart *a.imagePart)/d,(imagePart *a.realPart - realPart *a.imagePart)/d);
    }
}

測試代碼:單元測試

package exp2.Complex;

import junit.framework.TestCase;

public class ComplexDemoTest extends TestCase {
    complex b = new complex(2,6);
    complex c = new complex(1,-3);
    public void testComplexAdd(){
        assertEquals("3.0+3.0i",b.complexAdd(c)+"");
    }
    public void testComplexSub(){
        assertEquals("1.0+9.0i",b.complexSub(c)+"");
    }
    public void testComplexMulti(){
        assertEquals("20.0",b.complexMulti(c)+"");
    }
    public void testComplexDiv(){
        assertEquals("-4.0+3.0i",b.complexDiv(c)+"");
    }
}


測試成功學習

內容五:

使用WhiteStarUML對實驗二中的代碼進行建模,發類圖的截圖,加上學號水印。
參考http://www.cnblogs.com/rocedu/p/6736847.html
測試

相關文章
相關標籤/搜索