20145122《Java面向对象程序设计》实验二实验报告
實(shí)驗(yàn)名稱: Java面向?qū)ο蟪绦蛟O(shè)計(jì)
實(shí)驗(yàn)內(nèi)容:
了解設(shè)計(jì)模式
PSP時(shí)間
| 需求分析 | 1h | 12.5% |
| 設(shè)計(jì) | 1h | 12.5% |
| 代碼實(shí)現(xiàn) | 3h | 37.5% |
| 測(cè)試 | 1h | 12.5% |
| 分析總結(jié) | 2h | 25.0% |
代碼實(shí)現(xiàn)過(guò)程
直接使用老師實(shí)驗(yàn)課上給出的偽代碼。
m_dRealPart: 實(shí)部,代表復(fù)數(shù)的實(shí)數(shù)部分
m_dImaginPart: 虛部,代表復(fù)數(shù)的虛數(shù)部分
ComplexNumber() 構(gòu)造函數(shù),將實(shí)部,虛部都置為0
ComplexNumber(double r, double I) 構(gòu)造函數(shù),創(chuàng)建復(fù)數(shù)對(duì)象的同時(shí)完成復(fù)數(shù)的實(shí)部,虛部的初始化
GetRealPart() 獲取實(shí)部
GetImaginaryPart() 獲取虛部
SetRealPart(double d) 設(shè)置實(shí)部
SetImaginaryPart(double d) 設(shè)置虛部
ComplexAdd(ComplexNumber c) 復(fù)數(shù)相加
ComplexAdd(double c) 復(fù)數(shù)相加
ComplexMinus(ComplexNumber c) 復(fù)數(shù)相減
ComplexMinus(double c) 復(fù)數(shù)相減
ComplexMulti(ComplexNumber c) 復(fù)數(shù)相乘
ComplexMulti(double c) 復(fù)數(shù)相乘
toString() 把當(dāng)前復(fù)數(shù)對(duì)象的實(shí)部,虛部組合成a+bi的字符串形式
根據(jù)復(fù)數(shù)運(yùn)算的加減乘三個(gè)功能進(jìn)行代碼設(shè)計(jì)。敲出產(chǎn)品代碼
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() + " = " + a.complexAdd(b).toString()); System.out.println(a.toString() + " + " + z + " = " + a.complexAdd(z).toString());System.out.println(a.toString() + " - " + b.toString() + " = " + a.complexMinus(b).toString()); System.out.println(a.toString() + " - " + z + " = " + a.complexMinus(z).toString());System.out.println(a.toString() + " * " + b.toString() + " = " + a.complexMinus(b).toString()); System.out.println(a.toString() + " * " + z + " = " + a.complexMulti(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" + ")";} }完成后進(jìn)行測(cè)試代碼:
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 = a.complexAdd(b);if(x.getRealPart() !=25.0 )System.out.println("test failed 1!");x = a.complexAdd(z);if(x.getRealPart() !=30.0 )System.out.println("test failed 11!");x = a.complexAdd(b);if( x.getImaginaryPart()!=15.0 )System.out.println("test failed 2!");x = a.complexAdd(z);if( x.getImaginaryPart()!=10.0 )System.out.println("test failed 22!");x = a.complexMinus(b);if( x.getRealPart()!=15.0 )System.out.println("test failed 3!");x = a.complexMinus(z);if( x.getRealPart()!=10.0 )System.out.println("test failed 33!");x = a.complexMinus(b);if( x.getImaginaryPart()!=5.0 )System.out.println("test failed 4!");x = a.complexMinus(z);if( x.getImaginaryPart()!=10.0 )System.out.println("test failed 44!");x = a.complexMulti(b);if( x.getRealPart() !=50.0 )System.out.println(x.getRealPart()+"test failed 5!");x = a.complexMulti(z);if( x.getRealPart() !=200.0 )System.out.println("test failed 55!");x = a.complexMulti(b); if( x.getImaginaryPart()!=150.0 )System.out.println("test failed 6!");x = a.complexMulti(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" + ")";} }運(yùn)行的時(shí)候出現(xiàn)了問(wèn)題!
找到出錯(cuò)的地方,將關(guān)于復(fù)數(shù)乘法的代碼改為:
ComplexNumber complexMulti(ComplexNumber c) { return new ComplexNumber( this.realpart * c.getRealPart() - this.imaginpart * c.getImaginaryPart(), this.realpart * c.getImaginaryPart() + this.imaginpart * c.getRealPart()); }成功!
實(shí)驗(yàn)問(wèn)題和解決方法
實(shí)驗(yàn)過(guò)程關(guān)于復(fù)數(shù)算法出現(xiàn)了一些錯(cuò)誤,但寫(xiě)了測(cè)試代碼后成功進(jìn)行了修改。還有如果用debug的話可能方便一些。
測(cè)試代碼的好處
使用測(cè)試代碼后會(huì)減少程序出現(xiàn)的bug,在符合客戶需求的情況下使代碼更加完善,也能鍛煉我們的思維,增強(qiáng)我們認(rèn)真負(fù)責(zé)的意識(shí),一舉多得。
轉(zhuǎn)載于:https://www.cnblogs.com/20145122chengzhiyin/p/5389253.html
總結(jié)
以上是生活随笔為你收集整理的20145122《Java面向对象程序设计》实验二实验报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: graalvm 简单试用
- 下一篇: Java怎样处理EXCEL的读取