版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中南大學(xué)高級程序設(shè)計實踐(C+)課程設(shè)計報告題 目 復(fù)數(shù)計算器 學(xué)生姓名 指導(dǎo)教師 陳麗萍 學(xué) 院 信息科學(xué)與工程學(xué)院 專業(yè)班級 通信工程1301班 完成時間 2014年7月5日 第一章 需求分析與程序設(shè)計1.1 需求分析 111程序設(shè)計的目的與任務(wù)1復(fù)習(xí)和鞏固C+語言的基礎(chǔ)知識,進(jìn)一步加深對C+語言的理解和掌握。2為學(xué)生提供獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學(xué)生獨立分析問題、解決問題、查閱資料以及自學(xué)能力。3學(xué)習(xí)和掌握C+程序設(shè)計方法以及上機調(diào)試技巧,為今后學(xué)習(xí)其它專業(yè)課程打好基礎(chǔ)。4在程序?qū)崿F(xiàn)過程中,需利用面向?qū)ο蟪绦蛟O(shè)計理論的基礎(chǔ)知識,充分體現(xiàn)出C+語言關(guān)于類、
2、繼承、封裝與多態(tài)等核心概念,每一個類應(yīng)包含數(shù)據(jù)成員和成員函數(shù),以實現(xiàn)預(yù)期的功能,解決實際問題。112“復(fù)數(shù)計算器”程序所能實現(xiàn)的功能 1建立實數(shù)類、復(fù)數(shù)類,復(fù)數(shù)類由實數(shù)類公有繼承而來。2實現(xiàn)實數(shù)、復(fù)數(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)復(fù)數(shù)的相關(guān)運算,包括:兩個復(fù)數(shù)間的加、減、乘、除、求兩個復(fù)數(shù)的夾角和一個復(fù)數(shù)的取模、求平方、求共軛復(fù)數(shù)、求單個復(fù)數(shù)的向量角等運算。5通過調(diào)用相關(guān)函數(shù)實現(xiàn)實數(shù)、復(fù)數(shù)信息的輸出,顯示在顯示屏上。6通過多次運用選擇和循環(huán)結(jié)構(gòu)實現(xiàn)對實
3、數(shù)、復(fù)數(shù)運算的選擇,在選擇了實數(shù)或復(fù)數(shù)運算的前提下,再實現(xiàn)對各種運算的選擇,運算結(jié)束后還可以選擇繼續(xù)實現(xiàn)其它運算或退出程序。1.2 程序設(shè)計121概要設(shè)計 1系統(tǒng)中的各個實體及它們之間的關(guān)系 系統(tǒng)中的實體是實數(shù)類對象和復(fù)數(shù)類對象,它們的關(guān)系是復(fù)數(shù)類對象所屬的類是由實數(shù)類對象所屬的類公有派生而來的。2系統(tǒng)的類層次程序中建立了兩個類,分別是實數(shù)類、復(fù)數(shù)類,復(fù)數(shù)類是由實數(shù)類公有派生而來的。3主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系首先從鍵盤輸入數(shù)字1或2或0,輸入不同數(shù)字則進(jìn)入不同的并列的小程序模塊。若輸入1,則進(jìn)行實數(shù)相關(guān)運算,再輸入1-8選擇具體運算,此時會調(diào)用實數(shù)類中的相關(guān)成員函數(shù),運
4、算出正確結(jié)果,運算結(jié)束后,則會進(jìn)入循環(huán)結(jié)構(gòu),進(jìn)行下一次選擇及運算。若輸入2,則進(jìn)行復(fù)數(shù)相關(guān)運算,再輸入1-9選擇具體運算,此時會調(diào)用復(fù)數(shù)類中的相關(guān)成員函數(shù),運算出正確結(jié)果,運算結(jié)束后,則會進(jìn)入循環(huán)結(jié)構(gòu),進(jìn)行下一次選擇及運算。若輸入0,則將退出復(fù)數(shù)計算器系統(tǒng)。122詳細(xì)設(shè)計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ù):double c
5、heng(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() 復(fù)數(shù)類 數(shù)據(jù)成員(都屬于私有數(shù)據(jù)成員):double imag 成員函數(shù)(都屬于公有成員函數(shù)): 構(gòu)造函數(shù):Complex() Complex(double r,double i) 重載“+”函數(shù):Complex operator+(Complex &a
6、mp;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() 取共軛復(fù)數(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;double c
8、heng(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 a;do
9、uble kaifang()/一個實數(shù)的二次方根函數(shù)double a;a=sqrt(real);return a;void input()/實數(shù)的輸入函數(shù)cout<<"請輸入一個實數(shù):"<<""cin>>real; double output()/實數(shù)的輸出函數(shù)return real;復(fù)數(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()/復(fù)數(shù)的輸入函數(shù)cout<
10、;<"請輸入一個復(fù)數(shù)的實部:"<<""cin>>real;cout<<"請輸入一個復(fù)數(shù)的虛部:"<<""cin>>imag;Complex operator+(Complex &c2)/重載"+"用于兩復(fù)數(shù)相加Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;Complex operator-(Complex &c2)/重載"-"
11、;用于兩復(fù)數(shù)相減Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;Complex operator*(Complex &c2)/重載"*"用于兩復(fù)數(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)/重載"/"用于兩復(fù)數(shù)相除Complex c;c.real=(real*c2.real+ima
12、g*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()/一個復(fù)數(shù)取模函數(shù)double a;a=sqrt(real*real+imag*imag);return a;Complex pf()/一個復(fù)數(shù)的平方函數(shù)Complex c;c.real=real*real-imag*imag;c.imag=2*real*imag;return c;Complex gonge()/一個復(fù)數(shù)的共
13、軛復(fù)數(shù)函數(shù)Complex c;c.real=real;c.imag=0-imag;return c;double xiangliangjiao()/單個復(fù)數(shù)的向量角函數(shù)double a;a=atan(imag/real)*57.295;return a;double jiajiao(Complex &c2)/兩個復(fù)數(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
14、,Complex&c)/重載"<<"用于復(fù)數(shù)的輸出output<<c.real;if(c.imag>=0)output<<"+"output<<c.imag<<"i"<<endl;return output;3 主程序和重要模塊的算法調(diào)試程序后,顯示屏?xí)@示文字提醒計算器使用者輸入數(shù)字0或1或2,使用者需根據(jù)提示輸入相關(guān)數(shù)據(jù)。部分相關(guān)程序代碼如下:cout<<"【歡迎使用復(fù)數(shù)運算器】"<<endl;gg:
15、cout<<"請輸入0或1或2"<<endl; cout<<"【0】退出復(fù)數(shù)計算器;"<<endl;cout<<"【1】進(jìn)行實數(shù)相關(guān)運算;"<<endl;cout<<"【2】進(jìn)行復(fù)數(shù)相關(guān)運算:"<<""cin>>a;若計算器使用者輸入1,則選擇了實數(shù)的相關(guān)運算,系統(tǒng)會提示輸入數(shù)字1-8,1-8分別對應(yīng)兩個實數(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進(jìn)行選擇:"<<""cin>>b;if(b=1|b=2|b=3|b=4)cout<<"請輸入2
17、個實數(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;case 2
18、: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(b=5|b
19、=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()<<end
20、l;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,則選擇了復(fù)數(shù)的相關(guān)運算,系統(tǒng)會提示輸入數(shù)字1-9,1-9分別對應(yīng)兩個復(fù)數(shù)間的相加、相減、相乘、
21、相除、夾角和一個復(fù)數(shù)的取模、平方、向量角、共軛復(fù)數(shù)等運算,使用者需根據(jù)提示輸入1-9,再通過從鍵盤鍵入分別輸入實部和虛部輸入一個或兩個復(fù)數(shù),按回車鍵后即可得到正確結(jié)果。部分相關(guān)程序代碼如下:if(a=2)cout<<"1.相加 2.相減 3.相乘 4.相除 5.兩個復(fù)數(shù)的夾角 (兩個復(fù)數(shù)間的運算)"<<endl;cout<<"6.取模 7.平方 8.一個復(fù)數(shù)的向量角 9.共軛復(fù)數(shù) (一個復(fù)數(shù)的運算)"<<endl;cout<<"輸入數(shù)字1-9進(jìn)行選擇:"<<&qu
22、ot;"cin>>b;if(b=1|b=2|b=3|b=4|b=5)cout<<"請輸入2個復(fù)數(shù):"<<""<<""<<endl;c1.setnumber();c2.setnumber();cout<<"第1個復(fù)數(shù)是:"<<c1;cout<<"第2個復(fù)數(shù)是:"<<c2;switch(b)case 1:cout<<"相加結(jié)果是:"<<c1
23、+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<<"這兩個復(fù)數(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個復(fù)數(shù):"<<""<<endl;c1.setnumber();cout<<"輸入的復(fù)數(shù)是:"<<c1;switch(b)case 6:cout<<"取模結(jié)果是:"<
25、;<c1.qumo()<<endl;break; case 7:cout<<"平方結(jié)果是:"<<c1.pf()<<endl;break;case 8:cout<<"該復(fù)數(shù)的向量角是:"<<c1.xiangliangjiao()<<"°"<<endl;break;case 9:cout<<"該復(fù)數(shù)的共軛復(fù)數(shù)是:"<<c1.gonge()<<endl;break;defau
26、lt:cout<<"error"<<endl;break;cout<<endl;goto gg;若計算器使用者輸入0,再按任意鍵后,即可退出復(fù)數(shù)計算器。此過程是通過運用if判斷語句和switch選擇語句而實現(xiàn)的。部分相關(guān)程序代碼如下:if(a=0) cout<<"【謝謝使用!按任意鍵后,您將退出復(fù)數(shù)計算器】"<<endl;exit(0);若第一次計算器使用者輸入1或2且一次運算結(jié)束后,系統(tǒng)會再次提醒輸入0或1或2,即可進(jìn)行下一次運算;若第一次計算器使用者輸入0,則會退出系統(tǒng)。此過程是通過運用go
27、to循環(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ù)輸入函數(shù),2次輸
28、出函數(shù),1次相減函數(shù)調(diào)用2次實數(shù)輸入函數(shù),2次輸出函數(shù),1次相加函數(shù)輸出結(jié)果3 圖2 程序圖分圖2 輸入2輸入數(shù)字1-99876543321調(diào)用1次復(fù)數(shù)輸入函數(shù),1次求共軛復(fù)數(shù)函數(shù)調(diào)用2次復(fù)數(shù)輸入函數(shù),1次復(fù)數(shù)相加函數(shù)調(diào)用2次復(fù)數(shù)輸入函數(shù),1次復(fù)數(shù)相減函數(shù)調(diào)用2次復(fù)數(shù)輸入函數(shù),1次求兩復(fù)數(shù)夾角函數(shù)調(diào)用2次復(fù)數(shù)輸入函數(shù),1次復(fù)數(shù)相乘函數(shù)調(diào)用1次復(fù)數(shù)輸入函數(shù),1次求單個復(fù)數(shù)向量角函數(shù)調(diào)用1次復(fù)數(shù)輸入函數(shù),1次復(fù)數(shù)平方函數(shù)調(diào)用1次復(fù)數(shù)輸入函數(shù),1次取模函數(shù)調(diào)用2次復(fù)數(shù)輸入函數(shù),1次復(fù)數(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)試過程中,當(dāng)算一個復(fù)數(shù)的向量角時,算出的度數(shù)不對,經(jīng)認(rèn)真檢查后,發(fā)現(xiàn)是沒有將弧度轉(zhuǎn)化為度數(shù),只需在原始結(jié)果后乘57.295即可得到正確結(jié)果。 當(dāng)算兩個復(fù)數(shù)的夾角時,有時運行結(jié)果出現(xiàn)負(fù)角,但兩個復(fù)數(shù)的夾角不可能是負(fù)的,經(jīng)仔細(xì)思考后,在原始結(jié)果前加fabs取絕對值,即可得到正確結(jié)果。 3循環(huán)結(jié)構(gòu)不恰當(dāng) 調(diào)試過程中,剛開始每進(jìn)行一種運算后,就會退出系統(tǒng),若想要進(jìn)行下一次運算,
30、必須重新調(diào)試,這樣不太方便,最終經(jīng)過思考,我在main函數(shù)中加入了一個goto循環(huán)結(jié)構(gòu)和exit退出語句,有了這些修改后,在每次運算結(jié)束后,可以選擇繼續(xù)進(jìn)行下一次運算,或是退出系統(tǒng),這樣比較方便。2.1.2測試結(jié)果(鑒于許多運算功能原理相似,以下只列出部分功能的測試結(jié)果) 1.求兩個實數(shù)相乘的結(jié)果:2. 求一個實數(shù)自減的結(jié)果3. 求一個實數(shù)平方的結(jié)果:4. 求一個實數(shù)的二次方根:5. 求兩個復(fù)數(shù)相除的結(jié)果:6. 求兩個復(fù)數(shù)的夾角:7. 求一個復(fù)數(shù)的模:8.求一個復(fù)數(shù)的向量角:9. 求一個復(fù)數(shù)的共軛復(fù)數(shù):22課程設(shè)計總結(jié)2.2.1課設(shè)總結(jié)在這次程序設(shè)計的過程中,我遇到了很多問題,同時也收獲了不少
31、,成長了不少。一拿到題目我就非常緊張,害怕自己做不出來,焦慮的情緒讓我浪費了好多時間,這讓我懂得在生活中遇到問題時,要有良好的心態(tài),一定要鎮(zhèn)定自若,千萬不能驚慌失措。當(dāng)我花了好久,終于辛辛苦苦設(shè)計出了算法,編寫好程序,可是當(dāng)調(diào)試時,出現(xiàn)了很多問題,如:調(diào)試過程中出現(xiàn)錯誤,程序不能正常運行,經(jīng)認(rèn)真檢查和思考后發(fā)現(xiàn)是頭文件中缺少#include<cmath>;還有調(diào)試過程中,當(dāng)算一個復(fù)數(shù)的向量角時,算出的度數(shù)不對,經(jīng)認(rèn)真檢查后,發(fā)現(xiàn)是沒有將弧度轉(zhuǎn)化為度數(shù),只需在原始結(jié)果后乘57.295即可得到正確結(jié)果;當(dāng)算兩個復(fù)數(shù)的夾角時,有時運行結(jié)果出現(xiàn)負(fù)角,但兩個復(fù)數(shù)的夾角不可能是負(fù)的,經(jīng)仔細(xì)思考
32、后,在原始結(jié)果前加fabs取絕對值,即可得到正確結(jié)果;還有調(diào)試過程中,剛開始每進(jìn)行一種運算后,就會退出系統(tǒng),若想要進(jìn)行下一次運算,必須重新調(diào)試,這樣不太方便,最終經(jīng)過思考,我在main函數(shù)中加入了一個goto循環(huán)結(jié)構(gòu)和exit退出語句,有了這些修改后,在每次運算結(jié)束后,可以選擇繼續(xù)進(jìn)行下一次運算,或是退出系統(tǒng),這樣比較方便?;仡^檢查錯誤,修改程序的過程,又讓我花費了好多時間和精力,這讓我知道做任何事都要有嚴(yán)謹(jǐn)?shù)膽B(tài)度,并考慮到結(jié)果。在完善程序的過程中,我也學(xué)會了如何快速尋找錯誤并改正,還讓我做任何事更有耐心。當(dāng)我遇到問題不能自己獨立解決時,我求助了同學(xué),這也讓我深刻懂得,在必要的時候我們可以求助
33、他人,同樣可以得到好的結(jié)果,但大部分還是要靠自己的力量解決問題。在這次課程設(shè)計中,我設(shè)計了一個較大的程序后,我對書本上的理論知識有了更全面、深刻的理解,同時也鍛煉了我的動手能力、實踐能力、將課本知識運用到實際生活中的能力。雖然這次程序設(shè)計的過程很艱難,但最終我成功了,我覺得一切的努力都是值得的。 第三章 參考文獻(xiàn) 1C+程序設(shè)計 2C+程序設(shè)計實驗上機與指導(dǎo) 第四章 附錄#include<iostream.h>#include<string>#include<cmath>class Simpleprotected:double real;public:Sim
34、ple()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)/兩個實數(shù)相除
35、函數(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()/復(fù)數(shù)的輸入函數(shù)cout<<"請輸入一個復(fù)數(shù)的實部:"<<""cin>&g
37、t;real;cout<<"請輸入一個復(fù)數(shù)的虛部:"<<""cin>>imag;Complex operator+(Complex &c2)/重載"+"用于兩復(fù)數(shù)相加Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;Complex operator-(Complex &c2)/重載"-"用于兩復(fù)數(shù)相減Complex c;c.real=real-c2.real;c.imag=imag-c2.imag
38、;return c;Complex operator*(Complex &c2)/重載"*"用于兩復(fù)數(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)/重載"/"用于兩復(fù)數(shù)相除Complex c;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=(imag
39、*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return c;double qumo()/一個復(fù)數(shù)取模函數(shù)double a;a=sqrt(real*real+imag*imag);return a;Complex pf()/一個復(fù)數(shù)的平方函數(shù)Complex c;c.real=real*real-imag*imag;c.imag=2*real*imag;return c;Complex gonge()/一個復(fù)數(shù)的共軛復(fù)數(shù)函數(shù)Complex c;c.real=real;c.imag=0-imag;return c;double
40、xiangliangjiao()/單個復(fù)數(shù)的向量角函數(shù)double a;a=atan(imag/real)*57.295;return a;double jiajiao(Complex &c2)/兩個復(fù)數(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)/重載"<<"用于復(fù)數(shù)的輸出output<&
41、lt;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<<"【歡迎使用復(fù)數(shù)運算器】"<<endl; gg: cout<<"請輸入0或1或2"<<endl;cout<<"【0】退出復(fù)數(shù)計算器;"
42、<<endl;cout<<"【1】進(jìn)行實數(shù)相關(guān)運算;"<<endl;cout<<"【2】進(jìn)行復(fù)數(shù)相關(guān)運算:"<<"" cin>>a;if(a=1)cout<<"1.相加 2.相減 3.相乘 4.相除 (兩個實數(shù)間的運算)"<<endl;cout<<"5.自加 6.自減 7.平方 8.二次方根 (一個實數(shù)的運算)"<<endl;cout<<"輸入數(shù)字1-8進(jìn)
43、行選擇:"<<""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;switc
44、h(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)<<endl;bre
45、ak;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.zijia()&l
46、t;<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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二零二五民間借貸合同風(fēng)險評估與管理范本4篇
- 二零二五年度抹灰工程綠色施工與環(huán)保合同4篇
- 二零二五年度教育培訓(xùn)場地租賃合同模板4篇
- 2025年度派駐技術(shù)支持服務(wù)合同模板范本4篇
- 2025年度個人二手房交易糾紛調(diào)解服務(wù)合同
- 2025年建筑工程施工項目經(jīng)理勞動合同模板2篇
- 二零二五醫(yī)療治療期間員工勞動合同補充協(xié)議3篇
- 二零二五年度新型農(nóng)村合作社勞動者勞動合同書
- 2025年度智能家居系統(tǒng)安裝與維護個人房屋裝修合同標(biāo)準(zhǔn)范本2篇
- 2024版預(yù)售房屋購買合同書
- GB/T 43650-2024野生動物及其制品DNA物種鑒定技術(shù)規(guī)程
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 暴發(fā)性心肌炎查房
- 口腔醫(yī)學(xué)中的人工智能應(yīng)用培訓(xùn)課件
- 工程質(zhì)保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習(xí)單位鑒定表(模板)
- 數(shù)字媒體應(yīng)用技術(shù)專業(yè)調(diào)研方案
- 2023年常州市新課結(jié)束考試九年級數(shù)學(xué)試卷(含答案)
評論
0/150
提交評論