20145123《实验报告二》

一、实验内容

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

二、实验步骤

1.测试

(1) 三种代码
伪代码、产品代码、测试代码

(2) TDD(Test Driven Devlopment, 测试驱动开发)
a.先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD)。TDD的一般步骤如下:
-明确当前要完成的功能,记录成一个测试列表
-快速完成编写针对此功能的测试用例
-测试代码编译不通过
-编写产品代码
-测试通过
-对代码进行重构,并保证测试通过
-循环完成所有功能的开发

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

c.测试结果出现了一个绿条(green bar),说明测试通过了。

2. 三要素:封装、继承、多态

3.五个原则(solid)

S.O.L.I.D原则:
SRP(Single Responsibility Principle,单一职责原则)
OCP(Open-Closed Principle,开放-封闭原则)
LSP(Liskov Substitusion Principle,Liskov替换原则)
ISP(Interface Segregation Principle,接口分离原则)
DIP(Dependency Inversion Principle,依赖倒置原则)

三、实验

Complex类代码

public class ComplexNumber {

public static void main(String[] args) {

Complex x = new Complex(1.0 , -2.0);

Complex y = new Complex(3.0 , 4.0);

Complex.printSentence(x, y);

}

}

class Complex {

private double a,b;

Complex(double a,double b) {

this.a = a;

this.b = b;

}

static Complex Add(Complex x,Complex y) {

return new Complex(x.a+y.a, x.b+y.b);

}

static Complex Minus(Complex x,Complex y) {

return new Complex(x.a-y.a, x.b-y.b);

}

static Complex Multiple(Complex x,Complex y) {

return new Complex(x.a * y.a - x.b * y.b, x.a * y.b + x.b * y.a);

}

static Complex Divide(Complex x,Complex y) {

Complex conjugate = new Complex(y.a, -y.b);

double mo = (y.a)*(y.a) + (y.b)*(y.b);

Complex t = Multiple(x,conjugate);

return new Complex(t.a/mo , t.b/mo);

}

static String print(Complex x) {

if (x.b > 0) return x.a + "+" + x.b + "i"; else return x.a + "-" + (-x.b) + "i";

}

static void printSentence(Complex x, Complex y) {

System.out.println("("+ print(x) + ")+("+ print(y) + ") =" +print(Add(x, y)));

System.out.println("("+ print(x) + ")-("+ print(y) + ") =" +print(Minus(x, y)));

System.out.println("("+ print(x) + ")*("+ print(y) + ") =" +print(Multiple(x, y)));

System.out.println("("+ print(x) + ")/("+ print(y) + ") =" +print(Divide(x, y)));

}

}

测试Complex类代码的ComplexTest类代码

public class ComplexTest extends Complex{

public void printTest{

Complex c1=new Complex(2,9);

Complex c2=new Complex(4,6);

Complex c=new Complex();

c.Multiple(c1,c2);

c.Add(c1,c2);

c.Minus(c1,c2);

}

时间: 2024-10-31 01:31:17

20145123《实验报告二》的相关文章

20145123《实验报告四》

Java实验报告四:Android开发基础 实验要求: 1.安装Android Studio 2.运行安卓AVD模拟器 3.使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 实验过程 (一)SDK的安装 1. 2. 3.

操作系统实验报告四

操作系统实验4 题目1:编写页面内存的LRU替换算法 在实验3基础上考虑,如果当前分配的内存或保存页面的数据项已经被用完,这时再有新的网页请求,需要对已在内存中的网页数据进行替换,本实验内容需要使用LRU算法来对内存中的网页数据进行替换 题目2:编写页面内存的LFU替换算法 实现LFU(最少访问频率的页面替换)算法来管理内存页面 实验报告要求: 实验报告封面如下页所示. 按照题目要求,完成相关实验题目. 2.1报告中要包含完成此题目所查阅的一些关键技术材料.例如内存结构的设计.分配管理.回收方法

实验报告四

实验报告四 学   号201421450035   中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 王雪洁 年级 2014级 区队 5 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木

网络对抗技术 实验报告四

网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 李飞扬 年级 2014级 区队 二区队 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识. 2.了解并熟悉常用的网络攻击工具,木马的基本功能: 3.达到巩固课程知识和实际应用的目的.

实验报告 四(未完待续)

中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 宋欣雨 年级 2015 区队 二 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范

实验报告 四

中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 胥天浩 年级 2015 区队 5 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范

汇编语言程序设计实验报告四

南京信息工程大学实验报告 实验名称 实验 4 [bx]和loop的使用 实验日期 得分 学院 计软院 专业 计算机科学与技术 年级 2017级 班次 5班 姓名 陈奕明 学号 20171308194 一.实验目的 1. 理解和掌握寄存器间接寻址方式[bx] 2. 通过汇编指令loop的使用理解编程语言中循环的本质 3. 熟练掌握使用debug按需调试完整汇编源程序的方法 二.实验准备 1. 学习/复习第 5章使用[bx]和loop实现循环的编程应用示例(教材 5.5节,5.8节) 2. 复习第3

C语言程序设计实验报告四

C程序设计实验报告 姓 名:赖瑾 实验地点:家 实验时间:2020年4月9日 实验项目:5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5练习1 百马百担问题 5.3.5练习2 求等差数列 5.3.5练习3 食品分配问题 九九乘法表的实现 一.实验目的与要求 1.熟练地掌握while,do while及for语句实现循环的方法. 2.了解3种循环语句的区别和转换.各自的适应性.循环嵌套的使用. 3.掌握如何在循环语句种使用break,contin

C语言实验报告四

C程序设计实验报告 实验项目: 5.3.1-2求数列的前n项和:5.3.2水仙花数:5.3.4十进制转换:5.3.5-1百马百担问题:5.3.5-2求等差数列:5.3.5-3食品分配问题:九九乘法表. 姓名:熊晓东    实验地点:家   实验时间:2020.04.12 一.实验目的与要求 1.熟练地掌握while,do-while及for语句实现循环的方法.2.了解3种循环语句的区别和转换,各自的适应性,循环嵌套的作用.3.掌握如何在循环语句中使用break,continue语句,改变程序流程

实验报告四及总结

实验四 类的继承 一.实验目的 (1)掌握类的继承方法 (2)变量的继承和覆盖,方法的继承,重载和覆盖实现 二.实验内容 三.实验过程 (1) 实验代码 package Yuan; import java.util.*; class Circle{ private double radius; public Circle(){ this.setRadius(0); } public Circle(double r) { this.setRadius(r); } public void setRa