復數(shù)計算器實驗報告_第1頁
復數(shù)計算器實驗報告_第2頁
復數(shù)計算器實驗報告_第3頁
復數(shù)計算器實驗報告_第4頁
復數(shù)計算器實驗報告_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、復數(shù)計算器中南大學高級程序設計實踐(C+)課程設計報告題 目 復數(shù)計算器 學生姓名 指導教師 陳麗萍 學 院 信息科學與工程學院 專業(yè)班級 通信工程1301班 完成時間 2014年7月5日 第一章 需求分析與程序設計1.1 需求分析 111程序設計的目的與任務1復習和鞏固C+語言的基礎知識,進一步加深對C+語言的理解和掌握。2為學生提供獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學生獨立分析問題、解決問題、查閱資料以及自學能力。3學習和掌握C+程序設計方法以及上機調(diào)試技巧,為今后學習其它專業(yè)課程打好基礎。4在程序?qū)崿F(xiàn)過程中,需利用面向?qū)ο蟪绦蛟O計理論的基礎知識,充分體現(xiàn)出C+語

2、言關(guān)于類、繼承、封裝與多態(tài)等核心概念,每一個類應包含數(shù)據(jù)成員和成員函數(shù),以實現(xiàn)預期的功能,解決實際問題。112“復數(shù)計算器”程序所能實現(xiàn)的功能 1建立實數(shù)類、復數(shù)類,復數(shù)類由實數(shù)類公有繼承而來。2實現(xiàn)實數(shù)、復數(shù)信息的初始化。3通過選擇結(jié)構(gòu)和調(diào)用相關(guān)函數(shù)實現(xiàn)實數(shù)的相關(guān)運算,包括:兩個實數(shù)間的加、減、乘、除和一個實數(shù)的自增、自減、求平方、二次方根等運算。4通過選擇結(jié)構(gòu)和調(diào)用相關(guān)函數(shù)實現(xiàn)復數(shù)的相關(guān)運算,包括:兩個復數(shù)間的加、減、乘、除、求兩個復數(shù)的夾角和一個復數(shù)的取模、求平方、求共軛復數(shù)、求單個復數(shù)的向量角等運算。5通過調(diào)用相關(guān)函數(shù)實現(xiàn)實數(shù)、復數(shù)信息的輸出,顯示在顯示屏上。6通過多次運用選擇和循環(huán)結(jié)

3、構(gòu)實現(xiàn)對實數(shù)、復數(shù)運算的選擇,在選擇了實數(shù)或復數(shù)運算的前提下,再實現(xiàn)對各種運算的選擇,運算結(jié)束后還可以選擇繼續(xù)實現(xiàn)其它運算或退出程序。1.2 程序設計121概要設計 1系統(tǒng)中的各個實體及它們之間的關(guān)系 系統(tǒng)中的實體是實數(shù)類對象和復數(shù)類對象,它們的關(guān)系是復數(shù)類對象所屬的類是由實數(shù)類對象所屬的類公有派生而來的。2系統(tǒng)的類層次程序中建立了兩個類,分別是實數(shù)類、復數(shù)類,復數(shù)類是由實數(shù)類公有派生而來的。3主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系首先從鍵盤輸入數(shù)字1或2或0,輸入不同數(shù)字則進入不同的并列的小程序模塊。若輸入1,則進行實數(shù)相關(guān)運算,再輸入1-8選擇具體運算,此時會調(diào)用實數(shù)類中的相關(guān)成

4、員函數(shù),運算出正確結(jié)果,運算結(jié)束后,則會進入循環(huán)結(jié)構(gòu),進行下一次選擇及運算。若輸入2,則進行復數(shù)相關(guān)運算,再輸入1-9選擇具體運算,此時會調(diào)用復數(shù)類中的相關(guān)成員函數(shù),運算出正確結(jié)果,運算結(jié)束后,則會進入循環(huán)結(jié)構(gòu),進行下一次選擇及運算。若輸入0,則將退出復數(shù)計算器系統(tǒng)。122詳細設計1類層次中各個類的描述實數(shù)類數(shù)據(jù)成員(都屬于保護數(shù)據(jù)成員):double real成員函數(shù)(都屬于公有成員函數(shù)):構(gòu)造函數(shù):Simple() Simple(double r)相加函數(shù):double jia(Simple &s2) 相減函數(shù):double jian(Simple &s2)相乘函數(shù):dou

5、ble cheng(Simple &s2)相除函數(shù):double chu(Simple &s2)自加函數(shù):double zijia()自減函數(shù):double zijian()平方函數(shù):double pingfang()二次方根函數(shù):double kaifang()輸入函數(shù):void input()輸出函數(shù):double output() 復數(shù)類 數(shù)據(jù)成員(都屬于私有數(shù)據(jù)成員):double imag 成員函數(shù)(都屬于公有成員函數(shù)): 構(gòu)造函數(shù):Complex() Complex(double r,double i) 重載“+”函數(shù):Complex operator+(Compl

6、ex &c2) 重載“-”函數(shù):Complex operator-(Complex &c2) 重載“/”函數(shù):Complex operator*(Complex &c2) 重載“*”函數(shù):Complex operator/(Complex &c2) 輸入函數(shù):void setnumber() 取模函數(shù):double qumo() 平方函數(shù):Complex pf() 取共軛復數(shù)函數(shù):Complex gonge() 求向量角函數(shù):double xiangliangjiao() 求夾角函數(shù):double jiajiao(Complex &c2) 重載“<

7、<”函數(shù): friend ostream&operator<<(ostream&output,Complex&c)2 類中各個成員函數(shù)的定義實數(shù)類中成員函數(shù)定義:Simple()double real=0.0;/構(gòu)造函數(shù)Simple(double r)real=r;/構(gòu)造函數(shù)double jia(Simple &s2)/兩個實數(shù)相加函數(shù)double a; a=real+s2.real;return a;double jian(Simple &s2)/兩個實數(shù)相減函數(shù)double a;a=real-s2.real;return a;dou

8、ble cheng(Simple &s2)/兩個實數(shù)相乘函數(shù)double a;a=(real)*(s2.real);return a;double chu(Simple &s2)/兩個實數(shù)相除函數(shù)double a;a=(real)/(s2.real);return a;double zijia()/一個實數(shù)自加函數(shù)double a;a=+real;return a;double zijian()/一個實數(shù)自減函數(shù)double a;a=-real;return a;double pingfang()/一個實數(shù)的平方函數(shù)double a;a=(real)*(real);return

9、 a;double kaifang()/一個實數(shù)的二次方根函數(shù)double a;a=sqrt(real);return a;void input()/實數(shù)的輸入函數(shù)cout<<"請輸入一個實數(shù):"<<""cin>>real; double output()/實數(shù)的輸出函數(shù)return real;復數(shù)類中成員函數(shù)定義:Complex()real=0.0;imag=0.0;/構(gòu)造函數(shù)Complex(double r,double i)real=r;imag=i;/構(gòu)造函數(shù)void setnumber()/復數(shù)的輸入函數(shù)co

10、ut<<"請輸入一個復數(shù)的實部:"<<""cin>>real;cout<<"請輸入一個復數(shù)的虛部:"<<""cin>>imag;Complex operator+(Complex &c2)/重載"+"用于兩復數(shù)相加Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;Complex operator-(Complex &c2)/重載"-

11、"用于兩復數(shù)相減Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;Complex operator*(Complex &c2)/重載"*"用于兩復數(shù)相乘Complex c;c.real=real*c2.real-imag*c2.imag;c.imag=real*c2.imag+imag*c2.real;return c;Complex operator/(Complex &c2)/重載"/"用于兩復數(shù)相除Complex c;c.real=(real*c2.rea

12、l+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return c;double qumo()/一個復數(shù)取模函數(shù)double a;a=sqrt(real*real+imag*imag);return a;Complex pf()/一個復數(shù)的平方函數(shù)Complex c;c.real=real*real-imag*imag;c.imag=2*real*imag;return c;Complex gonge()/一

13、個復數(shù)的共軛復數(shù)函數(shù)Complex c;c.real=real;c.imag=0-imag;return c;double xiangliangjiao()/單個復數(shù)的向量角函數(shù)double a;a=atan(imag/real)*57.295;return a;double jiajiao(Complex &c2)/兩個復數(shù)的夾角函數(shù)double a;a=fabs(atan(imag/real)*57.295-(atan(c2.imag/c2.real)*57.295 return a;friend ostream&operator<<(ostream&o

14、utput,Complex&c)/重載"<<"用于復數(shù)的輸出output<<c.real;if(c.imag>=0)output<<"+"output<<c.imag<<"i"<<endl;return output;3 主程序和重要模塊的算法調(diào)試程序后,顯示屏會顯示文字提醒計算器使用者輸入數(shù)字0或1或2,使用者需根據(jù)提示輸入相關(guān)數(shù)據(jù)。部分相關(guān)程序代碼如下:cout<<"【歡迎使用復數(shù)運算器】"<<endl

15、;gg: cout<<"請輸入0或1或2"<<endl; cout<<"【0】退出復數(shù)計算器;"<<endl;cout<<"【1】進行實數(shù)相關(guān)運算;"<<endl;cout<<"【2】進行復數(shù)相關(guān)運算:"<<""cin>>a;若計算器使用者輸入1,則選擇了實數(shù)的相關(guān)運算,系統(tǒng)會提示輸入數(shù)字1-8,1-8分別對應兩個實數(shù)間的相加、相減、相乘、相除和一個實數(shù)的自加、自減、平方、二次方根等運算,

16、使用者需根據(jù)提示輸入1-8,再從鍵盤輸入一個或兩個實數(shù),按回車鍵后即可得到正確結(jié)果。部分相關(guān)程序代碼如下:if(a=1)cout<<"1.相加 2.相減 3.相乘 4.相除 (兩個實數(shù)間的運算)"<<endl;cout<<"5.自加 6.自減 7.平方 8.二次方根 (一個實數(shù)的運算)"<<endl;cout<<"輸入數(shù)字1-8進行選擇:"<<""cin>>b;if(b=1|b=2|b=3|b=4)cout<<"

17、;請輸入2個實數(shù):"<<""<<""<<endl;s1.input();s2.input();cout<<"第1個實數(shù)是:"<<s1.output()<<endl;cout<<"第2個實數(shù)是:"<<s2.output()<<endl;switch(b)case 1:cout<<"相加結(jié)果是:"<<s1.jia(s2)<<endl;break;c

18、ase 2:cout<<"相減結(jié)果是:"<<s1.jian(s2)<<endl;break;case 3:cout<<"相乘結(jié)果是:"<<s1.cheng(s2)<<endl;break;case 4:cout<<"相除結(jié)果是:"<<s1.chu(s2)<<endl;break;default:cout<<"error"<<endl;break;cout<<endl;if(

19、b=5|b=6|b=7|b=8)cout<<"請輸入1個實數(shù):"<<""<<endl;s1.input();cout<<"輸入的實數(shù)是:"<<s1.output()<<endl;switch(b)case 5:cout<<"自加結(jié)果是:"<<s1.zijia()<<endl;break;case 6:cout<<"自減結(jié)果是:"<<s1.zijian()<&l

20、t;endl;break;case 7:cout<<"平方結(jié)果是:"<<s1.pingfang()<<endl;break;case 8:cout<<"二次方根是:"<<s1.kaifang()<<endl;break;default:cout<<"error"<<endl;break;cout<<endl;goto gg;若計算器使用者輸入2,則選擇了復數(shù)的相關(guān)運算,系統(tǒng)會提示輸入數(shù)字1-9,1-9分別對應兩個復數(shù)間的相加、相

21、減、相乘、相除、夾角和一個復數(shù)的取模、平方、向量角、共軛復數(shù)等運算,使用者需根據(jù)提示輸入1-9,再通過從鍵盤鍵入分別輸入實部和虛部輸入一個或兩個復數(shù),按回車鍵后即可得到正確結(jié)果。部分相關(guān)程序代碼如下:if(a=2)cout<<"1.相加 2.相減 3.相乘 4.相除 5.兩個復數(shù)的夾角 (兩個復數(shù)間的運算)"<<endl;cout<<"6.取模 7.平方 8.一個復數(shù)的向量角 9.共軛復數(shù) (一個復數(shù)的運算)"<<endl;cout<<"輸入數(shù)字1-9進行選擇:"<&l

22、t;""cin>>b;if(b=1|b=2|b=3|b=4|b=5)cout<<"請輸入2個復數(shù):"<<""<<""<<endl;c1.setnumber();c2.setnumber();cout<<"第1個復數(shù)是:"<<c1;cout<<"第2個復數(shù)是:"<<c2;switch(b)case 1:cout<<"相加結(jié)果是:"<&

23、lt;c1+c2<<endl;break;case 2:cout<<"相減結(jié)果是:"<<c1-c2<<endl;break;case 3:cout<<"相乘結(jié)果是:"<<c1*c2<<endl;break;case 4:cout<<"相除結(jié)果是:"<<c1/c2<<endl;break;case 5:cout<<"這兩個復數(shù)的夾角是:"<<c1.jiajiao(c2)<

24、;<"°"<<endl;break;default:cout<<"error"<<endl;break;cout<<endl;if(b=6|b=7|b=8|b=9)cout<<"請輸入1個復數(shù):"<<""<<endl;c1.setnumber();cout<<"輸入的復數(shù)是:"<<c1;switch(b)case 6:cout<<"取模結(jié)果是:&quo

25、t;<<c1.qumo()<<endl;break; case 7:cout<<"平方結(jié)果是:"<<c1.pf()<<endl;break;case 8:cout<<"該復數(shù)的向量角是:"<<c1.xiangliangjiao()<<"°"<<endl;break;case 9:cout<<"該復數(shù)的共軛復數(shù)是:"<<c1.gonge()<<endl;break;

26、default:cout<<"error"<<endl;break;cout<<endl;goto gg;若計算器使用者輸入0,再按任意鍵后,即可退出復數(shù)計算器。此過程是通過運用if判斷語句和switch選擇語句而實現(xiàn)的。部分相關(guān)程序代碼如下:if(a=0) cout<<"【謝謝使用!按任意鍵后,您將退出復數(shù)計算器】"<<endl;exit(0);若第一次計算器使用者輸入1或2且一次運算結(jié)束后,系統(tǒng)會再次提醒輸入0或1或2,即可進行下一次運算;若第一次計算器使用者輸入0,則會退出系統(tǒng)。此過程是通

27、過運用goto循環(huán)語句和if判斷語句而實現(xiàn)的。4 程序運行的流程圖(鑒于程序中用到if判斷語句和switch循環(huán)語句,流程圖中會有較多分支,所以此流程圖將會以三部分的形式呈現(xiàn))從鍵盤輸入數(shù)字0或1或2輸入1輸入2輸入034退出程序 圖1 程序圖分圖1 輸入1輸入數(shù)字1-8876543321調(diào)用1次實數(shù)輸入函數(shù),1次輸出函數(shù),1次二次方根函數(shù)調(diào)用1次實數(shù)輸入函數(shù),1次輸出函數(shù),1次平方函數(shù)調(diào)用1次實數(shù)輸入函數(shù),1次輸出函數(shù),1次相減函數(shù)調(diào)用1次實數(shù)輸入函數(shù),1次輸出函數(shù),1次自加函數(shù)調(diào)用2次實數(shù)輸入函數(shù),2次輸出函數(shù),1次相除函數(shù)調(diào)用2次實數(shù)輸入函數(shù),2次輸出函數(shù),1次相乘函數(shù)調(diào)用2次實數(shù)輸入函

28、數(shù),2次輸出函數(shù),1次相減函數(shù)調(diào)用2次實數(shù)輸入函數(shù),2次輸出函數(shù),1次相加函數(shù)輸出結(jié)果3 圖2 程序圖分圖2 輸入2輸入數(shù)字1-99876543321調(diào)用1次復數(shù)輸入函數(shù),1次求共軛復數(shù)函數(shù)調(diào)用2次復數(shù)輸入函數(shù),1次復數(shù)相加函數(shù)調(diào)用2次復數(shù)輸入函數(shù),1次復數(shù)相減函數(shù)調(diào)用2次復數(shù)輸入函數(shù),1次求兩復數(shù)夾角函數(shù)調(diào)用2次復數(shù)輸入函數(shù),1次復數(shù)相乘函數(shù)調(diào)用1次復數(shù)輸入函數(shù),1次求單個復數(shù)向量角函數(shù)調(diào)用1次復數(shù)輸入函數(shù),1次復數(shù)平方函數(shù)調(diào)用1次復數(shù)輸入函數(shù),1次取模函數(shù)調(diào)用2次復數(shù)輸入函數(shù),1次復數(shù)相乘函數(shù)輸出結(jié)果4 圖3 程序圖分圖3 第二章 調(diào)試與總結(jié)2.1 調(diào)試分析與測試結(jié)果2.1.1調(diào)試過程中遇

29、到的問題及解決方法 1調(diào)試出現(xiàn)錯誤 調(diào)試過程中出現(xiàn)錯誤,不能正常運行,經(jīng)檢查后發(fā)現(xiàn)是代碼中包含的sqrt函數(shù),fabs函數(shù),atan函數(shù)沒有定義,在頭文件中加上#include<cmath>即可正常運行。 2運算結(jié)果不正確 調(diào)試過程中,當算一個復數(shù)的向量角時,算出的度數(shù)不對,經(jīng)認真檢查后,發(fā)現(xiàn)是沒有將弧度轉(zhuǎn)化為度數(shù),只需在原始結(jié)果后乘57.295即可得到正確結(jié)果。 當算兩個復數(shù)的夾角時,有時運行結(jié)果出現(xiàn)負角,但兩個復數(shù)的夾角不可能是負的,經(jīng)仔細思考后,在原始結(jié)果前加fabs取絕對值,即可得到正確結(jié)果。 3循環(huán)結(jié)構(gòu)不恰當 調(diào)試過程中,剛開始每進行一種運算后,就會退出系統(tǒng),若想要進行下

30、一次運算,必須重新調(diào)試,這樣不太方便,最終經(jīng)過思考,我在main函數(shù)中加入了一個goto循環(huán)結(jié)構(gòu)和exit退出語句,有了這些修改后,在每次運算結(jié)束后,可以選擇繼續(xù)進行下一次運算,或是退出系統(tǒng),這樣比較方便。2.1.2測試結(jié)果(鑒于許多運算功能原理相似,以下只列出部分功能的測試結(jié)果) 1.求兩個實數(shù)相乘的結(jié)果:2. 求一個實數(shù)自減的結(jié)果3. 求一個實數(shù)平方的結(jié)果:4. 求一個實數(shù)的二次方根:5. 求兩個復數(shù)相除的結(jié)果:6. 求兩個復數(shù)的夾角:7. 求一個復數(shù)的模:8.求一個復數(shù)的向量角:9. 求一個復數(shù)的共軛復數(shù):22課程設計總結(jié)2.2.1課設總結(jié)在這次程序設計的過程中,我遇到了很多問題,同時也

31、收獲了不少,成長了不少。一拿到題目我就非常緊張,害怕自己做不出來,焦慮的情緒讓我浪費了好多時間,這讓我懂得在生活中遇到問題時,要有良好的心態(tài),一定要鎮(zhèn)定自若,千萬不能驚慌失措。當我花了好久,終于辛辛苦苦設計出了算法,編寫好程序,可是當調(diào)試時,出現(xiàn)了很多問題,如:調(diào)試過程中出現(xiàn)錯誤,程序不能正常運行,經(jīng)認真檢查和思考后發(fā)現(xiàn)是頭文件中缺少#include<cmath>;還有調(diào)試過程中,當算一個復數(shù)的向量角時,算出的度數(shù)不對,經(jīng)認真檢查后,發(fā)現(xiàn)是沒有將弧度轉(zhuǎn)化為度數(shù),只需在原始結(jié)果后乘57.295即可得到正確結(jié)果;當算兩個復數(shù)的夾角時,有時運行結(jié)果出現(xiàn)負角,但兩個復數(shù)的夾角不可能是負的,

32、經(jīng)仔細思考后,在原始結(jié)果前加fabs取絕對值,即可得到正確結(jié)果;還有調(diào)試過程中,剛開始每進行一種運算后,就會退出系統(tǒng),若想要進行下一次運算,必須重新調(diào)試,這樣不太方便,最終經(jīng)過思考,我在main函數(shù)中加入了一個goto循環(huán)結(jié)構(gòu)和exit退出語句,有了這些修改后,在每次運算結(jié)束后,可以選擇繼續(xù)進行下一次運算,或是退出系統(tǒng),這樣比較方便?;仡^檢查錯誤,修改程序的過程,又讓我花費了好多時間和精力,這讓我知道做任何事都要有嚴謹?shù)膽B(tài)度,并考慮到結(jié)果。在完善程序的過程中,我也學會了如何快速尋找錯誤并改正,還讓我做任何事更有耐心。當我遇到問題不能自己獨立解決時,我求助了同學,這也讓我深刻懂得,在必要的時候我

33、們可以求助他人,同樣可以得到好的結(jié)果,但大部分還是要靠自己的力量解決問題。在這次課程設計中,我設計了一個較大的程序后,我對書本上的理論知識有了更全面、深刻的理解,同時也鍛煉了我的動手能力、實踐能力、將課本知識運用到實際生活中的能力。雖然這次程序設計的過程很艱難,但最終我成功了,我覺得一切的努力都是值得的。 第三章 參考文獻 1C+程序設計 2C+程序設計實驗上機與指導 第四章 附錄#include<iostream.h>#include<string>#include<cmath>class Simpleprotected:double real;publi

34、c:Simple()double real=0.0;/構(gòu)造函數(shù)Simple(double r)real=r;/構(gòu)造函數(shù)double jia(Simple &s2)/兩個實數(shù)相加函數(shù)double a; a=real+s2.real; return a;double jian(Simple &s2)/兩個實數(shù)相減函數(shù)double a;a=real-s2.real;return a;double cheng(Simple &s2)/兩個實數(shù)相乘函數(shù)double a;a=(real)*(s2.real);return a;double chu(Simple &s2)/兩

35、個實數(shù)相除函數(shù)double a;a=(real)/(s2.real);return a;double zijia()/一個實數(shù)自加函數(shù)double a;a=+real;return a;double zijian()/一個實數(shù)自減函數(shù)double a;a=-real;return a;double pingfang()/一個實數(shù)的平方函數(shù)double a;a=(real)*(real);return a;double kaifang()/一個實數(shù)的二次方根函數(shù)double a;a=sqrt(real);return a;void input()/實數(shù)的輸入函數(shù)cout<<"

36、;請輸入一個實數(shù):"<<""cin>>real;double output()/實數(shù)的輸出函數(shù)return real;class Complex:public Simpleprivate:double imag;public:Complex()real=0.0;imag=0.0;/構(gòu)造函數(shù)Complex(double r,double i)real=r;imag=i;/構(gòu)造函數(shù)void setnumber()/復數(shù)的輸入函數(shù)cout<<"請輸入一個復數(shù)的實部:"<<""cin&

37、gt;>real;cout<<"請輸入一個復數(shù)的虛部:"<<""cin>>imag;Complex operator+(Complex &c2)/重載"+"用于兩復數(shù)相加Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;Complex operator-(Complex &c2)/重載"-"用于兩復數(shù)相減Complex c;c.real=real-c2.real;c.imag=imag-c2

38、.imag;return c;Complex operator*(Complex &c2)/重載"*"用于兩復數(shù)相乘Complex c;c.real=real*c2.real-imag*c2.imag;c.imag=real*c2.imag+imag*c2.real;return c;Complex operator/(Complex &c2)/重載"/"用于兩復數(shù)相除Complex c;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=

39、(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return c;double qumo()/一個復數(shù)取模函數(shù)double a;a=sqrt(real*real+imag*imag);return a;Complex pf()/一個復數(shù)的平方函數(shù)Complex c;c.real=real*real-imag*imag;c.imag=2*real*imag;return c;Complex gonge()/一個復數(shù)的共軛復數(shù)函數(shù)Complex c;c.real=real;c.imag=0-imag;return c;do

40、uble xiangliangjiao()/單個復數(shù)的向量角函數(shù)double a;a=atan(imag/real)*57.295;return a;double jiajiao(Complex &c2)/兩個復數(shù)的夾角函數(shù)double a;a=fabs(atan(imag/real)*57.295-(atan(c2.imag/c2.real)*57.295);return a;friend ostream&operator<<(ostream&output,Complex&c)/重載"<<"用于復數(shù)的輸出output

41、<<c.real;if(c.imag>=0)output<<"+"output<<c.imag<<"i"<<endl;return output;int main() Simple s1,s2;Complex c1,c2;int a,b;cout<<"【歡迎使用復數(shù)運算器】"<<endl; gg: cout<<"請輸入0或1或2"<<endl;cout<<"【0】退出復數(shù)計算器;&

42、quot;<<endl;cout<<"【1】進行實數(shù)相關(guān)運算;"<<endl;cout<<"【2】進行復數(shù)相關(guān)運算:"<<"" cin>>a;if(a=1)cout<<"1.相加 2.相減 3.相乘 4.相除 (兩個實數(shù)間的運算)"<<endl;cout<<"5.自加 6.自減 7.平方 8.二次方根 (一個實數(shù)的運算)"<<endl;cout<<"輸入數(shù)

43、字1-8進行選擇:"<<""cin>>b;if(b=1|b=2|b=3|b=4)cout<<"請輸入2個實數(shù):"<<""<<""<<endl;s1.input();s2.input();cout<<"第1個實數(shù)是:"<<s1.output()<<endl;cout<<"第2個實數(shù)是:"<<s2.output()<<endl;

44、switch(b)case 1:cout<<"相加結(jié)果是:"<<s1.jia(s2)<<endl;break;case 2:cout<<"相減結(jié)果是:"<<s1.jian(s2)<<endl;break;case 3:cout<<"相乘結(jié)果是:"<<s1.cheng(s2)<<endl;break;case 4:cout<<"相除結(jié)果是:"<<s1.chu(s2)<<end

45、l;break;default:cout<<"error"<<endl;break;cout<<endl;if(b=5|b=6|b=7|b=8)cout<<"請輸入1個實數(shù):"<<""<<endl;s1.input();cout<<"輸入的實數(shù)是:"<<s1.output()<<endl;switch(b)case 5:cout<<"自加結(jié)果是:"<<s1.ziji

46、a()<<endl;break;case 6:cout<<"自減結(jié)果是:"<<s1.zijian()<<endl;break;case 7:cout<<"平方結(jié)果是:"<<s1.pingfang()<<endl;break;case 8:cout<<"二次方根是:"<<s1.kaifang()<<endl;break;default:cout<<"error"<<endl;break;cout<<endl;goto gg;if(a=2)cout<<&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論