2018-2019-20175302实验二《Java面向对象程序设计》实验报告
一、实验步骤及内容
内容一:
参考 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配合使用。
内容二:
参考 积极主动敲代码,使用JUnit学习Java (http://www.cnblogs.com/rocedu/p/4837092.html)
参考http://www.cnblogs.com/rocedu/p/6736847.html
以 TDD的方式研究学习StringBuffer,提交你的单元测试用例和测试通过的截图,截图要加上学号水印。
对代码
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.html
对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
用自己的学号%6进行取余运算,根据结果进行代码扩充:
0: 让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
1: 让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
2: 让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
3: 让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
4: 让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
5: 让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
(中间出现了一些对题目理解失误。。)
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