《c++程序設(shè)計課程設(shè)計——復(fù)數(shù)類》_第1頁
已閱讀1頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論