Java模式设计卖电脑实验报告_20145310《Java程序设计》第2次实验报告

20145310《Java程序设计》第2次实验报告

实验内容

初步掌握单元测试和TDD

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

初步掌握UML建模

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

了解设计模式

实验步骤

1、单元测试

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

}

}

测试代码

public class MyUtilTest1 {

public static void main(String[] args) {

//测试出错情况

if(MyUtil.percentage2fivegrade(-10) != "错误")

System.out.println("test failed 1!");

else if(MyUtil.percentage2fivegrade(115) != "错误")

System.out.println("test failed 2!");

else

System.out.println("test passed!");

}

}

测试结果

8bd327f2d26f67ee808b79cfeeaefbb9.png

(2) TDD(Test Driven Devlopment, 测试驱动开发)

先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD)。TDD的一般步骤如下:

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

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

-测试代码编译不通过

-编写产品代码

-测试通过

-对代码进行重构,并保证测试通过

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

基于TDD,我们不会出现过度设计的情况,需求通过测试用例表达出来了,我们的产品代码只要让测试通过就可以了。 Java中有单元测试工具JUnit来辅助进行TDD,红叉说明代码存在语法错误,原因很简单,MyUtil类还不存在,类中的percentage2fivegrade方法也不存在,我们在TDDDemo的src目录中新建一个MyUtil的类,并实现percentage2fivegrade方法

(3)面向对象三要素

dc74fc7845c3d760816920e33c2d8fdf.png

设计模式初步

S.O.L.I.D原则

SRP(Single Responsibility Principle,单一职责原则)

OCP(Open-Closed Principle,开放-封闭原则)

LSP(替换原则)

ISP(接口分离原则)

DIP(依赖倒置原则)

练习代码

public class ComplexDemo {

// main方法

public static void main(String[] a) {

Complex b = new Complex(2,5);

Complex c = new Complex(3,-4);

System.out.println(b + "+" + c + "=" + b.add(c));

System.out.println(b + "-" + c + "=" + b.minus(c));

System.out.println(b + "*" + c + "=" + b.multiply(c));

System.out.println(b + "/" + c + "=" + b.divide(c));

}

}

// Complex类

class Complex {

private double m;// 实部

private double n;// 虚部

public Complex(double m,double n) {

this.m = m;

this.n = n;

}

// add

public Complex add(Complex c) {

return new Complex(m + c.m,n + c.n);

}

// minus

public Complex minus(Complex c) {

return new Complex(m - c.m,n - c.n);

}

// multiply

public Complex multiply(Complex c) {

return new Complex(m * c.m - n * c.n,m * c.n + n * c.m);

}

// divide

public Complex divide(Complex c) {

double d = Math.sqrt(c.m * c.m) + Math.sqrt(c.n * c.n);

return new Complex((m * c.m + n * c.n) / d,Math.round((m * c.n - n * c.m) / d));

}

public String toString() {

String rtr_str = "";

if (n > 0)

rtr_str = "(" + m + "+" + n + "i" + ")";

if (n == 0)

rtr_str = "(" + m + ")";

if (n < 0)

rtr_str = "(" + m + n + "i" + ")";

return rtr_str;

}

}

PSP

步骤

耗时

百分比

需求分析

15min

15%

设计

15min

15%

代码实现

35min

35%

测试

20min

20%

分析总结

15min

15%

20145330《Java程序设计》第二次实验报告

20145330第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...

20145320《Java程序设计》第二次实验报告

20145320第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

《Java程序设计》第二次实验报告

20145220 第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...

20145333 《Java程序设计》第二次实验报告

2014333 第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测试 ...

20145240 《Java程序设计》第二次实验报告

20145240 第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验 ...

Java程序设计第四次实验报告

北京电子科技学院(BESTI) 实     验    报     告 课程:java程序设计 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏 ...

20145216史婧瑶《Java程序设计》第二次实验报告

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

20145231《Java程序设计》第二次实验报告

实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD: 理解并掌握面向对象三要素: 初步掌握UML建模: 熟悉S.O.L.I.D原则: 了解设计模式: 实验要求 实现并体会例子中代码的 ...

20145211 《Java程序设计》实验报告五————Java网络编程及安全实验报告

实验内容 1.掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验步骤 这一部分是与我的partner合作的,详见他的博客- [20145326

20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

20175316 盛茂淞 2018-2019-2 实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

随机推荐

华为5G空口新技术(2015年)

2015-03-24 长江后浪推前浪,4G建设方兴未艾,业界关于5G的讨论已如火如荼.对于每一代移动通信,空口技术都相当于王冠上的明珠. 在月初的世界移动通信大会上,华为发布了面向5G的新空口,并展出 ...

centos 7&period;0 ln命令 和chkconfig 命令介绍 开机自动启 服务

有时候centos需要 程序开机启动的时候  自启动 首先在 /etc/init.d/ cd /etc/init.d 文件夹下建立开机启动项 使用ln命令 使用方式 : ln [options] so ...

前序&sol;中序---&gt&semi;后序

参考:http://www.cnblogs.com/rain-lei/p/3576796.html !!由前序和后序序列无法确定二叉树 preOrder 5 3 2 4 8 6 9   midOrde ...

REMOTE HOST IDENTIFICATION HAS CHANGED

今天在使用scp命令上传文件到远端服务器时报如下错误,(ssh命令连接到远程服务器时也报同样的错误): @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

设置ListView每条数据之间的间隔

1:如果不需要分割线可以在xml布局文件中ListView下设置XML属性: android:divider="#00000000" android:dividerHeight=& ...

CONTEST45 呵呵呵呵呵

题目质量差评!为什么不给数据范围! A.乘积最大3 题目:http://dev.luogu.org/problem/show?pid=2172 题解:sb题,均值定理. 代码: #include&lt ...

js简易写法

我写JavaScript代码已经很久了,都记不起是什么年代开始的了.对于JavaScript这种语言近几年所取得的成就,我感到非常的兴奋:我很幸运也是这些成就的获益者.我写了不少的文章,章节,还有一本 ...

Number String

Number String 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4055 dp 定义状态:dp[i][j]为当strlen=i,数字结尾为j的 ...

第二届强网杯wp

web web签到 利用了md5碰撞 payload为 param1 =%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b% ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值