实验报告

课程:

Java程序设计

班级:

1353

姓名:

苏正生

学号:

2015333

成绩:

指导教师:

娄家鹏

实验日期:

2015.5.6

实验密级:

预习程度:

实验时间:

3:20~5:00

仪器组次:

必修/选修:

必修

实验序号:

实验二

实验名称:

Java面向对象程序设计

实验目的:

1.掌握单元测试和TDD

2. 理解并掌握面向对象三要素:封装、继承、多态

3. 初步掌握UML建模

4. 熟悉S.O.L.I.D原则

5. 了解设计模式

 

实验仪器:

 

名称

型号

数量

笔记本电脑

Msi GS70

 

 

1

                     

实验内容:

一、     单元测试和TDD

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

}

}

源代码2:

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

}

}

二、     面向对象三要素

(1)抽象(2)封装、继承与多态

实验记录:

实验代码1:

public class AnimalTest {

public static void main(String[]args){

Dog d=new Dog();

d.setColor("Yellow");

getInfo(d);

Cat c=new Cat();

c.setColor("Black");

getInfo(c);

}

public static void getInfo(Dog d){

System.out.println(d.toString());

}

public static void getInfo(Cat c){

System.out.println(c.toString());

}

}

实验代码2:

package dog;

public class DogTest {

public static void main(String[] args){

Dog g=new Dog();

g.setColor("Yellow");

getInfo();

}

public static void getInfo(Dog d){

System.out.println(d.toString());

}

}

实验代码3:

public abstract class Animal {

private String color;

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

public abstract String shout();

}

public class Dog extends Animal{

public String shout(){

return "汪汪";

}

public String toString(){

return "The Dog's color is " + this.getColor() +", and it shouts "+ this.shout() + "!";

}

}

public class Cat extends Animal{

public String shout(){

return "喵喵";

}

public String toString(){

return "The Cat's color is " + this.getColor() +", and it shouts "+ this.shout() + "!";

}

}

三、设计模式初步

设计模式(design pattern)提供一个用于细化软件系统的子系统或组件,或它们之间的关系图,它描述通信组件的公共再现结构,通信组件可以解决特定语境中的一个设计问题。

实验过程:

实验代码:

// 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);} }
// Pattern Classes
abstract class Factory { abstract public Data CreateDataObject();
}
class IntFactory extends Factory { public Data CreateDataObject(){return new Integer(); }
}
//Client classes
class Document {    Data pd; Document(Factory pf){ pd = pf.CreateDataObject(); } public void DisplayData(){pd.DisplayValue(); } } //Test classpublic class MyDoc {static Document d;public static void main(String[] args) {d = new Document(new IntFactory()); d.DisplayData(); }
}四.使用TDD的方式设计并实现复数类Complex

总结

PSP(Personal Software Process)时间

步骤 耗时 百分比
需求分析 15分钟 5.5%
设计   15分钟 5.5%
代码实现 90分钟 33.3%
测试 120分钟 44.4%
分析总结 30分钟 12%

单元测试的好处:

“软件的很多错误都来源于程序员对模块功能的误解、疏忽或不了解模块的变化。如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证?单元测试就是一个很有效的解决方案。”

没错,通过单元测试,不仅可以完善自己的编程逻辑和细节,而且对于代码的完善性和可靠性有了更好的提高。特别是编程过程中,代码模块和测试模块共同成长起来的过程,让整个编程更有逻辑性和严密性。

总结:本次实验,从单元测试,工程——包——类,封装、继承、接口等多方面对java编程能力进行了提高,不仅对于相关软件有了全新的认识,而且对于自己的编程习惯有了更好的优化。虽然从实验楼转战windows平台,再通过虚拟机最终完成,耗时有点过长,但是在编程能力的提高的同时,也锻炼了自己的耐性和韧劲。实验过程中,和老师、同学交流,也对于java有了新的认识。

20135333苏正生

2015年5月7日

转载于:https://www.cnblogs.com/suzhengsheng/p/4485460.html

20135333苏正生实验二实验报告相关推荐

  1. 20135333苏正生实验三实验报告

    课程: Java程序设计 班级: 1353 姓名: 苏正生 学号: 2015333 成绩: 指导教师: 娄家鹏 实验日期: 2015.5.6 实验密级: 预习程度: 实验时间: 3:20~5:00 仪 ...

  2. 20135315 宋宸宁 、20135333 苏正生——实验5

    http://www.cnblogs.com/suzhengsheng/p/5049847.html 转载于:https://www.cnblogs.com/java-stx/p/5068576.ht ...

  3. 大学计算机实验二报告表答案,北理大学计算机实验基础实验二实验报告表答案...

    <北理大学计算机实验基础实验二实验报告表答案>由会员分享,可在线阅读,更多相关<北理大学计算机实验基础实验二实验报告表答案(4页珍藏版)>请在人人文库网上搜索. 1.实验二实验 ...

  4. 大学计算机实验二报告表答案,北理大学计算机实验基础实验二实验报告表答案(1页)-原创力文档...

    实验二实验报告表 实验名称: 学号姓名:班级:实验时间: 实验报告表 2-1 数值型数据在计算机中的二进制实验记录表 十进制整数分 输入十进制整数 内存整型数据 内存地址号 类 任意正整数 7 000 ...

  5. python编程图书批发商店的某本书的零售价是26.5_根据实验指导书,完成实验2的任务一与任务三,使用 实验二(实验报告).docx 完成报告并提交。_学小易找答案...

    [简答题]从键盘输入 n(0 [简答题]完成课本P89,查询学生成绩,提交源代码 [单选题]企业本期生产产品直接耗用原材料 3000 元,生产车间管理方面耗用原材料 2000 元,正确的会计分录是( ...

  6. java上机实验实验报告_Java实验二实验报告.doc

    Java实验二实验报告 本科学生实验报告 ( 二 ) 姓名 学院 计算机科学学院 专业 计算机科学与技术 班级 实验课程名称 Java面向对象设计 试验时间 2012 年 10 月 14 日 指导教师 ...

  7. 20202413 2021-2022-2 《网络与系统攻防技术》实验二实验报告

    20202413 2021-2022-2 <网络与系统攻防技术>实验二实验报告 文章目录 20202413 2021-2022-2 <网络与系统攻防技术>实验二实验报告 1.实 ...

  8. ORACLE与数据库原理实验 实验二 实验数据库的建立(答案全)

    实验二 实验数据库的建立 [实验目的] [预备知识] [实验内容] [实验目的] 1. 熟悉和掌握 SQL的 Create Table, Drop Table, Alter Table语句语法: 2. ...

  9. 周信东c语言实验二实验报告,周信东主编最新版C语言程序设计基础实验一实验报告.doc...

    周信东主编最新版C语言程序设计基础实验一实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我 ...

最新文章

  1. DataWorks 安装手册
  2. Rep Loss笔记
  3. linux怎么查看一个文件夹的大小
  4. [BUUCTF-pwn]——bjdctf_2020_babyrop2
  5. TortoiseSVN操作
  6. Character.isLetterOrDigit(ch)判断ch是否为字母或数字
  7. 济南python工资一般多少-Python火到天际,可是为啥找工作这么难?
  8. Android RecyclerView之SnapHelper原理解析(一)
  9. IT运维服务整体方案
  10. 关于GPU数据库的未来
  11. 科学巨星的美丽轨迹——走近博弈论大师纳什
  12. 问题:阿里云RDS数据库Binlog日志一直增大,撑爆磁盘
  13. 基于STM32的12864液晶理解
  14. css表格nth左对齐,使用CSS nth-child选择单个表格单元格
  15. 什么是微信附近推广告宣传?效果怎么样?是以什么方式推广?
  16. 网下“范跑跑”:范美忠的另一面
  17. Flowable—基本概念和重要名词解释
  18. 基于STM32的智能门禁卡片(开题报告)
  19. pms酒店管理系统功能,酒店管理系统软件开发
  20. 2021年3月面试题集合

热门文章

  1. Python 使用Qt可视化开发窗体应用程序
  2. 如何重设/删除SOLIDWORKS注册表?
  3. 数据分析的理念、流程、方法、工具(下)
  4. 微信公众号支付(JSAPI)
  5. 程序隐藏助手下载//老板键下载//上班开小差工具
  6. 制作PHP安装程序的原理和步骤
  7. 2021年R1快开门式压力容器操作复审考试及R1快开门式压力容器操作复审模拟考试
  8. java 怎么产生性别_生物的性别是如何演化形成的?
  9. Android 版 Facebook 登录
  10. Android Studio 4.0 新功能与优化