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##