1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 5122《Java面向对象程序设计》实验二实验报告

5122《Java面向对象程序设计》实验二实验报告

时间:2019-05-27 23:31:23

相关推荐

5122《Java面向对象程序设计》实验二实验报告

实验名称: Java面向对象程序设计

实验内容:

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

了解设计模式

PSP时间

代码实现过程

直接使用老师实验课上给出的伪代码。

m_dRealPart: 实部,代表复数的实数部分

m_dImaginPart:虚部,代表复数的虚数部分

ComplexNumber()构造函数,将实部,虚部都置为0

ComplexNumber(double r, double I)构造函数,创建复数对象的同时完成复数的实部,虚部的初始化

GetRealPart()获取实部

GetImaginaryPart()获取虚部

SetRealPart(double d)设置实部

SetImaginaryPart(double d)设置虚部

ComplexAdd(ComplexNumber c)复数相加

ComplexAdd(double c)复数相加

ComplexMinus(ComplexNumber c)复数相减

ComplexMinus(double c)复数相减

ComplexMulti(ComplexNumber c) 复数相乘

ComplexMulti(double c) 复数相乘

toString() 把当前复数对象的实部,虚部组合成a+bi的字符串形式

根据复数运算的加减乘三个功能进行代码设计。敲出产品代码

package czy;public class complex{public static void main (String args[]){ComplexNumber a = new ComplexNumber(20,10);ComplexNumber b = new ComplexNumber(5,5);double z = 10.0;System.out.println(a.toString() + " + " +b.toString() + " = " + plexAdd(b).toString());System.out.println(a.toString() + " + " + z + " = " + plexAdd(z).toString());System.out.println(a.toString() + " - " + b.toString() + " = " + plexMinus(b).toString());System.out.println(a.toString() + " - " + z + " = " + plexMinus(z).toString());System.out.println(a.toString() + " * " + b.toString() + " = " + plexMinus(b).toString());System.out.println(a.toString() + " * " + z + " = " + plexMulti(z).toString());}}class ComplexNumber{private double realpart;private double imaginpart;ComplexNumber(){realpart = 0.0;imaginpart = 0.0;}ComplexNumber(double r,double I){realpart = r;imaginpart = I;}ComplexNumber(ComplexNumber c){realpart = c.getRealPart();imaginpart = c.getImaginaryPart();}double getRealPart(){return realpart;}double getImaginaryPart(){return imaginpart;}void setRealPart(double d){realpart = d;}void setImaginaryPart(double d){imaginpart = d;}ComplexNumber complexAdd(ComplexNumber c){return new ComplexNumber( this.realpart + c.getRealPart(), this.imaginpart + c.getImaginaryPart());}ComplexNumber complexAdd(double c){return new ComplexNumber( this.realpart + c, this.imaginpart);}ComplexNumber complexMinus(ComplexNumber c){return new ComplexNumber( this.realpart - c.getRealPart(),this.imaginpart - c.getImaginaryPart());}ComplexNumber complexMinus(double c){return new ComplexNumber( this.realpart - c, this.imaginpart);}ComplexNumber complexMulti(ComplexNumber c){return new ComplexNumber( this.realpart * c.getRealPart() - this.realpart * c.getImaginaryPart(),this.realpart * c.getImaginaryPart() + this.imaginpart * c.getRealPart());}ComplexNumber complexMulti(double c){return new ComplexNumber( this.realpart * c, this.imaginpart * c);}public String toString(){return "(" + realpart + " + " + imaginpart + " i" + ")";}}

完成后进行测试代码:

package czy;public class complextest {public static void main (String args[]){ComplexNumber a = new ComplexNumber(20,10);ComplexNumber b = new ComplexNumber(5,5);ComplexNumber x = new ComplexNumber();double z = 10.0;x = plexAdd(b);if(x.getRealPart() !=25.0 )System.out.println("test failed 1!");x = plexAdd(z);if(x.getRealPart() !=30.0 )System.out.println("test failed 11!");x = plexAdd(b);if( x.getImaginaryPart()!=15.0 )System.out.println("test failed 2!");x = plexAdd(z);if( x.getImaginaryPart()!=10.0 )System.out.println("test failed 22!");x = plexMinus(b);if( x.getRealPart()!=15.0 )System.out.println("test failed 3!");x = plexMinus(z);if( x.getRealPart()!=10.0 )System.out.println("test failed 33!");x = plexMinus(b);if( x.getImaginaryPart()!=5.0 )System.out.println("test failed 4!");x = plexMinus(z);if( x.getImaginaryPart()!=10.0 )System.out.println("test failed 44!");x = plexMulti(b);if( x.getRealPart() !=50.0 )System.out.println(x.getRealPart()+"test failed 5!");x = plexMulti(z);if( x.getRealPart() !=200.0 )System.out.println("test failed 55!");x = plexMulti(b); if( x.getImaginaryPart()!=150.0 )System.out.println("test failed 6!");x = plexMulti(z); if( x.getImaginaryPart()!=100.0 )System.out.println("test failed 66!");else System.out.println("test passed!"); }}class ComplexNumber{private double realpart;private double imaginpart;ComplexNumber(){realpart = 0.0;imaginpart = 0.0;}ComplexNumber(double r,double I){realpart = r;imaginpart = I;}ComplexNumber(ComplexNumber c){realpart = c.getRealPart();imaginpart = c.getImaginaryPart();}double getRealPart(){return realpart;}double getImaginaryPart(){return imaginpart;}void setRealPart(double d){realpart = d;}void setImaginaryPart(double d){imaginpart = d;}ComplexNumber complexAdd(ComplexNumber c){return new ComplexNumber( this.realpart + c.getRealPart(), this.imaginpart + c.getImaginaryPart());}ComplexNumber complexAdd(double c){return new ComplexNumber( this.realpart + c, this.imaginpart);}ComplexNumber complexMinus(ComplexNumber c){return new ComplexNumber( this.realpart - c.getRealPart(),this.imaginpart - c.getImaginaryPart());}ComplexNumber complexMinus(double c){return new ComplexNumber( this.realpart - c, this.imaginpart);}ComplexNumber complexMulti(ComplexNumber c){return new ComplexNumber( this.realpart * c.getRealPart() - this.realpart * c.getImaginaryPart(),this.realpart * c.getImaginaryPart() + this.imaginpart * c.getRealPart());}ComplexNumber complexMulti(double c){return new ComplexNumber( this.realpart * c, this.imaginpart * c );}public String toString(){return "(" + realpart + " + " + imaginpart + " i" + ")";}}

运行的时候出现了问题!

找到出错的地方,将关于复数乘法的代码改为:

ComplexNumber complexMulti(ComplexNumber c){return new ComplexNumber( this.realpart * c.getRealPart() - this.imaginpart * c.getImaginaryPart(),this.realpart * c.getImaginaryPart() + this.imaginpart * c.getRealPart());}

成功!

实验问题和解决方法

实验过程关于复数算法出现了一些错误,但写了测试代码后成功进行了修改。还有如果用debug的话可能方便一些。

测试代码的好处

使用测试代码后会减少程序出现的bug,在符合客户需求的情况下使代码更加完善,也能锻炼我们的思维,增强我们认真负责的意识,一举多得。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。