版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、黔南民族師范學院 計算機科學系姓名:何-指導老師:任-學號:1208075-班級:B12計科班日期:1、問題描述定義一個整數(shù)類。定義一個分數(shù)類,由整數(shù)類派生出。能對分數(shù)進行各種計算和輸入/輸出2、功能要求(1)定義整數(shù)類和分數(shù)類。其中,包括構造函數(shù)、析構函數(shù)、顯示函數(shù)等。(2)輸入/輸出:對流提取和流插入運算符進行重載。(3)計算功能:可進行分數(shù)的加、減、乘和除法運算。(4)化簡功能:將分數(shù)化簡為最簡分數(shù)(5) 異常處理功能:分數(shù)中分母不能為零(6) 菜單功能:每種功能的操作都是在菜單中進行相應選擇。3、問題的解決方案根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1) 應用系統(tǒng)分析,建立該系
2、統(tǒng)的功能模塊框圖以及界面的組織和設計;頭文件聲明整數(shù)類聲明派生類主函數(shù)成員函數(shù)定義定義類的對象定義成員函數(shù)主函數(shù)(2) 分析系統(tǒng)中的各個實體及它們之間的關系;成員函數(shù)定義分數(shù)計算器.obj(3) 根據(jù)問題描述,設計系統(tǒng)的類層次;4)完成類層次中各個類的描述;(5)完成類中各個成員函數(shù)的定義;(6)完成系統(tǒng)的應用模塊;(7)功能調試;(8)完成系統(tǒng)總結報告。源代碼:/ 分數(shù)計算器 :#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 / 分數(shù)類,進行計算和輸入 輸出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、 / 重載 + 運算符(分數(shù)與分數(shù))Fraction operator+(int n); / 重載 + 運算 符(整數(shù)與分數(shù))/ 重載 -運算符Fraction operator-(Fraction &c); / 重載 -運 算符 (分數(shù)與分數(shù) )Fraction operator-(int n);整數(shù)與分數(shù))friend Fraction operator-(int n,Fraction &c);/ 重載/ 重載 *運算符/ 重載 / 運算Fraction operator*(Fraction &c);運算符(分數(shù)與分數(shù))Fraction operator*(int
5、n);(整數(shù)與分數(shù))Fraction operator/(Fraction &c);符 (分數(shù)與分數(shù) )Fraction operator/(int n);/ 重載/ 運算符(整數(shù)與分數(shù))friend Fraction operator/(int n,Fraction &c);Fraction predigest(); / 約分函數(shù)void display();/ 實現(xiàn)函數(shù)(分數(shù)計算器設計)#include<> #include" 分數(shù)計算器 "void Integer:display ()cout<<endl;cout<<
6、;" 分數(shù)計算器 "<<endl<<endl;cout<<" 請 選 擇 功 能"<<endl;cout<<"1cout<<"2cout<<"3cout<<"0分數(shù)與整數(shù)的四則運算。 "<<endl<<endl; 整數(shù)與分數(shù)的四則運算。 "<<endl<<endl; 分數(shù)與分數(shù)的四則運算。 "<<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) / 輾轉相除,求分子 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)/ 重載兩個分數(shù)的加法運算符Fraction temp;=fz*+fm*;=fm*;return temp;Fraction Fraction:operator+(int n)/ 重載分數(shù)和整數(shù)的加法運算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)/ 重載分數(shù)減整數(shù)的減法運算符Fraction temp;=fz-fm*n;=fm;return temp;Fraction Fraction:operator-(Fraction &c) / 重載兩個分數(shù)的減法運算符Fraction temp ;=fz* -fm*;=fm*;return temp;Fraction Fraction:operator*(Fraction &c)/ 重載兩個分數(shù)的乘法運算符Fraction tem
10、p;=fz*;=fm*;return temp;Fraction Fraction:operator *(int n)/ 重載分數(shù)與整數(shù)的乘法運算符Fraction temp;=fz*n;=fm;return temp;Fraction Fraction:operator/(Fraction &c) / 重載兩個分數(shù)的除法運算符Fraction temp;=fz*;=fm*;return temp;Fraction Fraction:operator/(int n) / 重載分數(shù)除以整數(shù)的除法運算符 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) / 重載輸出運算符,輸出分數(shù) int a,b,c;a=;b=;if(a=0|b=0)/ 當分子,或者分母為 0 時,輸出 0cout<<"0"if(b=1) / 當分母為 1 時,輸出分子 cout<<a;if(a>b&&b!=1) / 判斷分數(shù)為假分數(shù)c=a/
12、b;a=a%b;cout<<c;if(a!=0)coutvv"又"vvavv'/'vvb;if(a<0&&-a>b&&b!=1)/ 當分數(shù)為負時,判斷為假分數(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)/ 判斷為真分數(shù)output<<<<'/'<<if<0 && < && !=0 && !=1)/ 判斷為真分數(shù)output<<"("<<<<'/'<<<<")"return output;istream& operator>>(istream &input,Fraction &t) / 重載輸入運算符,輸入分數(shù)
14、 int a,c;char b;input>>a>>b>>c;if(b='/' && c!=0 )=a;=c;else"<<endl;cout<<" 錯誤!輸入格式錯誤或分母為 0!請退出重新輸入! return input;/main 函數(shù)#include<> #include" 分數(shù)計算器 "int main()Integer dis;Fraction a,b,result,real;int m,z;char c;/ 數(shù)據(jù)類型();while(m!
15、=0)cout<<"請輸入: (0-3): "cin>>m;if(m=1)/ 分數(shù)與整數(shù)的運算cout<<endl<<" 請輸入一個分數(shù):cin>>a;cin>>c;cout<<endl<<" 輸入一個正整數(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<<" 運算式規(guī)范為:"<<a<<c<<z<<'='<< ()<<c<<z<<'='<<real<<endl;cout<<endl;if(m=2)/ 整數(shù)與分數(shù)的運算cout<<endl;cout<<endl<<"請輸入一個正整數(shù) :cin>>z;cout<<endl<<"請輸入運算符 :ci
17、n>>c;cout<<endl<<"請輸入一個分數(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<<" 運算式規(guī)范為:"<<z<<c<<b<<'='<<z<<c<< ()<<
18、39;='<<real<<endl;cout<<endl;if(m=3)/ 分數(shù)與分數(shù)的運算cout<<endl;cout<<endl<<"請輸入一個分數(shù) :cin>>a;cout<<endl<<"請輸入運算符 :cin>>c;cout<<endl<<"請輸入一個分數(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<<" 運算式規(guī)范為: "<<a<&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五美容院跨區(qū)域品牌拓展合作協(xié)議4篇
- 2025版養(yǎng)老院入住后休閑娛樂設施使用合同3篇
- 2025年度個人二手車買賣合同模板4篇
- 2025版雙方墊資合作知識產(chǎn)權簡單協(xié)議3篇
- 二零二五年度生物制藥產(chǎn)品研發(fā)與銷售合同4篇
- 二零二五版美甲店會員積分體系合作合同4篇
- 2025版高端定制門窗設計加工合作協(xié)議4篇
- 2025年度綠色生態(tài)面料生產(chǎn)加工合作合同4篇
- 個人委托培訓合同書2024年版范例版B版
- 2025年度冷庫設施設備租賃及維護合同4篇
- GB/T 45107-2024表土剝離及其再利用技術要求
- 2024-2025學年八年級上學期1月期末物理試題(含答案)
- 商場電氣設備維護勞務合同
- 2023年國家公務員錄用考試《行測》真題(行政執(zhí)法)及答案解析
- 2024智慧醫(yī)療數(shù)據(jù)字典標準值域代碼
- 年產(chǎn)12萬噸裝配式智能鋼結構項目可行性研究報告模板-立項備案
- 【獨家揭秘】2024年企業(yè)微信年費全解析:9大行業(yè)收費標準一覽
- 醫(yī)療器械經(jīng)銷商會議
- 《±1100kV特高壓直流換流變壓器使用技術條件》
- 《風電場項目經(jīng)濟評價規(guī)范》(NB-T 31085-2016)
- 五年級上冊脫式計算100題及答案
評論
0/150
提交評論