2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計報告</b></p><p>  課程設(shè)計題目:有理數(shù)運算</p><p><b>  學(xué)生姓名: </b></p><p>  專 業(yè):軟件工程</p><p><b>  班 級: </b></p><

2、p><b>  學(xué) 號: </b></p><p><b>  指導(dǎo)教師: </b></p><p>  2013年06月20日</p><p><b>  1. 有理數(shù)運算</b></p><p><b>  問題描述</b></p&g

3、t;<p>  有理數(shù)是一個可以化為一個分數(shù)的數(shù),例如2/3,533/920,-12/49都是有理數(shù),而就為無理數(shù)。在C++中,并沒有預(yù)先定義有理數(shù),需要時可以定義一個有理數(shù)類,將有理數(shù)的分子和分母分別存放在兩個整型變量中。對有理數(shù)的各種操作都可以用重載運算符來實現(xiàn)。</p><p><b>  基本要求</b></p><p>  定義并實現(xiàn)一個有理數(shù)

4、類,通過重載運算符+、-、*、/對有理數(shù)進行算術(shù)運算,通過重載運算符==實現(xiàn)判定兩個有理數(shù)是否相等。寫一個優(yōu)化函數(shù),它的作用是使有理數(shù)約去公分母,也即是使保存的有理數(shù)分子和分母之間沒有公約數(shù)(除去1以外)。此外,還要定義一個將有理數(shù)轉(zhuǎn)換為實數(shù)的函數(shù),再加上構(gòu)造函數(shù)和有理數(shù)輸出函數(shù)。</p><p><b>  測試數(shù)據(jù)</b></p><p>  在應(yīng)用程序中,創(chuàng)建若

5、干有理數(shù)對象,通過帶參數(shù)的構(gòu)造函數(shù)使得各有理數(shù)對象值各不相同,然后分別進行各類運算,輸出運算結(jié)果,檢驗其正確性。</p><p><b>  實現(xiàn)提示</b></p><p>  設(shè)有兩個有理數(shù)a/b和c/d,則有:</p><p>  有理數(shù)相加 分子=a*d+b*c;分母=b*d</p><p>  有理數(shù)相減

6、分子=a*d-b*c;分母=b*d</p><p>  有理數(shù)相乘 分子=a*c; 分母=b*d</p><p>  有理數(shù)相除 分子=a*d; 分母=b*c</p><p>  優(yōu)化函數(shù)在創(chuàng)建有理數(shù)對象時應(yīng)執(zhí)行,在執(zhí)行其它各種運算之后也需執(zhí)行它,這樣可保證所存儲的有理數(shù)隨時都是最優(yōu)的。對于判斷兩個有理數(shù)是否相等,由于在對有理數(shù)進行各種運算后都對其進

7、行優(yōu)化,所以判定兩個有理數(shù)是否相等只需判定它們兩個的分子和分母分別相等即可。</p><p><b>  選做內(nèi)容</b></p><p>  重載插入(<<)和提?。?gt;>)運算符,使得對有理數(shù)可以直接輸入輸出。設(shè)有理數(shù)輸入格式為:</p><p>  整數(shù)1 整數(shù)2 //整數(shù)1為分子,整數(shù)2為分母</p

8、><p><b>  有理數(shù)輸出格式為:</b></p><p><b>  分子/分母</b></p><p><b>  以下為代碼</b></p><p>  #include<iostream.h></p><p>  #include&

9、lt;conio.h></p><p>  #include<stdio.h></p><p>  #include<iomanip.h></p><p>  //using namespace std; 刪除此處才能為類定義友元函數(shù)</p><p>  class rationalnumber //定義一個

10、有理數(shù)類</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int fenmu; //有理數(shù)分母</p><p>  int fenzi; //有理數(shù)分子</p><p><b>  public:

11、</b></p><p>  rationalnumber(int a=1,int b=1); //帶默認形參的構(gòu)造函數(shù)</p><p>  void setnumber(int a,int b); //設(shè)置分子分母的函數(shù)</p><p>  rationalnumber operator +(rationalnumber aa); //重載加法運

12、算符</p><p>  rationalnumber operator -(rationalnumber aa); //重載減法運算符</p><p>  rationalnumber operator *(rationalnumber aa); //重載乘法運算符</p><p>  rationalnumber operator /(rationalnum

13、ber aa); //重載除法運算符</p><p>  void display(); //有理數(shù)輸出函數(shù)</p><p>  //friend void add(rationalnumber a,rationalnumber b);</p><p>  friend rationalnumber& yuefen(rationalnumber&

14、; r); //將約分函數(shù)設(shè)為友元函數(shù)</p><p>  friend double zhuan(rationalnumber r); //將有理數(shù)轉(zhuǎn)換成實數(shù)函數(shù)聲明</p><p>  friend istream& operator>>(istream& input,rationalnumber & r); //對輸入流符號的重載為有元函數(shù)<

15、/p><p>  friend ostream& operator<<(ostream& output,rationalnumber & r); //對輸出流符號的重載為友元函數(shù)</p><p>  /*對"<<"和">>"重載的函數(shù)形式如下:只能重載為友元函數(shù)</p><

16、p>  istream & operator>>(istream&,自定義類&);</p><p>  ostream & operator<<(ostream&,自定義類&);*/</p><p><b>  };</b></p><p>  rationalnum

17、ber::rationalnumber(int a,int b)</p><p><b>  {</b></p><p><b>  fenzi=a;</b></p><p><b>  fenmu=b;</b></p><p><b>  }</b>&

18、lt;/p><p>  void rationalnumber::setnumber(int a,int b)</p><p><b>  {</b></p><p><b>  fenzi=a;</b></p><p><b>  fenmu=b;</b></p>

19、<p><b>  }</b></p><p>  rationalnumber rationalnumber::operator +(rationalnumber aa)</p><p><b>  {</b></p><p>  rationalnumber c;</p><p> 

20、 c.fenmu=fenmu*aa.fenmu;</p><p>  c.fenzi=fenzi*aa.fenmu+aa.fenzi*fenmu;</p><p><b>  return c;</b></p><p><b>  }</b></p><p>  rationalnumber rat

21、ionalnumber::operator -(rationalnumber aa)</p><p><b>  {</b></p><p>  rationalnumber c;</p><p>  c.fenmu=fenmu*aa.fenmu;</p><p>  c.fenzi=fenzi*aa.fenmu-aa.

22、fenzi*fenmu;</p><p><b>  return c;</b></p><p><b>  }</b></p><p>  rationalnumber rationalnumber::operator *(rationalnumber aa)</p><p><b> 

23、 {</b></p><p>  rationalnumber c;</p><p>  c.fenmu=fenmu*aa.fenmu;</p><p>  c.fenzi=fenzi*aa.fenzi;</p><p><b>  return c;</b></p><p><

24、b>  }</b></p><p>  rationalnumber rationalnumber::operator /(rationalnumber aa)</p><p><b>  {</b></p><p>  rationalnumber c;</p><p>  c.fenmu=fenmu

25、*aa.fenzi;</p><p>  c.fenzi=fenzi*aa.fenmu;</p><p><b>  return c;</b></p><p><b>  }</b></p><p>  void rationalnumber::display() //有理數(shù)輸出函數(shù)的實現(xiàn)&l

26、t;/p><p><b>  {</b></p><p>  cout<<fenzi<<"/"<<fenmu<<endl;</p><p><b>  }</b></p><p>  ostream & operator<

27、<(ostream& output,rationalnumber & r) //對輸出符號的重載實現(xiàn)</p><p><b>  {</b></p><p>  if(r.fenmu<0)</p><p><b>  {</b></p><p>  r.fenmu=-1*

28、r.fenmu;</p><p>  output<<"-("<<r.fenzi<<"/"<<r.fenmu<<")";</p><p><b>  }</b></p><p>  else if(r.fenzi<0)&

29、lt;/p><p><b>  {</b></p><p>  r.fenzi=-1*r.fenzi;</p><p>  output<<"-("<<r.fenzi<<"/"<<r.fenmu<<")";</p>

30、<p><b>  }</b></p><p><b>  else</b></p><p>  output<<"("<<r.fenzi<<"/"<<r.fenmu<<")";</p>&l

31、t;p>  return output;</p><p><b>  }</b></p><p>  istream & operator>>(istream& input,rationalnumber & r) //對輸入流符號的重載實現(xiàn)</p><p><b>  {</b>&

32、lt;/p><p>  //cout<<"輸入分子和分母:";</p><p>  input>>r.fenzi>>r.fenmu;</p><p>  return input;</p><p><b>  }</b></p><p>  d

33、ouble zhuan(rationalnumber r) //將有理數(shù)轉(zhuǎn)換成實數(shù)的函數(shù)實現(xiàn)</p><p><b>  {</b></p><p>  return static_cast<double>(r.fenzi*1.0)/static_cast<double>(r.fenmu);</p><p><b&

34、gt;  }</b></p><p>  rationalnumber& yuefen(rationalnumber& r) //約分函數(shù)的實現(xiàn)</p><p><b>  {</b></p><p>  int a,b,temp;</p><p>  if(r.fenmu>r.fen

35、zi)</p><p><b>  {</b></p><p>  a=r.fenmu;</p><p>  b=r.fenzi;</p><p><b>  }</b></p><p><b>  else</b></p><p&g

36、t;<b>  {</b></p><p>  a=r.fenzi;</p><p>  b=r.fenmu;</p><p><b>  }</b></p><p>  while(b!=0)</p><p><b>  {</b></p>

37、<p><b>  temp=a%b;</b></p><p><b>  a=b;</b></p><p><b>  b=temp;</b></p><p><b>  }</b></p><p>  r.fenzi=r.fenzi/a;

38、</p><p>  r.fenmu=r.fenmu/a;</p><p><b>  return r;</b></p><p><b>  }</b></p><p>  void add()</p><p><b>  {</b></p>

39、;<p>  rationalnumber a;</p><p>  rationalnumber b;</p><p>  cout<<"進行有理數(shù)的加法運算"<<endl;</p><p>  cout<<"請輸入第一個有理數(shù):";</p><p>

40、<b>  cin>>a;</b></p><p>  cout<<"請輸入第二個有理數(shù):";</p><p><b>  cin>>b;</b></p><p>  cout<<yuefen(a)<<"+"<<

41、yuefen(b)<<"="<<yuefen(a+b)<<endl;</p><p><b>  }</b></p><p>  void jian()</p><p><b>  {</b></p><p>  rationalnumber

42、a;</p><p>  rationalnumber b;</p><p>  cout<<"進行有理數(shù)的減法運算"<<endl;</p><p>  cout<<"請輸入第一個有理數(shù):";</p><p><b>  cin>>a;</

43、b></p><p>  cout<<"請輸入第二個有理數(shù):";</p><p><b>  cin>>b;</b></p><p>  cout<<yuefen(a)<<"-"<<yuefen(b)<<"="

44、;<<yuefen(a-b)<<endl;</p><p><b>  }</b></p><p>  void cheng()</p><p><b>  {</b></p><p>  rationalnumber a;</p><p>  rat

45、ionalnumber b;</p><p>  cout<<"進行有理數(shù)的乘法運算"<<endl;</p><p>  cout<<"請輸入第一個有理數(shù):";</p><p><b>  cin>>a;</b></p><p>  

46、cout<<"請輸入第二個有理數(shù):";</p><p><b>  cin>>b;</b></p><p>  cout<<yuefen(a)<<"*"<<yuefen(b)<<"="<<yuefen(a*b)<<

47、endl;</p><p><b>  }</b></p><p>  void chu()</p><p><b>  {</b></p><p>  rationalnumber a;</p><p>  rationalnumber b;</p><

48、p>  cout<<"進行有理數(shù)的乘法運算"<<endl;</p><p>  cout<<"請輸入第一個有理數(shù):";</p><p><b>  cin>>a;</b></p><p>  cout<<"請輸入第二個有理數(shù):&q

49、uot;;</p><p><b>  cin>>b;</b></p><p>  cout<<yuefen(a)<<"/"<<yuefen(b)<<"="<<yuefen(a/b)<<endl;</p><p><

50、b>  }</b></p><p>  void menu()</p><p><b>  {</b></p><p>  cout<<"--------1.有理數(shù)加法運算--------"<<endl;</p><p>  cout<<"

51、;--------2.有理數(shù)減法運算--------"<<endl;</p><p>  cout<<"--------3.有理數(shù)乘法運算--------"<<endl;</p><p>  cout<<"--------4.有理數(shù)除法運算--------"<<endl;&

52、lt;/p><p>  cout<<"--------5.退出運算--------------"<<endl;</p><p><b>  }</b></p><p>  char xuan()</p><p><b>  {</b></p>

53、<p><b>  char c;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  menu();</b></p><p>  c=getch();</p&g

54、t;<p><b>  switch(c)</b></p><p><b>  {</b></p><p>  case'1':add();break;</p><p>  case'2':jian();break;</p><p>  case

55、9;3':cheng();break;</p><p>  case'4':chu();break;</p><p>  case'5':;break;</p><p><b>  }</b></p><p>  if(c=='5')</p><

56、;p><b>  break;</b></p><p><b>  else</b></p><p><b>  ;</b></p><p><b>  }</b></p><p><b>  return c;</b><

57、/p><p><b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p>  //system("color 0A");</p><p>  cout<<"以下有理數(shù)輸出形式

58、均為(a/b)"<<endl;</p><p>  rationalnumber r1(3,5),r2(2,9),r3,r4;</p><p>  cout<<"r1和r2由帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建"<<endl;</p><p>  cout<<"r1: "<<

59、;r1<<" r2: "<<r2<<endl;</p><p>  cout<<"r3和r4由鍵盤輸入 (請按任意鍵開始從鍵盤輸入)"<<endl;</p><p><b>  getch();</b></p><p>  cout&l

60、t;<"請輸入r3: ";</p><p><b>  cin>>r3;</b></p><p>  cout<<"請輸入r4: ";</p><p><b>  cin>>r4;</b></p><p>  co

61、ut<<"r1: "<<r1<<" r2: "<<r2<<" r3: "<<yuefen(r3)<<" r4: "<<yuefen(r4)<<endl;</p><p>  cout<<"r1: &q

62、uot;<<r1<<" 轉(zhuǎn)換成實數(shù)為:"<<setprecision(2)<<zhuan(r1)<<endl;</p><p>  cout<<"r2: "<<r2<<" 轉(zhuǎn)換成實數(shù)為:"<<setprecisi

63、on(2)<<zhuan(r2)<<endl;</p><p>  cout<<"r3: "<<r3<<" 轉(zhuǎn)換成實數(shù)為:"<<setprecision(2)<<zhuan(r3)<<endl;</p><p>  cout<<

64、;"r4: "<<r4<<" 轉(zhuǎn)換成實數(shù)為:"<<setprecision(2)<<zhuan(r4)<<endl;</p><p>  cout<<"r1+r2: "<<yuefen(r1)<<"+"<<yu

65、efen(r2)<<"="<<yuefen(r1+r2)<<endl;</p><p>  cout<<"r2-r3: "<<yuefen(r2)<<"-"<<yuefen(r3)<<"="<<yuefen(r2-r3)<

66、<endl;</p><p>  cout<<"r3*r4: "<<yuefen(r3)<<"*"<<yuefen(r4)<<"="<<yuefen(r3*r4)<<endl;</p><p>  cout<<"r2/r

67、4: "<<yuefen(r2)<<"/"<<yuefen(r4)<<"="<<yuefen(r2/r4)<<endl;</p><p>  cout<<"你想做有理數(shù)的簡單運算嗎?(y/n)"<<endl;</p><p>

68、<b>  char c;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  c=getch();</p><p>  if(c=='y')</p><p><

69、b>  {</b></p><p><b>  c=xuan();</b></p><p>  if(c=='5')</p><p><b>  break;</b></p><p><b>  }</b></p><p&g

70、t;  else if(c=='n')</p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p>&

71、lt;p><b>  ;</b></p><p><b>  }</b></p><p>  cout<<"已經(jīng)退出運算,按任意鍵退出程序"<<endl;</p><p><b>  getch();</b></p><p>

72、  //system("cls");</p><p>  cout<<"成功退出!"<<endl;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  

73、運行界面如下:</b></p><p>  按任意鍵后出現(xiàn)以下界面:</p><p><b>  輸入r3的值:</b></p><p>  這時你可以選擇y或n進行選擇,但注意必須是小寫。若輸入的為y:</p><p>  選擇不同的數(shù)字依次會出現(xiàn)以下界面:</p><p><

74、b>  若輸入的為n:</b></p><p><b>  實驗總結(jié):</b></p><p>  通過此次C++的課程設(shè)計,我熟練掌握了面向?qū)ο蟪绦蛘Z言中的很多功能的實現(xiàn),并且熟悉了很多調(diào)試程序的方法,懂得了處理錯誤的方法。進一步掌握面向過程和面向?qū)ο蟪绦蛟O(shè)計的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與實際相結(jié)合。從而提高自我分析問題、解決問題

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論