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

面向对象程序设计-1##

用程序解决问题时,要会写三种码:##

1、伪代码###

此处百分制转五分制:
如果成绩小于0,转成“错误”
如果成绩小于60,转成“不及格”
如果成绩在60与70之间,转成“及格”
如果成绩在70与80之间,转成“中等”
如果成绩在80与90之间,转成“良好”
如果成绩在90与100之间,转成“优秀”
其他,转成“错误”输入代码

2、产品代码###

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

3、测试代码###

public class MyUtilTest {
public static void main(String[] args) {
//测试边界情况
if(MyUtil.percentage2fivegrade(0) != "不及格")
System.out.println("test failed 1!");
else if(MyUtil.percentage2fivegrade(60) != "及格")
System.out.println("test failed 2!");
else if(MyUtil.percentage2fivegrade(70) != "中等")
System.out.println("test failed 3!");
else if(MyUtil.percentage2fivegrade(80) != "良好")
System.out.println("test failed 4!");
else if(MyUtil.percentage2fivegrade(90) != "优秀")
System.out.println("test failed 5!");
else if(MyUtil.percentage2fivegrade(100) != "优秀")
System.out.println("test failed 6!");
else
System.out.println("test passed!");
}
}

面向对象程序设计-2##

以 TDD的方式研究学习StringBuffer###

    import junit.framework.TestCase;
import org.junit.Test; public class StringBufferDemoTest extends TestCase {
StringBuffer a= new StringBuffer("StringBufferStr");
StringBuffer b= new StringBuffer("StringBufferStringBufferStr");
StringBuffer c= new StringBuffer("StringBufferStringBufferStringBufferStr"); @Test
public void testcharAt() throws Exception{
assertEquals('t',a.charAt((1)));
assertEquals('B',b.charAt(6));
assertEquals('i',c.charAt(15));
}
@Test
public void testcapacity() throws Exception{
assertEquals(31,a.capacity());
assertEquals(43,b.capacity());
assertEquals(55,c.capacity());
}
@Test
public void testlength() throws Exception{
assertEquals(15,a.length());
assertEquals(27,b.length());
assertEquals(39,c.length());
}
@Test
public void testindexOf() throws Exception{
assertEquals(2,a.indexOf("ring"));
assertEquals(6,b.indexOf("Bu"));
assertEquals(9,c.indexOf("fer"));
}
}

面向对象程序设计-3##

对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式###

让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确###

增加代码1:####

class Float extends Data {
float value;
Float() {
value = 28;
}

增加代码2:####

class FloatFactory extends Factory {
public Data CreateDataObject() {
return new Float();
}
}

面向对象程序设计-4##

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

代码

面向对象程序设计-5##

最新文章

  1. arm,iptables: No chain/target/match by that name.
  2. 理解javascript this指向
  3. leetcode-【中等题】5. Longest Palindromic Substring
  4. 其实今天没有欲望..-MySQLi
  5. linux中Jetty的安装和配置
  6. angularjs工程流程走不通的原因以及使用angularjs流程注意点
  7. (三)spark集群DHCP IP变化后的处理
  8. JS运动学习笔记 -- 任意值的运动框架(高/宽度,背景颜色,文本内容,透明度等)
  9. Mac下修改默认的Java版本
  10. java下的第一个redis
  11. linux之SQL语句简明教程---Alias
  12. 编写可维护的JS 06
  13. 4.Java集合总结系列:Map接口及其实现
  14. java垃圾回收总结(2)
  15. [JAVA]为什么==和equals总让新手迷惑? 详解 关系操作符 == 和 equals
  16. Spring中实现多数据源事务管理
  17. Maven 包含资源文件
  18. jni&amp;&amp;jvmti&amp;&amp;JMC
  19. sublime text插件推荐
  20. 【Python】Java程序员学习Python(九)— 集合(list、tuple、range)和映射(dict)

热门文章

  1. pymysql操作mysql的脚本示例
  2. Android IPC机制—跨进程的观察者模式
  3. Masonry学习札记
  4. Unity中有限状态机的用法教程
  5. sublime text 3搭建python
  6. Java基于opencv实现图像数字识别(五)—投影法分割字符
  7. MySql最土的语法解释使用一。
  8. 一个简单springboot搭建
  9. Selenium3+python几种定位元素的方法
  10. c# 纯代码调用 webservice