20145302张薇《Java程序设计》实验二:Java面向对象程序设计
使用TDD的方式设计实现复数类:Complex
测试代码
import org.junit.Test;
public class ComplexNumberTest {
@Test
public void TestFunction1() {
ComplexNumber complexnumber = new ComplexNumber(1, 3);
;
assert complexnumber.m_dRealPart == 1 : "ComplexNumber(double r,double I)构造函数有错误";
assert complexnumber.m_dImaginPart == 3 : "ComplexNumber(double r,double I)构造函数有错误";
}
@Test
public void TestFunction2() {
ComplexNumber complexnumber = new ComplexNumber();
assert complexnumber.m_dImaginPart == 0 : "ComplexNumber()构造函数有错误";
assert complexnumber.m_dRealPart == 0 : "ComplexNumber()构造函数有错误";
}
@Test
public void TestSetWay() {
ComplexNumber complexnumber = new ComplexNumber();
complexnumber.SetRealPart(1);
complexnumber.SetImaginaryPart(1);
assert complexnumber.m_dRealPart == 1 : "SetRealPart方法有错误";
assert complexnumber.m_dImaginPart == 1 : "SetImaginaryPart方法有错误";
}
@Test
public void TestgetWay() {
ComplexNumber complexnumber = new ComplexNumber();
complexnumber.SetRealPart(2);
complexnumber.SetImaginaryPart(5);
assert complexnumber.GetRealPart() == 2 : "GetRealPart方法有错误";
assert complexnumber.GetImaginaryPart() == 5 : "GetImaginaryPart方法有错误";
}
@Test
public void TestStringWay() {
ComplexNumber complexnumber = new ComplexNumber(2,6);
assert complexnumber.toString()=="2.0+6.0i":"toString方法有错误";
}
@Test
public void TestAddWay1() {
ComplexNumber complexnumber1 = new ComplexNumber(1,1);
ComplexNumber complexnumber2 = new ComplexNumber(2,2);
ComplexNumber complexnumber3=complexnumber1.ComplexAdd1(complexnumber2);
assert complexnumber3.m_dRealPart == 3 : "ComplexAdd方法有错误";
assert complexnumber3.m_dImaginPart == 3 : "ComplexAdd方法有错误";
}
@Test
public void TestAddWay2() {
ComplexNumber complexnumber1 = new ComplexNumber(1,1);
ComplexNumber complexnumber2=complexnumber1.ComplexAdd2(2);
assert complexnumber2.m_dRealPart == 3 : "ComplexAdd方法有错误";
assert complexnumber2.m_dImaginPart == 1 : "ComplexAdd方法有错误";
}
@Test
public void TestMinusWay1() {
ComplexNumber complexnumber1 = new ComplexNumber(1,1);
ComplexNumber complexnumber2 = new ComplexNumber(2,2);
ComplexNumber complexnumber3=complexnumber2.ComplexMinusl(complexnumber1);
assert complexnumber3.m_dRealPart == 1 : "ComplexMinus方法有错误";
assert complexnumber3.m_dImaginPart == 1 : "ComplexMinus方法有错误";
}
@Test
public void TestMinusWay2() {
ComplexNumber complexnumber1 = new ComplexNumber(5,1);
ComplexNumber complexnumber2=complexnumber1.ComplexMinus2(1);
assert complexnumber2.m_dRealPart == 4 : "ComplexMinus方法有错误";
assert complexnumber2.m_dImaginPart == 1 : "ComplexMinus方法有错误";
}
@Test
public void TestMultiWay1() {
ComplexNumber complexnumber1 = new ComplexNumber(3,3);
ComplexNumber complexnumber2 = new ComplexNumber(3,5);
ComplexNumber complexnumber3=complexnumber1.ComplexMultil(complexnumber2);
assert complexnumber3.m_dRealPart == -6 : "ComplexMinus方法有错误";
assert complexnumber3.m_dImaginPart == 24 : "ComplexMinus方法有错误";
}
@Test
public void TestMultiWay2() {
ComplexNumber complexnumber1 = new ComplexNumber(3,3);
ComplexNumber complexnumber2=complexnumber1.ComplexMulti2(2);
assert complexnumber2.m_dRealPart == 6 : "ComplexMinus方法有错误";
assert complexnumber2.m_dImaginPart == 6 : "ComplexMinus方法有错误";
}
}
实验代码
public class ComplexNumber {
public double m_dRealPart;
public double m_dImaginPart;
public ComplexNumber(){
this.m_dImaginPart=0;
this.m_dRealPart=0;
}
public ComplexNumber(double r,double I){
this.m_dRealPart=r;
this.m_dImaginPart=I;
}
public double GetRealPart(){
return this.m_dRealPart;
}
public double GetImaginaryPart(){
return this.m_dImaginPart;
}
public void SetRealPart(double d) {
this.m_dRealPart=d;
}
public void SetImaginaryPart(double d) {
this.m_dImaginPart=d;
}
public ComplexNumber ComplexAdd1(ComplexNumber c){
this.m_dRealPart=this.m_dRealPart+c.m_dRealPart;
this.m_dImaginPart=this.m_dImaginPart+c.m_dImaginPart;
return this;
}
public ComplexNumber ComplexAdd2(double c){
this.m_dRealPart=this.m_dRealPart+c;
return this;
}
public ComplexNumber ComplexMinusl(ComplexNumber c){
this.m_dRealPart=this.m_dRealPart-c.m_dRealPart;
this.m_dImaginPart=this.m_dImaginPart-c.m_dImaginPart;
return this;
}
public ComplexNumber ComplexMinus2(double c){
this.m_dRealPart=this.m_dRealPart-c;
return this;
}
public ComplexNumber ComplexMultil(ComplexNumber c){
double a=this.m_dImaginPart;
double b=this.m_dRealPart;
this.m_dRealPart=b*c.m_dRealPart-(a*c.m_dImaginPart);
this.m_dImaginPart=b*c.m_dImaginPart+a*c.m_dRealPart;
return this;
}
public ComplexNumber ComplexMulti2(double c){
double a=this.m_dImaginPart;
double b=this.m_dRealPart;
this.m_dRealPart=this.m_dRealPart*c;
this.m_dImaginPart=this.m_dImaginPart*c;
return this;
}
public String toString(){
return this.m_dRealPart+"+"+this.m_dImaginPart+"i";
}
}
实验结果截图
实验调整截图
- 我试了,在别人的电脑上可以运行成功,但是这里出错了,说是用到了java.lang.String方法。
建模截图
实验体会
- 实验最重要的是动手做,自己独立上手一遍会记得更牢固。