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

}

}

测试结果

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

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

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

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

-测试代码编译不通过

-编写产品代码

-测试通过

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

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

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

(3)面向对象三要素

设计模式初步

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% ...

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

  1. Java模式设计卖电脑实验报告,面向对象(Java)实验0继承、接口和多态

    <面向对象(Java)实验0继承.接口和多态>由会员分享,可在线阅读,更多相关<面向对象(Java)实验0继承.接口和多态(11页珍藏版)>请在金锄头文库上搜索. 1.电子信息 ...

  2. python顺序结构实验设计_实验二 顺序结构程序设计(验证性实验)

    安徽工程大学 Python程序设计实验报告 班级物流192 姓名 徐敏 学号 3190505232 成绩 _____ 日期 2020.3.22 指导老师 修宇 [实验名称] 实验二 顺序结构程序设计( ...

  3. c程序语言第四版实验报告,C语言程序设计第四次实验报告

    C语言程序设计第四次实验报告 姓名:熊毅 实验地点:家 实验时间:2020.04.09 实验项目: 5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5 ...

  4. java模式设计视频教程_全新JAVA设计模式详解视频教程 完整版课程

    ├─0-设计模式前言.mp4; D" g8 v: S4 L* d2 y* U  j ; N5 }! y5 r/ k3 B5 ]+ f% [: x├─1-strategy_策略模式-第二模式. ...

  5. java学习(69):java模式设计之适配器

    1需求是 //公司招员工,要求会讲中.英.法.日四国语言,同时还很会编程的员工. 这时候,我们先定义一个接口,实现接口中的方法我们就认为满足 //公司招员工,要求会讲中.英.法.日四国语言,同时还很会 ...

  6. java 课程设计数据库_人事管理系统(java数据库课程设计)+SQL数据库

    [实例简介] 员工各种信息:包括员工的基本信息,如编号.姓名.性别.学历.所属部门.毕业院校.健康情况.职称.职务.奖惩等:员工各种信息的修改:对转出.辞退.退休员工信息的删除:按照一定条件,查询.统 ...

  7. java安卓模拟器和电脑通信_Android 模拟器(JAVA)与C++ socket 通讯 分享

    C++ 作为Client端 view plaincopy to clipboardprint? // Client.cpp : Defines the entry point for the cons ...

  8. C语言设计调研报告,C语言程序设计第12章调研报告.ppt

    第12章 C语言综合应用程序示例; 一个有实用价值的C语言应用程序往往较大,需要划分成不同的模块,分配给不同的程序员去完成.因此,在实用软件的开发中,往往需要采用多模块编程技术.;2.然后用编译器进行 ...

  9. java数组设计的原理_动态图-Java常用数据结构及其设计原理

    > 转载 - [图解Java常用数据结构(一) - 大道方圆 - 博客园 ](https://www.cnblogs.com/xdecode/p/9321848.html) > https ...

最新文章

  1. 站内信息 php,站内消息_php教程
  2. python编程需要什么软件-《》 学习python编程需要安装哪些软件?
  3. UA MATH566 统计理论7 还有一个例子:推导卡方检验
  4. Linux 服务器带宽异常跑满分析解决
  5. javaBean为什么要implements Serializable
  6. 支付宝php异步回调,支付宝支付成功之后异步回调处理
  7. vue-i18n使用及踩坑记录
  8. 我的世界html导入整合包教程,《我的世界手机版》如何制作一个整合包教程攻略...
  9. 方法论:写好一份产品需求的系统化思考模型
  10. winform 开发涉及到的问题
  11. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用高级功能...
  12. 基于机器视觉的磁头飞机载划痕检测
  13. 使用zabbix如何自动清理30天前的数据
  14. Spring.NET教程(三)——对象的创建(基础篇)
  15. 程序员,如何从平庸走向理想?答:干困难事!
  16. UE4C++ Http下载文件
  17. 【正点原子STM32连载】第三十七章 触摸屏实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  18. IOI2020国家集训队集中培训通知及如何进入国家集训队
  19. 我要自学网python视频教程百度云_180G全套Python视频教程集合
  20. 关于对象的construct与destruct

热门文章

  1. java计算年龄_JAVA根据生日计算年龄(年月日)
  2. 揭秘机器人的神经网络-工业POE交换机
  3. 七天入门统计力学-第1天 基础知识及基本概念
  4. 股票买卖(买入卖出一次)
  5. 阿里前端常考vue面试题汇总
  6. To B 和To C 产品经理,哪个对能力要求更高?
  7. Unity 变体探秘
  8. 破解红外发射-美的空调实战篇
  9. IDOC--关于ALE、IDOC的文章收集
  10. 【压缩】SlimYOLOv3:Narrower,Faster and Better for Real-Time UAV Application