bit java实验2_java实验2实验报告(20135232王玥)

增加测试代码,JUnit出现红条

修改产品代码

JUnit出现绿条,任务完成

(二)面向对象三要素

(1)抽象

(2)封装、继承与多态

(三)设计模式初步

(1)S.O.L.I.D原则

面向对象三要素是“封装、继承、多态”,任何面向对象编程语言都会在语法上支持这三要素。如何借助抽象思维用好三要素特别是多态还是非常困难的,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,依赖倒置原则)

(四)练习

1使用TDD的方式设计关实现复数类Complex。

步骤

耗时

百分比

需求分析

1h

10%

设计

1h

10%

代码实现

2h

20%

测试

1h

10%

分析总结

1h

10%

3. 实现要有伪代码,产品代码,测试代码。

4.总结单元测试的好处

四、实验截图

b3be8d8a093f994570bd027a71bf1cd6.png

b604ba8145e433ce25d1623ba05b72ea.png

5dac7c4f2f698fd61faaef1215356b07.png

7cd7c67ee677dcac48ce85075628d803.png

4ee68851cd163fa5956b51f1d6375f56.png

d856ba1bb4b299653f4412d0874216f1.png

309186df2c0c39c4f9c49de19884461e.png

cf75c3c9127edcaceabf6ca2289fe09f.png

512f9be056d3cb05e2eb0ee677ad0d61.png

五、练习题

//伪代码

//复数类

类有虚部实部

复数的加法运算

复数的减法运算

复数的乘法运算

复数的除法运算

//产品代码

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;

}

}

//测试代码

public static ComplexTest{

public static void main(String[] args){

class Complex {

private double m;// 实部

private double n;// 虚部

public Complex(double m, double n) {

this.m = m;

this.n = n;

}

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;

}

}

}

}

六、遇到的问题及解决方法

出现的问题:在单元测试的编写中,虚拟机出了问题,把文档菜单栏关闭了,找不到打不开。解决方法:关闭实验后重新开始。

还有就是在测试代码的编写过程中因为不熟悉这种编程过程所以不太会编写,最后是自己对照着产品代码来写的测试代码,所以测试代码出现了很多问题,花费了很多时间去修改和编写代码最终还是无法顺利运行。

七、总结及体会

本次试验进行实践较长,总结原因是不熟悉虚拟机环境。另外,单元测试有很大的好处,可以使编写的程序的人不断地考虑到多种程序可能出现的问题,也能让这个程序更加可靠,让使用者使用的较为顺利。在编写代码方面还是有些问题,比如程序的设计较为混乱,没有一个比较清晰的思路。今后还需改正。在编写代码方面还是有些问题,比如程序的设计较为混乱,没有一个比较清晰的思路。今后还需改正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值