版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 一、前言</b></p><p> 經(jīng)過一年的C++程序語言的學(xué)習(xí),我充分培養(yǎng)了我在這門課上的學(xué)習(xí)興趣。上學(xué)期由于條件限制,這門課的學(xué)習(xí)學(xué)習(xí)較為落后,以至于考試成績很不理想。這學(xué)期有了電腦,學(xué)習(xí)起來輕松多了,</p><p> 因為這門課有個最大的特點那就是:如果你有不懂的,不用問老師,問計算機就行了。一個多月前,《C++程序設(shè)計課程
2、設(shè)計》學(xué)習(xí)任務(wù)的下達(dá)讓我有喜有憂。喜的是我可以較為全面的考察一下我的學(xué)習(xí)知識的情況,憂的是我覺得太有挑戰(zhàn),不覺得自己有能力獨立完成。經(jīng)過深思熟慮,我選擇了第14道題——《復(fù)數(shù)類》。此題較為全面的考察了類和運算符重載以及許多C++基礎(chǔ)知識。通過長達(dá)8個小時的編寫、運行、調(diào)試、測試,最終完成!</p><p><b> 需求分析</b></p><p> 根據(jù)題目要求
3、,大可分題目目標(biāo)兩個:</p><p> 建立復(fù)數(shù)類Complex以及復(fù)數(shù)類的信息初始化和輸出;</p><p> 實現(xiàn)復(fù)數(shù)的基礎(chǔ)數(shù)學(xué)運算。</p><p> 分析解決問題所需的元素:</p><p> 建立復(fù)數(shù)類protected元素的數(shù)據(jù)類型應(yīng)為double型;</p><p> public中的函數(shù)的返
4、回值應(yīng)為復(fù)數(shù)類,所以函數(shù)的類型 </p><p> 應(yīng)該是Complex類,且應(yīng)該有14個;</p><p> 在進行構(gòu)造自加、自減、乘方運算的函數(shù)時不可能帶 </p><p> 參數(shù),故應(yīng)使用*this(this指針);</p><p> 我編寫此程序應(yīng)該是中學(xué)教師辦公或者學(xué)生學(xué)習(xí)所 </p><p>
5、; 用 ,所以在之后的代碼部分我有較為詳細(xì)的注釋。</p><p><b> 概要設(shè)計</b></p><p> 列出我的程序流程簡圖(如下):</p><p><b> 代碼大體格式:</b></p><p> #include<iostream.h></p>
6、<p> class Complex</p><p> {double real,image;</p><p><b> public:</b></p><p> ...14個函數(shù)...</p><p><b> };</b></p><p> int
7、main ()</p><p> {Complex c1(1,2),c2(3,4),c3,...;</p><p> 調(diào)用前面的函數(shù),實現(xiàn)數(shù)學(xué)基本運算的要求...</p><p><b> return 0;</b></p><p><b> }</b></p><p&g
8、t;<b> 詳細(xì)設(shè)計</b></p><p><b> ?。ùa):</b></p><p> #include <iostream.h></p><p> class Complex</p><p><b> {</b></p><p
9、> protected:</p><p> double real,image;</p><p><b> public:</b></p><p> Complex(double r=0,double i=0):real(r),image(i){} //復(fù)數(shù)類的數(shù)據(jù)初始化。</p><p> doubl
10、e Real(){return real;}</p><p> double Image(){return image;}</p><p> Complex Jueduizhi(); //各種運算函數(shù)。</p><p> Complex operator+(Complex &);</p>
11、<p> Complex operator+(double);</p><p> Complex operator-(Complex &);</p><p> Complex operator-(double);</p><p> Complex operator*(Complex &);</p><p>
12、 Complex operator/(Complex &);</p><p> Complex operator++();</p><p> Complex operator--();</p><p> Complex Chengfang(int);</p><p> Complex operator=(Complex);&l
13、t;/p><p><b> };</b></p><p> Complex Complex::Jueduizhi()</p><p><b> {</b></p><p> Complex temp;</p><p> temp.real=(real>=0)?re
14、al:-real;</p><p> temp.image=(image>=0)?image:-image;</p><p> return temp;</p><p><b> }</b></p><p> Complex Complex::operator+(Complex &c)</p&
15、gt;<p><b> {</b></p><p> Complex temp;</p><p> temp.real=real+c.real;</p><p> temp.image=image+c.image;</p><p> return temp;</p><p>
16、;<b> }</b></p><p> Complex Complex::operator+(double d)</p><p><b> {</b></p><p> Complex temp;</p><p> temp.real=real+d;</p><p&g
17、t; temp.image=image;</p><p> return temp;</p><p><b> }</b></p><p> Complex Complex::operator-(Complex &c)</p><p><b> {</b></p>&
18、lt;p> Complex temp;</p><p> temp.real=real-c.real;</p><p> temp.image=image-c.image;</p><p> return temp;</p><p><b> }</b></p><p> Com
19、plex Complex::operator-(double d)</p><p><b> {</b></p><p> Complex temp;</p><p> temp.real=real-d;</p><p> temp.image=image;</p><p> retur
20、n temp;</p><p><b> }</b></p><p> Complex Complex::operator*(Complex &c)</p><p><b> {</b></p><p> Complex temp;</p><p> if(
21、c.real!=0&&c.image!=0)</p><p><b> {</b></p><p> temp.real=real*c.real-image*c.image;</p><p> temp.image=real*c.image+image*c.real;</p><p><b&g
22、t; }</b></p><p> return temp;</p><p><b> }</b></p><p> Complex Complex::operator/(Complex &c)</p><p><b> {</b></p><p&g
23、t; Complex temp;</p><p> if(c.real!=0&&c.image!=0)</p><p><b> {</b></p><p> temp.real=(1/(c.real*c.real+c.image*c.image))*(real*c.real+image*c.image);</p&
24、gt;<p> temp.image=(1/(c.real*c.real+c.image*c.image))*(image*c.real-real*c.image);</p><p><b> }</b></p><p> return temp;</p><p><b> }</b></p&g
25、t;<p> Complex Complex::Chengfang(int n)</p><p><b> {</b></p><p> Complex temp;</p><p> temp=*this;</p><p> for(int i=1;i<n;i++)</p>&
26、lt;p><b> {</b></p><p> temp=(*this)*temp;</p><p><b> }</b></p><p> return temp;</p><p><b> }</b></p><p> Compl
27、ex Complex::operator++()</p><p><b> {</b></p><p> Complex temp;</p><p> temp=*this;</p><p> temp.real=++(*this).real;</p><p> temp.image=+
28、+(*this).image;</p><p> return temp;</p><p><b> }</b></p><p> Complex Complex::operator--()</p><p><b> {</b></p><p> Complex t
29、emp;</p><p> temp=*this;</p><p> temp.real=--(*this).real;</p><p> temp.image=--(*this).image;</p><p> return temp;</p><p><b> }</b></p
30、><p> Complex Complex::operator=(Complex c)</p><p><b> {</b></p><p> real=c.real;</p><p> image=c.image;</p><p> return *this;</p><
31、;p><b> }</b></p><p> int main ()</p><p><b> {</b></p><p> Complex c1(1,2),c2(3,4),c3,c4,c5,c6,c7,c8,c9,c10;</p><p> cout<<"c1
32、="<<c1.Real()<<"+"<<c1.Image()<<"i"<<endl;</p><p> cout<<"c2="<<c2.Real()<<"+"<<c2.Image()<<"i&q
33、uot;<<endl;</p><p> c3=c2.Jueduizhi();</p><p> cout<<"|c2|="<<c3.Real()<<"+"<<c3.Image()<<"i"<<endl;</p><p>
34、;<b> c4=c1+c2;</b></p><p> cout<<"c1+c2="<<c4.Real()<<"+"<<c4.Image()<<"i"<<endl;</p><p><b> c5=c2-c1;</
35、b></p><p> cout<<"c2-c1="<<c5.Real()<<"+"<<c5.Image()<<"i"<<endl;</p><p><b> c6=c1*c2;</b></p><p>
36、 cout<<"c1*c2="<<c6.Real()<<"+"<<c6.Image()<<"i"<<endl;</p><p><b> c7=c2/c1;</b></p><p> cout<<"c2/c1=
37、"<<c7.Real()<<"+"<<c7.Image()<<"i"<<endl;</p><p> c8=c1.Chengfang(5);</p><p> cout<<"c1^5="<<c8.Real()<<"
38、;+"<<c8.Image()<<"i"<<endl;</p><p><b> c9=c1++;</b></p><p> cout<<"c1++="<<c9.Real()<<"+"<<c9.Image()&l
39、t;<"i"<<endl;</p><p><b> c10=c2--;</b></p><p> cout<<"c2--="<<c10.Real()<<"+"<<c10.Image()<<"i"<&l
40、t;endl;</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> 測試</b></p><p> 當(dāng)把程序做出來后,如釋重負(fù)啊,心中特別的高興,對一些知識點有了一定的復(fù)習(xí)。然后擺在當(dāng)前的一個主要任務(wù)就是
41、對運行程序的結(jié)果進行截圖。剛開始不會截圖,于是向同學(xué)請教,結(jié)果學(xué)的不是很理想,截出來的效果不好。最后突然間想起了一個簡便的辦法,那就是QQ截圖,通過QQ截圖,截了一張運行結(jié)果的圖,完成了運行結(jié)果及分析部分。</p><p><b> 總結(jié)</b></p><p> 在粗略地瀏覽了相關(guān)知識后,然后我開始思考著手編寫程序的相關(guān)事宜。然后根據(jù)所選課設(shè)題目中老師給的相關(guān)提
42、示,確定了編寫程序的一個基本思路,對程序畫了一個大概的結(jié)構(gòu)框架圖。有了大概的思路后,我根據(jù)事先畫好的結(jié)構(gòu)框圖正式著手編寫程序。我采取獨立編寫然后匯總的模式進行。2小時的自力更生,艱苦奮斗,我將程序?qū)懲?,接著進行程序的整理。發(fā)現(xiàn)我編寫的程序算法部分有缺陷。我決定把這個代碼用計算機執(zhí)行。調(diào)試過程是最煩人的了,各種問題都不斷地出現(xiàn),都不知道錯誤咋就那么多呢。逗號分號,大寫小寫,這些都是些基本的小錯誤,由于我馬虎,弄得自己懷疑自己是怎么學(xué)的。于
43、是我調(diào)動了手中一切可以利用的資源,靜下心來,堅信明天會更好。比較高興的事,在經(jīng)過幾番的探索之后,事實如我所愿。截了一張運行結(jié)果圖,完成了運行結(jié)果及分析部分。不過整個過程麻煩眾多,看來有待提升的還有很多。接下來就是完成課程設(shè)計的一些要求,一想到老師和我們比較親近,人比較好,心中就沒有了緊張感。只需能系統(tǒng)地論述自己的程序以及各個部分的原理及其功能,我也就沒什么好害怕的了。好好表現(xiàn),認(rèn)真思考,展現(xiàn)自己的真實實力,我想;這就是對自己最大的鍛煉和
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計--c++程序設(shè)計語言
- c++課程設(shè)計-- c++面向?qū)ο蟪绦蛟O(shè)計
- c++程序設(shè)計課程設(shè)計報告
- 《c++語言程序設(shè)計》課程設(shè)計報告
- 《程序設(shè)計語言(c++)》課程設(shè)計
- c++面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告
- c++課程設(shè)計--程序設(shè)計基礎(chǔ)(cc++)
- c++程序設(shè)計課程設(shè)計--電費管理系統(tǒng)
- 《c++程序設(shè)計》課程設(shè)計報告--訂票系統(tǒng)
- c++程序設(shè)計課程設(shè)計--電費管理系統(tǒng)
- c++程序設(shè)計 課程大綱
- c++課程設(shè)計--學(xué)生選課系統(tǒng)程序設(shè)計報告
- c++課程設(shè)計-學(xué)生選課系統(tǒng)程序設(shè)計文檔
- 《c++程序設(shè)計》課程設(shè)計--學(xué)生學(xué)籍管理系統(tǒng)
- c++程序設(shè)計課程設(shè)計---公司人員管理系統(tǒng)
- c++課程設(shè)計--學(xué)生選課系統(tǒng)程序設(shè)計報告
- c++程序設(shè)計課程-說課
- c++程序設(shè)計課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 《高級語言程序設(shè)計》c++課程設(shè)計數(shù)值微分
- c++程序設(shè)計課程設(shè)計---學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論