JAVA实验二-面向对象程序设计

提交点一

参考Intellj IDEA 简易教程-单元测试完成单元测试的学习

  • 在IDEA中建立名为MyUtil5317的project,并在其src文件夹中创建名为MyUtil5317的public类,并输入如下代码。
public class MyUtil5317{
public static String percentage2fivegrade(int grade){
if (grade < 60 && grade >= 0 )
return "不及格";
else if (grade < 70 && grade >= 0 )
return "及格";
else if (grade < 80 && grade >= 0 )
return "中等";
else if (grade < 90 && grade >= 0 )
return "良好";
else if (grade <= 100 && grade >= 0 )
return "优秀";
else
return "错误";
}
}
  • 在项目根目录下建立名为test的子目录,并将其设定为test的源代码存放目录,在目录中建立测试源代码,并按照Intellj IDEA 简易教程-单元测试的要求进行操作,其中代码如下:
import org.junit.Test;
import junit.framework.TestCase;
public class MyUtil5317Test extends TestCase {
@Test
public void testNormal() {
assertEquals("不及格", MyUtil5317.percentage2fivegrade(55));
assertEquals("及格", MyUtil5317.percentage2fivegrade(65));
assertEquals("中等", MyUtil5317.percentage2fivegrade(75));
assertEquals("良好", MyUtil5317.percentage2fivegrade(85));
assertEquals("优秀", MyUtil5317.percentage2fivegrade(95));
} @Test
public void testException() {
assertEquals("错误", MyUtil5317.percentage2fivegrade(-5));
assertEquals("错误", MyUtil5317.percentage2fivegrade(105));
} @Test
public void testBoundary() {
assertEquals("不及格", MyUtil5317.percentage2fivegrade(0));
assertEquals("及格", MyUtil5317.percentage2fivegrade(60));
assertEquals("中等", MyUtil5317.percentage2fivegrade(70));
assertEquals("良好", MyUtil5317.percentage2fivegrade(80));
assertEquals("优秀", MyUtil5317.percentage2fivegrade(90));
assertEquals("优秀", MyUtil5317.percentage2fivegrade(100));
}
}
  • 结果截图如下

提交点二

参考积极主动敲代码,使用JUnit学习Java,以 TDD的方式研究学习StringBuffer。

  • 按照上述博客和第一提交点完成代码的编辑
public class StringBufferDemo{
public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer12345");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tringBuffer12345"));
System.out.println("buffer = " + buffer.toString());
System.out.println(buffer.length());
}
}
  • 编辑测试用例如下
import org.junit.Test;
import junit.framework.TestCase; public class StringBufferDemotest extends TestCase {
StringBuffer jh = new StringBuffer("nxy and jh");
StringBuffer nxy = new StringBuffer("nxy and jh danthony nb");
public void testcharat() {
assertEquals('n', jh.charAt(0));
assertEquals('n', nxy.charAt(0));
}
public void testcapacity() {
assertEquals(26, jh.capacity());
assertEquals(38, nxy.capacity());
}
public void testlength() {
assertEquals(10, jh.length());
assertEquals(22, nxy.length());
}
public void testindexof() {
assertEquals(0, jh.indexOf("nxy"));
assertEquals(20,nxy.indexOf("nb"));
}
}
  • 提交的结果截图

提交点三

  • 实验题目:让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
  • 实验代码
abstract class Data {
abstract public void DisplayValue();
}
class Integer extends Data {
int value;
Integer() {
value=100;
}
public void DisplayValue(){
System.out.println (value);
}
}
class Short extends Data {
short value;
Short() {
value = 5317;
}
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 ShortFactory extends Factory {
public Data CreateDataObject(){
return new Short();
}
} class Document {
Data pd;
Document(Factory pf){
pd = pf.CreateDataObject();
}
public void DisplayData(){
pd.DisplayValue();
}
} public class MyDoc {
static Document d;
public static void main(String[] args) {
d = new Document(new ShortFactory());
d.DisplayData();
}
}
  • 结果运行截图

提交点四

  • 任务:以TDD的方式开发一个复数类Complex

    • 定义属性并生成getter,setter
    • double RealPart;
    • double ImagePart
  • 实验代码
public class Complex {
double R;
double I; Complex(double R, double I) {
this.R = R;
this.I = I;
} public static double getRealPart(double R) {
return R;
} public static double getImagePart(double I) {
return I;
} public Complex ComplexAdd(Complex c) {
return new Complex(R + c.R, I + c.I);
} public Complex ComplexSub(Complex c) {
return new Complex(R - c.R, I - c.I);
} public Complex ComplexMulti(Complex c) {
return new Complex(R * c.R - I * c.I, R * c.I + I * c.R);
} public Complex ComplexDiv(Complex c) {
return new Complex((R * c.I + I * c.R) / (c.I * c.I + c.R * c.R), (I * c.I + R * c.R) / (c.I * c.I + c.R * c.R));
} public String toString() {
String str = "";
if (I > 0)
str = R + "+" + I + "i";
if (I == 0)
str = R+"";
if (I < 0)
str = R + "" + I + "i";
return str;
}
public boolean equals(Object obj){
if (this == obj)
return true;
if(obj==null)
return false;
if(obj instanceof Complex){
Complex p = (Complex) obj;
if(p.R==this.R &&p.I==this.I )
return true;
}
return false;
}
}
  • 调试代码如下
import junit.framework.TestCase;
import org.junit.Test; public class ComplexTest extends TestCase {
Complex c1 = new Complex(1.0,2.0);
Complex c2 = new Complex(2.0,2.0);
Complex c3 = new Complex(2.0,0.0);
@Test
public void testGetRealPart() throws Exception {
assertEquals(-1.1, Complex.getRealPart(-1.1));
assertEquals(6.0, Complex.getRealPart(6.0));
assertEquals(0.0, Complex.getRealPart(0.0));
} @Test
public void testGetImagePart() throws Exception {
assertEquals(-1.1, Complex.getImagePart(-1.1));
assertEquals(6.0, Complex.getImagePart(6.0));
assertEquals(0.0, Complex.getImagePart(0.0));
} @Test
public void testComplexAdd() throws Exception {
assertEquals("3.0+4.0i", c1.ComplexAdd(c2).toString());
assertEquals("3.0+2.0i", c1.ComplexAdd(c3).toString());
assertEquals("4.0+2.0i", c2.ComplexAdd(c3).toString());
} @Test
public void testComplexSub() throws Exception {
assertEquals("-1.0", c1.ComplexSub(c2).toString());
assertEquals("-1.0+2.0i", c1.ComplexSub(c3).toString());
assertEquals("0.0+2.0i", c2.ComplexSub(c3).toString());
} @Test
public void testComplexMulti() throws Exception {
assertEquals("-2.0+6.0i", c1.ComplexMulti(c2).toString());
assertEquals("2.0+4.0i", c1.ComplexMulti(c3).toString());
assertEquals("4.0+4.0i", c2.ComplexMulti(c3).toString());
} @Test
public void testComplexComplexDiv() throws Exception {
assertEquals("0.75+0.75i", c1.ComplexDiv(c2).toString());
assertEquals("1.0+0.5i", c1.ComplexDiv(c3).toString());
assertEquals("1.0+1.0i", c2.ComplexDiv(c3).toString());
}
@Test
public void testEquals() throws Exception{
assertEquals(false,c1.equals(c2));
assertEquals(false,c1.equals(c3));
assertEquals(false,c2.equals(c3));
assertEquals(true,c1.equals(c1));
} }
  • 运行结果如下

提交点五

  • uml图如下

码云链接:https://gitee.com/BESTI-IS-JAVA-2018/exp2

20165317JAVA实验二-面向对象程序设计的更多相关文章

  1. 2018-2019-2 20175306实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2018-2019-2 20175306实验二面向对象程序设计<Java开发环境的熟悉>实验报告 面向对象程序设计-1 实验要求: 参考:> http://www.cnblogs.c ...

  2. 2018-2019-20175205实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2018-2019-20175205实验二面向对象程序设计<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>< ...

  3. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  4. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...

  5. #2019-2020-4 实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2019-2020-4 实验二面向对象程序设计<Java开发环境的熟悉>实验报告 一.面向对象程序设计-1 ①实验要求: 1.参考 http://www.cnblogs.com/roced ...

  6. 20165222《Java程序设计》——实验二 面向对象程序设计

    20165222<Java程序设计>——实验二 面向对象程序设计 提交点一.JUnit测试用例 知识点:这里就是了解测试代码的应用,测试代码的书写为:@Test assertEquals( ...

  7. 20155220java实验二 面向对象程序设计 实验报告

    一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 (1) 三种代码 伪代码 产 ...

  8. java的第二个实验——JAVA面向对象程序设计

    java的第二个实验——JAVA面向对象程序设计 北京电子科技学院 实     验    报     告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:20135213 成绩:      ...

  9. 20155323刘威良第二次实验 Java面向对象程序设计

    20155323刘威良第二次实验 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 ...

随机推荐

  1. 11款CSS3动画工具的开发

    本文展示了11个最好的和最令人惊异的CSS3动画工具,将为开发者是非常有帮助的.CSS3有设计师和开发人员之间的良好的声誉.它是在这里帮助他们创造惊人的结果. 有了这些动画工具,你可以创造一个轻松自由 ...

  2. 【iCore1S 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式

    实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  3. SwingWorker

    Swing应用程序员常见的错误是误用Swing事件调度线程(Event DispatchThread,EDT).他们要么从非UI线程访问UI组件:要么不考虑事件执行顺序:要么不使用独立任务线程而在ED ...

  4. Java如何计数替换字符串中第一次出现的子字符串?

    在Java编程中,如何拆分正则表达式和字符串? 以下示例演示如何使用Matcher类的replaceFirst()方法替换字符中指定的子字符串的首次出现. package com.yiibai; im ...

  5. Git -- 使用GitHub

    我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的.其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人 ...

  6. Ubuntu 14.04 安装 Blender,并放桌面

    1.打开Blender官网 2.在主页点击down按钮,跳转到下载页面 3.根据自己的操作系统,选择合适的版本,这里使用的是ubunut 64位,所以下载Linux 64bit,保存文件,一般保存到h ...

  7. iOS开发之--解决 swap file “*.swp”already exists!问题

    刚才我在vim导入第三方库的时候,突然发现我把podfile的名字打错了,然后我直接终止了进程,然后你懂得出错了,,E325......., 其实使用vim编辑文件实际上是先copy一份临时文件,病映 ...

  8. No suitable servers found (`serverselectiontryonce` set): [Failed connecting to '115.28.161.44:27017': Connection timed out] php mongodb 异常

    我 php mongodb 拓展使用的是  MongoDB driver 今天查询数据的时候 偶尔会提示, No suitable servers found (`serverselectiontry ...

  9. 使用jenkins pipeline,并发selenium测试 --- 你值得了解

    一.契机 相信很多使用selenium进行UI测试,再对接jenkins时,都是简单的在jenkins上将命令输入就完事了. 但是,相信你一定会遇到以下问题: 1.你需要同时跑不同文件或不同类的用例, ...

  10. 夺冠概率|2012年蓝桥杯B组题解析第九题-fishers

    (17')夺冠概率 足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能. 假设有甲.乙.丙.丁四个球队.根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁 甲 - 0. ...