zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    POJ2774 Long Long Message
    Lyndon Word相关
    后缀自动机(SAM)
    后缀数组(SA)
    [THUSC2016]补退选
    [HNOI2008]GT考试
    CF1080E Sonya and Matrix Beauty
    [JSOI2008]火星人
    两道FFT题目略解
    网络流概念+EdmondKarp算法+Dinic(Dinitz)
  • 原文地址:https://www.cnblogs.com/Jerrold-Y/p/10746594.html
Copyright © 2011-2022 走看看