1. 程式人生 > >2018-2019-2 20175328李欣穎實驗二《Java面向對象程序設計》實驗報告

2018-2019-2 20175328李欣穎實驗二《Java面向對象程序設計》實驗報告

sse urn aci 程序 tchar https 模式 stl nta

2018-2019-2 20175328李欣穎實驗二《Java面向對象程序設計》實驗報告

面向對象程序設計-1

用程序解決問題時,要會寫三種碼:

1、偽代碼

此處百分制轉五分制:
如果成績小於0,轉成“錯誤”
如果成績小於60,轉成“不及格”
如果成績在60與70之間,轉成“及格”
如果成績在70與80之間,轉成“中等”
如果成績在80與90之間,轉成“良好”
如果成績在90與100之間,轉成“優秀”
其他,轉成“錯誤”輸入代碼

2、產品代碼

public class MyUtil{
   public static String percentage2fivegrade(int grade){
       //如果成績小於0,轉成“錯誤”
       if ((grade < 0))
           return "錯誤";
       //如果成績小於60,轉成“不及格”
       else if (grade < 60)
           return "不及格";
       //如果成績在60與70之間,轉成“及格”
       else if (grade < 70)
           return "及格";
       //如果成績在70與80之間,轉成“中等”
       else if (grade < 80)
           return "中等";
       //如果成績在80與90之間,轉成“良好”
       else if (grade < 90)
           return "良好";
       //如果成績在90與100之間,轉成“優秀”
       else if (grade < 100)
           return "優秀";
       //如果成績大於100,轉成“錯誤”
       else
           return "錯誤";
   }
}

3、測試代碼

public class MyUtilTest {
    public static void main(String[] args) {
        //測試邊界情況
        if(MyUtil.percentage2fivegrade(0) != "不及格")
            System.out.println("test failed 1!");
        else if(MyUtil.percentage2fivegrade(60) != "及格")
            System.out.println("test failed 2!");
        else if(MyUtil.percentage2fivegrade(70) != "中等")
            System.out.println("test failed 3!");
        else if(MyUtil.percentage2fivegrade(80) != "良好")
            System.out.println("test failed 4!");
        else if(MyUtil.percentage2fivegrade(90) != "優秀")
            System.out.println("test failed 5!");
        else if(MyUtil.percentage2fivegrade(100) != "優秀")
            System.out.println("test failed 6!");
        else 
            System.out.println("test passed!"); 
    }
}

技術分享圖片

面向對象程序設計-2

以 TDD的方式研究學習StringBuffer

    import junit.framework.TestCase;
import org.junit.Test;

public class StringBufferDemoTest extends TestCase {
    StringBuffer a= new StringBuffer("StringBufferStr");
    StringBuffer b= new StringBuffer("StringBufferStringBufferStr");
    StringBuffer c= new StringBuffer("StringBufferStringBufferStringBufferStr");

    @Test
    public void testcharAt() throws Exception{
        assertEquals('t',a.charAt((1)));
        assertEquals('B',b.charAt(6));
        assertEquals('i',c.charAt(15));
    }
    @Test
    public void testcapacity() throws Exception{
        assertEquals(31,a.capacity());
        assertEquals(43,b.capacity());
        assertEquals(55,c.capacity());
    }
    @Test
    public void testlength() throws Exception{
        assertEquals(15,a.length());
        assertEquals(27,b.length());
        assertEquals(39,c.length());
    }
    @Test
    public void testindexOf() throws Exception{
        assertEquals(2,a.indexOf("ring"));
        assertEquals(6,b.indexOf("Bu"));
        assertEquals(9,c.indexOf("fer"));
    }
}

技術分享圖片

面向對象程序設計-3

對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式

讓系統支持Float類,並在MyDoc類中添加測試代碼表明添加正確

增加代碼1:

class Float extends Data {
    float value;
    Float() {
        value = 28;
    }

增加代碼2:

class FloatFactory extends Factory {
    public Data CreateDataObject() {
        return new Float();
    }
}

技術分享圖片

面向對象程序設計-4

以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)

技術分享圖片

代碼

面向對象程序設計-5

技術分享圖片

2018-2019-2 20175328李欣穎實驗二《Java面向對象程序設計》實驗報告