20165337第七周实验报告《Java面向对象程序设计》
实验报告封面

实验内容及步骤
实验一、实现百分制成绩转成“优、良、中、及格、不及格”五级制成绩的功能
代码
public class MyUtil{
public static String percentage2fivegrade(int grade) {
if (grade < 0 || grade >100)
return "错误";
//如果成绩小于60,转成“不及格”
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 "优秀";
//其他,转成“错误”
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(105));
assertEquals("错误",MyUtil.percentage2fivegrade(-55));
}
@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
代码
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("tring12345"));
//System.out.println("buffer = " + buffer.toString());
//System.out.println(buffer.length());
}
}
测试代码
import junit.framework.TestCase;
import org.junit.Test;
public class StringBufferDemoTest extends TestCase {
StringBuffer a = new StringBuffer("StringBuffer");
//测试12个字符
StringBuffer b = new StringBuffer("StringBufferStringBuffer");
//测试24个字符
StringBuffer c = new StringBuffer("StringBufferStringBufferStringBuffer");
//测试36个字符
StringBuffer d = new StringBuffer("StringBufferStringBufferStringBufferStr");
//测试39个字符
@Test
public void testcharAt() {
assertEquals('S',a.charAt(0));
assertEquals('e',b.charAt(10));
assertEquals('f',c.charAt(20));
assertEquals('B',d.charAt(30));
}
@Test
public void testcapacity() {
assertEquals(28,a.capacity());
assertEquals(40,b.capacity());
assertEquals(52,c.capacity());
assertEquals(55,d.capacity());
}
@Test
public void testindexOf() {
assertEquals(0,a.indexOf("Str"));
assertEquals(3,b.indexOf("ing"));
assertEquals(6,c.indexOf("Buffer"));
assertEquals(8,d.indexOf("ff"));
}
@Test
public void testlength() {
assertEquals(12,a.length());
assertEquals(24,b.length());
assertEquals(36,c.length());
assertEquals(39,d.length());
}
}
实验截图


实验三、对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
代码
// Server Classes
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 = 5337;
}
public void DisplayValue(){
System.out.println (value);
}
}
// Pattern Classes
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();
}
}
//Client classes
class Document {
Data pd;
Document(Factory pf){
pd = pf.CreateDataObject();
}
public void DisplayData(){
pd.DisplayValue();
}
}
//Test class
public class MyDoc {
static Document d;
public static void main(String[] args) {
d = new Document(new ShortFactory());
d.DisplayData();
}
}
实验四、以TDD的方法开发一个复数类Complex
代码
public class Complex {
public double getRealPart() {
return RealPart;
}
public double getImagePart() {
return ImagePart;
}
double RealPart;
double ImagePart;
public void setRealPart(double realPart) {
RealPart = realPart;
}
public void setImagePart(double imagePart) {
ImagePart = imagePart;
}
public Complex(){}
public Complex(double R,double I){
this.ImagePart = I;
this.RealPart = R;
}
@Override
public String toString() {
return "Complex{" +
"RealPart=" + RealPart +
", ImagePart=" + ImagePart +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Complex complex = (Complex) o;
return Double.compare(complex.getRealPart(), getRealPart()) == 0 &&
Double.compare(complex.getImagePart(), getImagePart()) == 0;
}
Complex ComplexAdd(Complex a) {
return new Complex(this.RealPart + a.RealPart,this.ImagePart + a.ImagePart);
}
Complex ComplexSub(Complex a){
return new Complex(this.RealPart - a.RealPart,this.ImagePart - a.ImagePart);
}
Complex ComplexMulti(Complex a){
return new Complex(this.RealPart*a.RealPart-this.ImagePart*a.ImagePart,
this.ImagePart*a.RealPart+this.RealPart*a.ImagePart);
}
Complex ComplexDiv(Complex a){
double scale = a.getRealPart()*a.getRealPart() + a.getImagePart()*a.getImagePart();
Complex b = new Complex(a.getRealPart() / scale, - a.getImagePart() / scale);
return this.ComplexMulti(b);
}
}
测试代码
import junit.framework.TestCase;
import org.junit.Test;
public class ComplexTest extends TestCase {
Complex a = new Complex(5.0, 6.0);
Complex b = new Complex(-3.0, 4.0);
@Test
public void testgetRealPart() {
assertEquals(5.0,a.getRealPart());
assertEquals(-3.0,b.getRealPart());
}
@Test
public void testgetImagePart() {
assertEquals(6.0,a.getImagePart());
assertEquals(4.0,b.getImagePart());
}
@Test
public void testtoString() {
assertEquals("Complex{RealPart=5.0, ImagePart=6.0}",a.toString());
assertEquals("Complex{RealPart=-3.0, ImagePart=4.0}",b.toString());
}
@Test
public void testequals() {
assertEquals(false,a.equals(b));
Complex c = new Complex(a.getRealPart(),a.getImagePart());
assertEquals(true,a.equals(c));
}
@Test
public void testComplexAdd() {
assertEquals(2.0,a.ComplexAdd(b).getRealPart());
assertEquals(10.0,a.ComplexAdd(b).getImagePart());
}
@Test
public void testComplexSub() {
assertEquals(8.0,a.ComplexSub(b).getRealPart());
assertEquals(2.0,a.ComplexSub(b).getImagePart());
}
@Test
public void testComplexMulti() {
assertEquals(-39.0,a.ComplexMulti(b).getRealPart());
assertEquals(2.0,a.ComplexMulti(b).getImagePart());
}
@Test
public void testComplexDiv() {
assertEquals(0.36,a.ComplexDiv(b).getRealPart());
assertEquals(-1.52,a.ComplexDiv(b).getImagePart());
}
}
实验截图



实验五、代码建模



实验PSP
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 20分钟 | 4.7% |
| 设计 | 20分钟 | 4.7% |
| 代码实现 | 200分钟 | 47% |
| 测试 | 80分钟 | 19% |
| 分析总结 | 100分钟 | 23.8% |
遇到的问题
在使用IDEA的过程中,我的Junit安装不了,后来问同学得知可以从电脑找到后再导入。但是我的APPdata文件夹找不到,后来发现是被系统隐藏了,在使用管理员权限显示后就好了。
20165337第七周实验报告《Java面向对象程序设计》的更多相关文章
- Java第二次实验报告——Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程名称:java程序设计实验 班级:1352 姓名:洪韶武 学号:20135219 成绩: ...
- 20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计
20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...
- 实验二 Java面向对象程序设计实验报告
实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...
- 20145326《Java程序设计》实验二Java面向对象程序设计实验报告
20145326<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20155217 实验二 Java面向对象程序设计 实验报告
20155217 实验二 Java面向对象程序设计 实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模 ...
- 20162305 实验二 Java面向对象程序设计 实验报告
20162305 实验二 Java面向对象程序设计 实验报告 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告
20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...
随机推荐
- 微信小程序:图片预览
wxml页面: <image src='{{UPLOAD_IMAGES_URL}}{{vv.img_s}}' data-src="{{vv.img}}" bindtap=&q ...
- thinkphp 攻略
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难, ...
- java将long数据转为int类型的方法
二.调用intValue()方法 [java] long ll = 300000; int ii= new Long(ll).intValue(); 三.先把long转换成字符串String,然后在转 ...
- Java集合、Iterator迭代器和增强for循环整理
集合 集合,集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据 1.1 ArrayList集合存储元素 pac ...
- shop++改造之Filter类
基于shop++源码进行商城改造.本来想大展手脚,结果一入手.发觉瞬间淹没了我的才华,sql语句也得贼溜没啥用. 不得不说这个商城源码价值很高,封装的很精屁. 下面是我第一天入手的坑. 数据库建好了表 ...
- HDU 1041(01展开 大数)
题意是将 1 展开成 01 ,将 0 展开成 10 ,问这样展开 n 次后序列中有多少对 0. 手写发现:0,1,1,3,5,11 ... 即 a[ i ] = a[ i -1 ] + a[ i - ...
- Docker-02 无人值守安装 docker
#!/bin/bash # # 无人值守安装 docker # # # .关闭SELinux # setenforce sed -i 's/SELINUX=enforcinf/SELINUX=disa ...
- java的TCP和UDP编程
TCP 客户端: import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter ...
- impala系列: 同步Hive元数据和收集统计信息
---====================-- Impala 获取hive 的 metadata ---====================Impala 通常和Hive共用同一个metadat ...
- 2.2 if语句
if判断语句 <1>if判断语句介绍 if语句是用来进行判断的,其使用格式如下: if 要判断的条件: 条件成立时,要做的事情 demo1:(demo的中文意思:演示.案例) age = ...