20165301實驗二java面向對象程序設計html
百分制轉五分制: 若是成績小於60,轉成「不及格」 若是成績在60與70之間,轉成「及格」 若是成績在70與80之間,轉成「中等」 若是成績在80與90之間,轉成「良好」 若是成績在90與100之間,轉成「優秀」 其餘,轉成「錯誤」
public class MyUtil { public static String percentage2fivegrade(int grade) { if(grade<0) return "錯誤"; else if(grade<60) return "不及格"; else if(grade<70) return "及格"; else if(grade<80) return "中等"; else if(grade<90) return "良好"; else if(grade<=100) return "優秀"; else return "錯誤"; } }
import org.junit.Test; import junit.framework.TestCase; public class MyUtilTest extends TestCase { @Test public void testNormal() { assertEquals("不及格", MyUtil.percentage2fivegrade(55)); assertEquals("及格", MyUtil.percentage2fivegrade(65)); assertEquals("中等", MyUtil.percentage2fivegrade(75)); assertEquals("良好", MyUtil.percentage2fivegrade(85)); assertEquals("優秀", MyUtil.percentage2fivegrade(95)); } @Test public void testExceptions() { assertEquals("錯誤", MyUtil.percentage2fivegrade(105)); assertEquals("錯誤", MyUtil.percentage2fivegrade(-55)); } @Test public void testBoundary() { assertEquals("不及格", MyUtil.percentage2fivegrade(0)); assertEquals("及格", MyUtil.percentage2fivegrade(60)); assertEquals("中等", MyUtil.percentage2fivegrade(70)); assertEquals("良好", MyUtil.percentage2fivegrade(80)); assertEquals("優秀", MyUtil.percentage2fivegrade(90)); assertEquals("優秀", MyUtil.percentage2fivegrade(100)); } }
public class StringBufferDemo { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(20); buffer.append('S'); buffer.append("tringBuffer"); // System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); // System.out.println(buffer.indexOf("tring12345")); System.out.println("buffer = " + buffer.toString()); System.out.println(buffer.length()); } }
public class StringBufferDemoTest extends TestCase { StringBuffer a = new StringBuffer("StringBuffer");//測試12個字符(<=16) StringBuffer b = new StringBuffer("StringBufferStringBuffer");//測試24個字符(>16&&<=34) StringBuffer c = new StringBuffer("StringBufferStringBufferStringBuffer");//測試36個字符(>=34) @Test public void testcharAt() throws Exception{ assertEquals('S',a.charAt(0)); assertEquals('g',a.charAt(5)); assertEquals('r',a.charAt(11)); } @Test public void testcapacity() throws Exception{ assertEquals(28,a.capacity()); assertEquals(40,b.capacity()); assertEquals(52,c.capacity()); } @Test public void testlength() throws Exception{ assertEquals(12,a.length()); assertEquals(24,b.length()); assertEquals(36,c.length()); } @Test public void testindexOf() throws Exception{ assertEquals(0,a.indexOf("Str")); assertEquals(5,a.indexOf("gBu")); assertEquals(10,a.indexOf("er")); } }
abstract class Data { abstract public void DisplayValue(); } class Integer extends Data { int value; Integer() { value=100; } public void DisplayValue(){ System.out.println (value); } } class Short extends Data { short value; Short() { value = 5219; } public void DisplayValue(){ System.out.println (value); } } // Pattern Classes abstract class Factory { abstract public Data CreateDataObject(); } class IntFactory extends Factory { public Data CreateDataObject(){ return new Integer(); } } class ShortFactory extends Factory { public Data CreateDataObject(){ return new Short(); } } //Client classes class Document { Data pd; Document(Factory pf){ pd = pf.CreateDataObject(); } public void DisplayData(){ pd.DisplayValue(); } } //Test class public class MyDoc { static Document d; public static void main(String[] args) { d = new Document(new ShortFactory()); d.DisplayData(); } }
// 定義屬性並生成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)
public class Complex { // 定義屬性並生成getter,setter double RealPart; double ImagePart; // 定義構造函數 public Complex(){ RealPart = 0; ImagePart = 1; } public Complex(double R,double I){ ImagePart = I; RealPart = R; } //Override Object public boolean equals(Object obj){ if(this == obj) { return true; } if(!(obj instanceof Complex)) { return false; } Complex complex = (Complex) obj; if(complex.RealPart != ((Complex) obj).RealPart) { return false; } if(complex.ImagePart != ((Complex) obj).ImagePart) { return false; } return true; } public String toString() { String string = ""; if (ImagePart > 0) string = RealPart + "+" + ImagePart + "i"; if (ImagePart == 0) string = RealPart + ""; if (ImagePart < 0) string = RealPart + " " + ImagePart + "i"; return string; } // 定義公有方法:加減乘除 Complex ComplexAdd(Complex a) { return new Complex(RealPart+a.RealPart,ImagePart+a.ImagePart); } Complex ComplexSub(Complex a) { return new Complex(RealPart-a.RealPart,ImagePart-a.ImagePart); } Complex ComplexMulti(Complex a) { return new Complex(RealPart*a.RealPart,ImagePart*a.ImagePart); } Complex ComplexDiv(Complex a) { if(a.RealPart==0||a.ImagePart==0) { System.out.println("被減數不能爲0"); return new Complex(); } double d = Math.sqrt(a.RealPart*a.RealPart)+Math.sqrt(a.ImagePart*a.ImagePart); return new Complex((RealPart*a.RealPart+ImagePart*a.ImagePart)/d,Math.round((RealPart*a.ImagePart-ImagePart*a.RealPart)/d)); } }
import static org.junit.Assert.*; import org.junit.Test; import junit.framework.TestCase; public class ComplexTest extends TestCase { Complex complex = new Complex(1,1); @Test public void testAdd(){ assertEquals(new Complex(3.3,3.4), complex.ComplexAdd(new Complex(2.3,2.4))); } //測試加法 @Test public void testSub(){ assertEquals(new Complex(-5.3,-2.4), complex.ComplexSub(new Complex(6.3,3.4))); } //測試減法 @Test public void testMulti(){ assertEquals(new Complex(3.0,2.0), complex.ComplexMulti(new Complex(3.0,2.0))); } //測試乘法 @Test public void testDiv(){ assertEquals(new Complex(1.0,1.0), complex.ComplexDiv(new Complex(1.0,1.0))); assertEquals(new Complex(0.0,0.0), complex.ComplexDiv(new Complex(1.0,0.0))); //assertEquals(new Complex(0.0,0.0), complex.ComplexDiv(new Complex(3,4))); //邊緣測試 } @Test public void testequals(){ assertEquals(true, complex.equals(new Complex(1.0,1.0))); } //測試判斷相等 }
1.實驗要求java
使用WhiteStarUML對實驗二中的代碼進行建模,發類圖的截圖,加上學號水印。
參考(http://www.cnblogs.com/rocedu/p/6736847.html)設計模式
步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | 15 | 11.5% |
設計 | 20 | 15.3% |
代碼實現 | 50 | 38.4% |
測試 | 30 | 23.0% |
分析總結 | 15 | 11.5% |