编程语言
首页 > 编程语言> > 2018-2019-2 20175218 实验二《Java面向对象程序设计》实验报告

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

作者:互联网

2018-2019-2 20175218 实验一《Java面向对象程序设计》实验报告

一、面向对象程序设计-1

1、实验要求

  1. 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST
  2. 参考http://www.cnblogs.com/rocedu/p/6736847.html
  3. 提交最后三个测试用例都通过的截图,截图上要有画图加水印,输入自己的学号。

2、实验内容

  1. 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成单元测试的学习
  2. 提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图,截图上要有画图加水印,输入自己的学号
  3. 本提交点考查JUnit会不会使用,测试用例至少要包含正常情况,错误情况,边界情况的测试

3、实验代码

  1. 伪代码
百分制转五分制:
如果成绩小于60,转成“不及格”
如果成绩在60与70之间,转成“及格”
如果成绩在70与80之间,转成“中等”
如果成绩在80与90之间,转成“良好”
如果成绩在90与100之间,转成“优秀”
其他,转成“错误”
  1. 产品代码
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 "错误";
   }
}
  1. 测试代码
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 testException(){
        assertEquals("错误",MyUtil.percentage2fivegrade(-55));
        assertEquals("错误",MyUtil.percentage2fivegrade(105));
    }
    @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));
    }
}

4、运行截图

- 最开始运行

- 测试一般情况

- 异常情况(输入为负分或大于100的成绩)

- 增加对负分的判断

- 测试边界情况(0,60,70,80,90,100)

- 加入输入为100的情况

二、面向对象程序设计-2

1、实验要求

  1. 参考 积极主动敲代码,使用JUnit学习Java (http://www.cnblogs.com/rocedu/p/4837092.html)
  2. 参考http://www.cnblogs.com/rocedu/p/6736847.html
  3. 以 TDD的方式研究学习StringBuffer,提交你的单元测试用例和测试通过的截图,截图要加上学号水印。

2、实验内容

  1. 参考 积极主动敲代码,使用JUnit学习Java (http://www.cnblogs.com/rocedu/p/4837092.html),以 TDD的方式研究学习StringBuffer
  2. 提交你的单元测试用例和测试通过的截图,截图要加上学号水印
  3. 测试自己会不会写JUnit测试用例

3、安装JUnit

4、实验代码

  1. 产品代码
public class StringBufferDemo{
    StringBuffer buffer = new StringBuffer();
    public StringBufferDemo(StringBuffer buffer){
        this.buffer = buffer;
    }
    public Character charAt(int i){
        return buffer.charAt(i);
    }
    public int capacity(){
        return buffer.capacity();
    }
    public int length(){
        return buffer.length();
    }
    public int indexOf(String buf) {
        return buffer.indexOf(buf);
    }
}
  1. 测试代码
import junit.framework.TestCase;
import org.junit.Test;
public class StringBufferDemoTest extends TestCase {
    StringBuffer a = new StringBuffer("StringBuffer");
    StringBuffer b = new StringBuffer("StringBufferStringBuffer");
    StringBuffer c = new StringBuffer("StringBuffer tested by 175229");
    @Test
    public void testCharAt() throws Exception{
        assertEquals('S',a.charAt(0));
        assertEquals('g',b.charAt(5));
        assertEquals('t',c.charAt(16));
    }
    @Test
    public void testcapacity() throws Exception{
        assertEquals(28,a.capacity());
        assertEquals(40,b.capacity());
        assertEquals(45,c.capacity());


    }
    @Test
    public void testlength() throws Exception{
        assertEquals(12,a.length());
        assertEquals(24,b.length());
        assertEquals(29,c.length());
    }
    @Test
    public void testindexOf(){
        assertEquals(6,a.indexOf("Buff"));
        assertEquals(3,b.indexOf("ing"));
        assertEquals(23,c.indexOf("1752"));
    }
}
  1. 运行截图

三、面向对象程序设计-3

1、实验要求

  1. 参考http://www.cnblogs.com/rocedu/p/6736847.html
    2 对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
  2. 用自己的学号%6进行取余运算,根据结果进行代码扩充:
    • 0: 让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
    • 1: 让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
    • 2: 让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
    • 3: 让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
    • 4: 让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
    • 5: 让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

      2、实验内容

      根据我的学号20175218,对18进行%6运算得0,所以我需要做的是“让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印”。

      3、实验代码

  3. 产品代码
abstract class Data {
    abstract public void DisplayValue();
}
class Integer extends  Data {
    int value;
    Integer() {
        value=100;
    }
    public void DisplayValue(){
        System.out.println (value);
    }
}
class Byte extends Data {
    byte value;
    Byte(){
        value=127;
    }
    public void DisplayValue(){
        System.out.println(value);
    }
}
abstract class Factory {
    abstract public Data CreateDataObject();
}
class IntFactory extends Factory {
    public Data CreateDataObject(){
        return new Integer();
    }
}
class ByteFactory extends Factory {
    public Data CreateDataObject(){
        return new Byte();
    }
}
class Document {
    Data pd;
    Document(Factory pf){
        pd = pf.CreateDataObject();
    }
    public void DisplayData(){
        pd.DisplayValue();
    }
}
public class MyDoc {
    static Document d;
    static Document e;
    public static void main(String[] args) {
        e=new Document(new ByteFactory());
        e.DisplayData();
    }
}
  1. 运行截图

四、面向对象程序设计-4

1、实验要求

  1. 提交:单元测试代码和运行成功截图及码云上代码链接,截图要加上学号水印
  2. 参考http://www.cnblogs.com/rocedu/p/6736847.html
  3. 任务:以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)

标签:截图,Java,percentage2fivegrade,assertEquals,MyUtil,2019,测试代码,20175218,public
来源: https://www.cnblogs.com/cjy-123/p/10729094.html