2018-2019-2 20175303 实验二 《Java开发环境的熟悉》实验报告

一、实验准备

1.了解掌握实验所要用到的三种代码

伪代码

产品代码

测试代码

2.IDEA中配置单元测试工具JUnit

进入IDEA,点击File->Setting

选择Plugins,点击Marketplace查找junit

选择JUnitGenerator V2.0,点击Install

二、实验内容

任务一

对MyUtil类进行测试,测试用例至少要包含正常情况,错误情况,边界情况的测试,提交都通过的截图,截图上要有画图加水印,输入自己的学号。

任务二:

以TDD的方式研究学习StringBuffer,提交单元测试用例和测试通过的截图,截图要加上学号水印。

任务三:

对设计模式示例进行扩充,体会OCP原则和DIP原则的应用。

用自己的学号%6进行取余运算,根据结果进行代码扩充:

0: 让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

1: 让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

2: 让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

3: 让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

4: 让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

5: 让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

我学号为11,故任务:让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印。

任务四:

以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)

任务五:

使用WhiteStarUML对实验二中的代码进行建模,发类图的截图,加上学号水印

类图中只少两个类

类,继承,接口实现,组合在UML中表达

三、实验代码及截图

任务一

伪代码:

百分制转五分制:

如果成绩小于60,转成“不及格”

如果成绩在60与70之间,转成“及格”

如果成绩在70与80之间,转成“中等”

如果成绩在80与90之间,转成“良好”

如果成绩在90与100之间,转成“优秀”

其他,转成“错误”

待测试代码:

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 "错误";

}

}

测试代码:

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 testExceptions() {

assertEquals("错误",MyUtil.percentage2fivegrade(-80));

assertEquals("错误",MyUtil.percentage2fivegrade(125));

}

@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));

}

}

任务二

以TDD的方式研究学习StringBuffer:

1.TDD的测试步骤如下:

•明确当前要完成的功能,记录成一个测试列表

•快速完成编写针对此功能的测试用例

•测试代码编译不通过(没产品代码呢)

•编写产品代码

•测试通过

•对代码进行重构,并保证测试通过(重构下次实验练习)

•循环完成所有功能的开发

老师给出的代码:

public class StringBufferDemo{

public static void main(String [] args){

StringBuffer buffer = new StringBuffer();

buffer.append('S');

buffer.append("tringBuffer");

System.out.println(buffer.charAt(1));

System.out.println(buffer.capacity());

System.out.println(buffer.indexOf("tring"));

System.out.println("buffer = " + buffer.toString());

}

}

测试代码

import org.junit.Assert;

import org.junit.Rule;

import org.junit.Test;

import org.junit.rules.ExpectedException;

public class StringBufferDemoTest {

StringBuffer str12 = new StringBuffer("hereare12chr");

StringBuffer str24 = new StringBuffer("Here are 24 characters!!");

StringBuffer str36 = new StringBuffer("Surprise!!! Here are 36 characters!!");

@Test

public void testcharAt(){

Assert.assertEquals('h', str12.charAt(0));

Assert.assertEquals('a', str24.charAt(5));

}

@Rule

public ExpectedException thrown= ExpectedException.none();

@Test

public void testcharAtException(){

thrown.expect(StringIndexOutOfBoundsException.class);

str36.charAt(40);

}

@Test

public void testlength(){

Assert.assertEquals(12, str12.length());

Assert.assertEquals(24, str24.length());

Assert.assertEquals(36, str36.length());

}

@Test

public void testcapacity(){

Assert.assertEquals(28, str12.capacity());

Assert.assertEquals(40, str24.capacity());

Assert.assertEquals(52, str36.capacity());

Assert.assertEquals(82,str24.append("here are 22 characters").capacity());

}

@Test

public void testindex(){

Assert.assertEquals(4, str12.indexOf("a"));

Assert.assertEquals(9, str24.indexOf("24"));

Assert.assertEquals(-1, str36.indexOf("?"));

}

}

任务三

让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

任务四

以TDD的方式开发一个复数类Complex

在Complex类中设置构造方法public myComplex(double R,double I),设置实部与虚部

实现加法myComplex ComplexAdd(myComplex a)

实现减法myComplex ComplexSub(myComplex a)

实现乘法myComplex ComplexMulti(myComplex a)

实现除法myComplex ComplexDiv(myComplex a)

重写equals()方法和toString()方法

待测试代码:

public class myComplex {

// 定义属性并生成getter,setter

double RealPart;

double ImagePart;

// 定义构造函数

myComplex(double R,double I){

RealPart=R;

ImagePart=I;

}

// 定义公有方法:加减乘除

myComplex ComplexAdd(myComplex a){

return new myComplex(RealPart+a.RealPart,ImagePart+a.ImagePart);

}

myComplex ComplexSub(myComplex a){

return new myComplex(RealPart-a.RealPart,ImagePart-a.ImagePart);

}

myComplex ComplexMulti(myComplex a){

return new myComplex(RealPart*a.RealPart-ImagePart*a.ImagePart,RealPart*a.ImagePart+a.RealPart*ImagePart);

}

myComplex ComplexDiv(myComplex a){

return new myComplex((RealPart*a.RealPart+ImagePart*a.ImagePart)/(a.RealPart*a.RealPart+a.ImagePart*a.ImagePart),(-RealPart*a.ImagePart+a.RealPart*ImagePart)/(a.RealPart*a.RealPart+a.ImagePart*a.ImagePart));

}

//Override Object

public boolean equals(Object obj){

if(obj==null)

return false;

else {

myComplex m = (myComplex) obj;

if (m.RealPart == RealPart && m.ImagePart == ImagePart)

return true;

else return false;

}

}

public String toString(){

String output;

if(ImagePart==0){

return output=RealPart+"";

}

else if(RealPart==0 && ImagePart!=0){

return output=ImagePart+"i";

}

else if(ImagePart>0) {

return output=RealPart+"+"+ImagePart+"i";

}

else return output=RealPart+""+ImagePart+"i";

}

}

测试代码:

import junit.framework.TestCase;

import org.junit.Test;

public class myComplexTest extends TestCase {

myComplex a = new myComplex(6,2);

myComplex b = new myComplex(5,1);

myComplex c = new myComplex(4,-2);

myComplex d = new myComplex(3,1);

myComplex e = new myComplex(6,2);

//myComplex e = new myComplex(2,4);

@Test

public void testEquals() {

assertEquals(false,a.equals(b));

assertEquals(true,a.equals(e));

}

@Test

public void testComplexAdd() throws Exception {

assertEquals("11.0+3.0i",b.ComplexAdd(a).toString());

assertEquals("10.0",a.ComplexAdd(c).toString());

assertEquals("9.0-1.0i",b.ComplexAdd(c).toString());

}

@Test

public void testComplexSub() {

assertEquals("-1.0-1.0i",b.ComplexSub(a).toString());

assertEquals("2.0+4.0i",a.ComplexSub(c).toString());

assertEquals("2.0",b.ComplexSub(d).toString());

}

@Test

public void testComplexMulti() {

assertEquals("28.0+16.0i",b.ComplexMulti(a).toString());

assertEquals("28.0-4.0i",a.ComplexMulti(c).toString());

assertEquals("14.0+8.0i",b.ComplexMulti(d).toString());

}

@Test

public void testComplexDiv() {

assertEquals("2.0",a.ComplexDiv(d).toString());

assertEquals("1.0+1.0i",a.ComplexDiv(c).toString());

}

}

华软java综合实验二_2018-2019-2 20175311 实验二 《Java开发环境的熟悉》实验报告相关推荐

  1. 20175208 实验一 Java开发环境的熟悉

    20175208 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张家华  学号:20175208 指导教师:娄嘉鹏 实验日期:2019年4月2日 实 ...

  2. 2018-2019-2 20175227张雪莹 《Java程序设计》 实验一 Java开发环境的熟悉

    2018-2019-2 20175227张雪莹<Java程序设计> 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:2017 ...

  3. 20175316 盛茂淞 实验一 Java开发环境的熟悉

    20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

  4. 实验二 数据选择器的设计与vivado集成开发环境【Verilog】

    实验二 数据选择器的设计与vivado集成开发环境[Verilog] 前言 实验二 数据选择器的设计与vivado集成开发环境 一.实验目的 二.实验环境 三.实验任务 四.实验原理 五.实验步骤 六 ...

  5. 2017-2018-1 20155301 20155307 20155339 《信息安全系统设计基础》 实验一 开发环境的熟悉...

    2017-2018-1 20155301 20155307 20155339 <信息安全系统设计基础> 实验一 开发环境的熟悉 实验一 交叉编译环境 实验步骤 安装老师提供的softwar ...

  6. linux eclipse java_实验一 Java开发环境的熟悉(Linux + Eclipse)

    学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...

  7. 20155229 实验一《Java开发环境的熟悉》实验报告

    20155229 实验一<Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Idea 编辑.编译.运行.调试Java程序. 实验步骤 (一) ...

  8. 2018-2019-2 20175311 实验一《Java开发环境的熟悉》实验报告

    2018-2019-20175311实验一<Java开发环境的熟悉>实验报告 一.实验内容及步骤 (一):使用简单的JDK编译.运行java程序 题目一比较简单也比较基础,主要就是考查我们 ...

  9. 2018-2019-2 20175308实验一 《Java开发环境的熟悉》实验报告

    2018-2019-2-20175308 实验一 <Java开发环境的熟悉>实验报告 一.实验内容及步骤 (一)使用JDk编译.运行简单的Java程序 输入cd Code命令进入Code目 ...

最新文章

  1. Java培训深度学习都要学什么
  2. 2021 OceanBase 数据库大赛来了!
  3. 在同一台电脑上同时使用IE6和IE7
  4. IsPostBack原理
  5. VTK:Points之ExtractSurfaceDemo
  6. 追加内容到文件末尾的几种常用方法
  7. 智能用户增长神器QuickAudience开启公共云公测,助力企业业务增长
  8. 我的这套VuePress主题你熟悉吧
  9. Java 泛型中的PECS原则
  10. 编译原理(龙书):第七章部分题目参考答案
  11. 3d模型多怎么优化_近似模型之响应面建模
  12. php 7中文手册pdf版,手册的格式 - PHP 7 中文文档
  13. Python最新官方教程中文版,火了!!
  14. MCS-51单片机的外部引脚及片外总线
  15. excel如何把顺序倒过来_excel表格怎么把字倒过来
  16. oracle数据库hiredate,Oracle数据库学习三
  17. python arp断网攻击_局域网arp断网攻击
  18. safari查看html代码,iPhone不越狱safari查看网页源代码方法
  19. 依米花播放器仿绚丽彩虹播放器程序
  20. Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作

热门文章

  1. mac 远程计算机,Mac系统如何远程桌面到Windows系统
  2. 华为 PIM-SM RP选举与切换
  3. 吉林大学 超星慕课 高级语言程序设计 实验06 结构体(2022级)
  4. Python 下载文件获取文件名request.get(...,stream=True)
  5. 关于大学的50件事,活个不让自己后悔的大学四年。(摘自MIT blog entry)
  6. hr_assignment_api
  7. Altair Activate 2021.1 x64
  8. [VS_C#实战案例](1)批量提取文件夹内txt文件的指定字符串生成excel表格
  9. PointPainting 复现
  10. 课程发布-添加课程信息