2018-2019-20175302实验二《Java面向对象程序设计》实验报告

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

posted @ 2019-04-21 19:58  Jerrold_Y  阅读(183)  评论(0编辑  收藏  举报