java程序设计报告答案_20165115 实验二《Java面向对象程序设计》实验报告

#20165115 实验二 面向对象程序设计

这一次的实验,老师按照实验内容的不同将实验分成了五个部分进行。五个部分的侧重难易都有区别,实验报告中的叙述也会有所区别。

##第一部分

先上实验结果截图:

f6cd07a1c6952ce48c754ac50dcdda80.png

c039ded6975223eb24d8ef4fa114e420.png

这一部分的实验内容没有什么创造性的内容,机械单纯的重复一下博客中给出的代码就可以得到相应的实验结果。另一方面,这一部分的内容主要目的还是掌握基础的Junit的用法。相对来讲没有什么难度,不做赘述。

##第二部分

依旧先是截图:

901fab3a0d03d6e9d6cf19d970b80bf8.png

到了这一部分就是juint实战操作了。需要对junit的使用方法有清晰的认识才能够完成junit部分的代码撰写。但是相对来讲并不难,掌握了基本原理之后写起来还是很快的。在给出的博客的指导下也并没有遇到什么问题。

##第三部分

截图:

289dd498399321b8f57530f9449405be.png

这一部分开始真正的写一些新的代码了。这一部分的内容我有一个最大的疑惑就是,让已有的程序支持Java语言中已有的系统类,如Long、Float类等等,是在程序中直接对这些类进行继承修改等操作,这在C语言当中是不能想象的。最开始出现了问题时我还一度怀疑是不是老师给出的示例出现了问题(后来发现时敲错了一个单词....)但是这也体现了Java代码相对自由度较高的特点。

这一部分的代码内容虽然理解并不是非常深入,但是依照之前的经验和博客中给出的样例还是可以完成基本要求的。现在我对这一部分的代码还是有一些概念上的不理解,希望可以在课上听到老师的讲解。

##第四部分

这一部分几乎可以说是这一次实验最复杂的部分。与之前各部分的难度完全不在一个次元。既然是完全写代码的部分,测试通过的截图就不那么重要了,下面是两个部分的代码:

public class MyComplex {

double a, b;

MyComplex(double m, double n) {//构造函数设置实部虚部

a = m;

b = n;

}

public double getRealPart() {//返回实部

return a;

}

public double getImagePart() {//返回虚部

return b;

}

public MyComplex ComplexAdd(MyComplex y) {//加法

double m = y.getRealPart();

double n = y.getImagePart();

double x = a + m;

double z = b + n;

return new MyComplex(x, z);

}

public MyComplex ComplexSub(MyComplex y) {

double m = y.getRealPart();

double n = y.getImagePart();

double x = a - m;

double z = b - n;

return new MyComplex(x, z);

}

public MyComplex ComplexMulti(MyComplex y) {

double m = y.getRealPart();

double n = y.getImagePart();

double x = a * m;

double z = b * n;

return new MyComplex(x, z);

}

public MyComplex ComplexDiv(MyComplex y) {

double m = y.getRealPart();

double n = y.getImagePart();

double x = a / m;

double z = b / n;

return new MyComplex(x, z);

}

@Override

public java.lang.String toString() {

String s = "";

if (a != 0 && b > 0 && b != 1) {

s += a + "+" + b + "i";

}

else if (a != 0 && b == 1) {

s += a + "+i";

}

else if (a != 0 && b < 0 && b != -1) {

s += a + "" + b + "i";

}

else if (a != 0 && b == -1) {

s += a + "-i";

}

else if (a != 0 && b == 0) {

s += a;

}

else if (a == 0 && b != 0) {

s += b + "i";

}

else if (a == 0 && b == 0) {

s += "0.0";

}

return s;

}

}

以上是计算器的代码;

import junit.framework.TestCase;

import org.junit.Test;

public class MyComplexTest extends TestCase {

MyComplex a=new MyComplex(0,0);

MyComplex b=new MyComplex(1,1);

MyComplex c=new MyComplex(-1,-1);

MyComplex d=new MyComplex(20.16,53.10);

MyComplex e=new MyComplex(2,3);

@Test

public void testgetReal(){

assertEquals(0.0,a.getRealPart());

assertEquals(-1.0,c.getRealPart());

assertEquals(20.16,d.getRealPart());

}

@Test

public void testgetIma(){

assertEquals(0.0,a.getImagePart());

assertEquals(-1.0,c.getImagePart());

assertEquals(53.1,d.getImagePart());

}

@Test

public void testComAdd(){

assertEquals("0.0",b.ComplexAdd(c).toString());

assertEquals("1.0+i",a.ComplexAdd(b).toString());

assertEquals("19.16+52.1i",c.ComplexAdd(d).toString());

assertEquals("-1.0-i",a.ComplexAdd(c).toString());

assertEquals("21.16+54.1i",b.ComplexAdd(d).toString());

}

@Test

public void testComSub(){

assertEquals("1.0+i",b.ComplexSub(a).toString());

assertEquals("-21.16-54.1i",c.ComplexSub(d).toString());

assertEquals("2.0+2.0i",b.ComplexSub(c).toString());

}

@Test

public void testComMul(){

assertEquals("0.0",a.ComplexMulti(d).toString());

assertEquals("-1.0-i",b.ComplexMulti(c).toString());

assertEquals("-20.16-53.1i",c.ComplexMulti(d).toString());

assertEquals("40.32+159.3i",d.ComplexMulti(e).toString());

}

@Test

public void testComDiv(){

assertEquals("0.0",a.ComplexDiv(b).toString());

assertEquals("-1.0-i",c.ComplexDiv(b).toString());

assertEquals("-0.5-0.3333333333333333i",c.ComplexDiv(e).toString());

assertEquals("10.08+17.7i",d.ComplexDiv(e).toString());

}

}

以上是测试部分的代码。

6f2bfc55a6eebedbf494269764bbd3c6.png

测试通过的截图。

##第五部分

这一部分来的确实突然==不过好在只涉及到了一个新的软件的学习。基本的操作在界面中就能摸索出来,实在遇到不会的地方百度也可以找到很多教程。不做赘述 截图如下:

5a487e0b47cd73c80dd62dd91b5d2900.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值