分?jǐn)?shù)計(jì)算器設(shè)計(jì)_第1頁(yè)
分?jǐn)?shù)計(jì)算器設(shè)計(jì)_第2頁(yè)
分?jǐn)?shù)計(jì)算器設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、黔南民族師范學(xué)院 計(jì)算機(jī)科學(xué)系姓名:何-指導(dǎo)老師:任-學(xué)號(hào):1208075-班級(jí):B12計(jì)科班日期:1、問(wèn)題描述定義一個(gè)整數(shù)類。定義一個(gè)分?jǐn)?shù)類,由整數(shù)類派生出。能對(duì)分?jǐn)?shù)進(jìn)行各種計(jì)算和輸入/輸出2、功能要求(1)定義整數(shù)類和分?jǐn)?shù)類。其中,包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、顯示函數(shù)等。(2)輸入/輸出:對(duì)流提取和流插入運(yùn)算符進(jìn)行重載。(3)計(jì)算功能:可進(jìn)行分?jǐn)?shù)的加、減、乘和除法運(yùn)算。(4)化簡(jiǎn)功能:將分?jǐn)?shù)化簡(jiǎn)為最簡(jiǎn)分?jǐn)?shù)(5) 異常處理功能:分?jǐn)?shù)中分母不能為零(6) 菜單功能:每種功能的操作都是在菜單中進(jìn)行相應(yīng)選擇。3、問(wèn)題的解決方案根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:(1) 應(yīng)用系統(tǒng)分析,建立該系

2、統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);頭文件聲明整數(shù)類聲明派生類主函數(shù)成員函數(shù)定義定義類的對(duì)象定義成員函數(shù)主函數(shù)(2) 分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;成員函數(shù)定義分?jǐn)?shù)計(jì)算器.obj(3) 根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次;4)完成類層次中各個(gè)類的描述;(5)完成類中各個(gè)成員函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報(bào)告。源代碼:/ 分?jǐn)?shù)計(jì)算器 :#include<>class Integer / 整數(shù)類protected:int fz;int fm;public:Integer(int a=0,int b=1):fz(a),fm(b)Intege

3、r()void display();class Fraction:public Integer / 分?jǐn)?shù)類,進(jìn)行計(jì)算和輸入 輸出public:Fraction(int a=0,int b=1):Integer(a,b)friend istream & operator>>(istream & ,Fraction & );/ 重載輸入流friend ostream & operator<<(ostream & ,Fraction & ); / 重載輸出流Fraction operator+(Fraction &c);

4、 / 重載 + 運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator+(int n); / 重載 + 運(yùn)算 符(整數(shù)與分?jǐn)?shù))/ 重載 -運(yùn)算符Fraction operator-(Fraction &c); / 重載 -運(yùn) 算符 (分?jǐn)?shù)與分?jǐn)?shù) )Fraction operator-(int n);整數(shù)與分?jǐn)?shù))friend Fraction operator-(int n,Fraction &c);/ 重載/ 重載 *運(yùn)算符/ 重載 / 運(yùn)算Fraction operator*(Fraction &c);運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator*(int

5、n);(整數(shù)與分?jǐn)?shù))Fraction operator/(Fraction &c);符 (分?jǐn)?shù)與分?jǐn)?shù) )Fraction operator/(int n);/ 重載/ 運(yùn)算符(整數(shù)與分?jǐn)?shù))friend Fraction operator/(int n,Fraction &c);Fraction predigest(); / 約分函數(shù)void display();/ 實(shí)現(xiàn)函數(shù)(分?jǐn)?shù)計(jì)算器設(shè)計(jì))#include<> #include" 分?jǐn)?shù)計(jì)算器 "void Integer:display ()cout<<endl;cout<<

6、;" 分?jǐn)?shù)計(jì)算器 "<<endl<<endl;cout<<" 請(qǐng) 選 擇 功 能"<<endl;cout<<"1cout<<"2cout<<"3cout<<"0分?jǐn)?shù)與整數(shù)的四則運(yùn)算。 "<<endl<<endl; 整數(shù)與分?jǐn)?shù)的四則運(yùn)算。 "<<endl<<endl; 分?jǐn)?shù)與分?jǐn)?shù)的四則運(yùn)算。 "<<endl<<endl;

7、輸入 0 退出。 "<<endl<<endl;Fracti on Fraction:predigest()/定義約分函數(shù)int n,d,t,sign=1;Fraction temp;if(fz<0 && fm<0)fz=-fz;fm=-fm;if(fz>0 && fm<0)fm=-fm;sign=-1;if(fz<0 && fm>0)fz=-fz;sign=-1;n=fz;d=fm;int r;if(n<d) / 輾轉(zhuǎn)相除,求分子 n 與分母 d 的最大公約數(shù) t=n;n

8、=d;d=t;r=n%d;while(r!=0)n=d;d=r; /d 為最大公約數(shù)r=n%d;=sign*(fz/d);=fm/d;return temp;Fraction Fraction:operator+(Fraction &c)/ 重載兩個(gè)分?jǐn)?shù)的加法運(yùn)算符Fraction temp;=fz*+fm*;=fm*;return temp;Fraction Fraction:operator+(int n)/ 重載分?jǐn)?shù)和整數(shù)的加法運(yùn)算Fraction temp;=fm*n+fz;=fm;return temp;Fraction operator-(int n,Fraction &a

9、mp;c)Fraction temp;=* ;一 J一 Jreturn temp;Fraction Fraction:operator-(int n)/ 重載分?jǐn)?shù)減整數(shù)的減法運(yùn)算符Fraction temp;=fz-fm*n;=fm;return temp;Fraction Fraction:operator-(Fraction &c) / 重載兩個(gè)分?jǐn)?shù)的減法運(yùn)算符Fraction temp ;=fz* -fm*;=fm*;return temp;Fraction Fraction:operator*(Fraction &c)/ 重載兩個(gè)分?jǐn)?shù)的乘法運(yùn)算符Fraction tem

10、p;=fz*;=fm*;return temp;Fraction Fraction:operator *(int n)/ 重載分?jǐn)?shù)與整數(shù)的乘法運(yùn)算符Fraction temp;=fz*n;=fm;return temp;Fraction Fraction:operator/(Fraction &c) / 重載兩個(gè)分?jǐn)?shù)的除法運(yùn)算符Fraction temp;=fz*;=fm*;return temp;Fraction Fraction:operator/(int n) / 重載分?jǐn)?shù)除以整數(shù)的除法運(yùn)算符 Fraction temp;=fz;=fm*n;return temp;Fractio

11、n operator /(int n,Fraction &c)Fraction temp;=n* ;一 Jreturn temp;ostream& operator<<(ostream &output,Fraction &t) / 重載輸出運(yùn)算符,輸出分?jǐn)?shù) int a,b,c;a=;b=;if(a=0|b=0)/ 當(dāng)分子,或者分母為 0 時(shí),輸出 0cout<<"0"if(b=1) / 當(dāng)分母為 1 時(shí),輸出分子 cout<<a;if(a>b&&b!=1) / 判斷分?jǐn)?shù)為假分?jǐn)?shù)c=a/

12、b;a=a%b;cout<<c;if(a!=0)coutvv"又"vvavv'/'vvb;if(a<0&&-a>b&&b!=1)/ 當(dāng)分?jǐn)?shù)為負(fù)時(shí),判斷為假分?jǐn)?shù)c=-a/b;a=-a%b;c=-c;cout<<'='<<c;if(a!=0)cout<<" 又 "<<a<<'/'<<b<<endl;if>0&&< && !=0&a

13、mp;&!=1)/ 判斷為真分?jǐn)?shù)output<<<<'/'<<if<0 && < && !=0 && !=1)/ 判斷為真分?jǐn)?shù)output<<"("<<<<'/'<<<<")"return output;istream& operator>>(istream &input,Fraction &t) / 重載輸入運(yùn)算符,輸入分?jǐn)?shù)

14、 int a,c;char b;input>>a>>b>>c;if(b='/' && c!=0 )=a;=c;else"<<endl;cout<<" 錯(cuò)誤!輸入格式錯(cuò)誤或分母為 0!請(qǐng)退出重新輸入! return input;/main 函數(shù)#include<> #include" 分?jǐn)?shù)計(jì)算器 "int main()Integer dis;Fraction a,b,result,real;int m,z;char c;/ 數(shù)據(jù)類型();while(m!

15、=0)cout<<"請(qǐng)輸入: (0-3): "cin>>m;if(m=1)/ 分?jǐn)?shù)與整數(shù)的運(yùn)算cout<<endl<<" 請(qǐng)輸入一個(gè)分?jǐn)?shù):cin>>a;cin>>c;cout<<endl<<" 輸入一個(gè)正整數(shù)cin>>z;if(c='+')result=a+z;if(c='-')result=a-z;if(c='*')result=a*z;if(c='/')result=a/z;rea

16、l=();cout<<" 運(yùn)算式規(guī)范為:"<<a<<c<<z<<'='<< ()<<c<<z<<'='<<real<<endl;cout<<endl;if(m=2)/ 整數(shù)與分?jǐn)?shù)的運(yùn)算cout<<endl;cout<<endl<<"請(qǐng)輸入一個(gè)正整數(shù) :cin>>z;cout<<endl<<"請(qǐng)輸入運(yùn)算符 :ci

17、n>>c;cout<<endl<<"請(qǐng)輸入一個(gè)分?jǐn)?shù) :cin>>b;if(c='+')result=b+z;if(c='-')result=z-b;if(c='*')result=b*z;if(c='/')result=z/b;real=();cout<<" 運(yùn)算式規(guī)范為:"<<z<<c<<b<<'='<<z<<c<< ()<<&#

18、39;='<<real<<endl;cout<<endl;if(m=3)/ 分?jǐn)?shù)與分?jǐn)?shù)的運(yùn)算cout<<endl;cout<<endl<<"請(qǐng)輸入一個(gè)分?jǐn)?shù) :cin>>a;cout<<endl<<"請(qǐng)輸入運(yùn)算符 :cin>>c;cout<<endl<<"請(qǐng)輸入一個(gè)分?jǐn)?shù)cin>>b;if(c='+')result=a+b;if(c='-')result=a-b;if(c='*')result=a*b;if(c='/')result=a/b;real=();cout<<" 運(yùn)算式規(guī)范為: "<<a<&

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論