![分?jǐn)?shù)計(jì)算器設(shè)計(jì)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/45907504-4726-4dfe-b3c5-b919f534ad07/45907504-4726-4dfe-b3c5-b919f534ad071.gif)
![分?jǐn)?shù)計(jì)算器設(shè)計(jì)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/45907504-4726-4dfe-b3c5-b919f534ad07/45907504-4726-4dfe-b3c5-b919f534ad072.gif)
![分?jǐn)?shù)計(jì)算器設(shè)計(jì)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/45907504-4726-4dfe-b3c5-b919f534ad07/45907504-4726-4dfe-b3c5-b919f534ad073.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、分?jǐn)?shù)計(jì)算器設(shè)計(jì)黔南民族師范學(xué)院計(jì)算機(jī)科學(xué)系姓名:何-指導(dǎo)老師:任-學(xué)號(hào):1208075-班級(jí):B12計(jì)科班日期:2013.12.21、問題描述定義一個(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) 化簡功能:將分?jǐn)?shù)化簡為最簡分?jǐn)?shù)。(5) 異常處理功能:分?jǐn)?shù)中分母不能為零。(6) 菜單功能:每種功能的操作都是在菜單中進(jìn)行相應(yīng)選擇。3、問題的解決方案根據(jù)系統(tǒng)功能要求,可以將問題解
2、決分為以下步驟:(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);頭文件主函數(shù)定義類的對(duì)象聲明整數(shù)類聲明派生類成員函數(shù)定義定義成員函數(shù)(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;main.exe(3)根據(jù)問題才苗述,設(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ì)算器h.h:#include<iostream.h>classInteger/整數(shù)類protected:intfz;intfm;public:Integer(inta=0,intb=1):f
3、z(a),fm(b)(Integer()voiddisplay。;;classFraction:publicInteger/分?jǐn)?shù)類,進(jìn)行計(jì)算和輸入輸出public:Fraction(inta=0,intb=1):Integer(a,b)friendistream&operator>>(istream&,Fraction&);/重載輸入流friendostream&operator<<(ostream&,Fraction&);/重載輸出流Fractionoperator+(Fraction&c);/重載+運(yùn)算符(分?jǐn)?shù)
4、與分?jǐn)?shù))Fractionoperator+(intn);/重載+運(yùn)算符(整數(shù)與分?jǐn)?shù))Fractionoperator-(Fraction&c);/重載-運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fractionoperator-(intn);/重載-運(yùn)算符(整數(shù)與分?jǐn)?shù))friendFractionoperator-(intn,Fraction&c);Fractionoperator*(Fraction&c);/重載*運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fractionoperator*(intn);/重載*運(yùn)算符(整數(shù)與分?jǐn)?shù))Fractionoperator/(Fraction&c);/重載/運(yùn)算符
5、(分?jǐn)?shù)與分?jǐn)?shù))Fractionoperator/(intn);/重載/運(yùn)算符(整數(shù)與分?jǐn)?shù))friendFractionoperator/(intn,Fraction&c);Fractionpredigest();/約分函數(shù)voiddisplay();/實(shí)現(xiàn)函數(shù)(分?jǐn)?shù)計(jì)算器設(shè)計(jì))#include<iostream.h>#include"分?jǐn)?shù)計(jì)算器h.h"voidInteger:display()cout<<endl;cout<<"分?jǐn)?shù)計(jì)算器"<<endl<<endl;cout<<
6、;"請(qǐng)選擇功能:"<<endl;分?jǐn)?shù)與整數(shù)的四則整數(shù)與分?jǐn)?shù)的四則分?jǐn)?shù)與分?jǐn)?shù)的四則輸入0退出。cout<<"1運(yùn)算。"<<endl<<endl;cout<<"2運(yùn)算。"<<endl<<endl;cout<<"3運(yùn)算。"<<endl<<endl;cout<<"0<<endl<<endl;FractionFraction:predigest()/定義約分函數(shù)
7、(intn,d,t,sign=1;Fractiontemp;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;intr;if(n<d)/輾轉(zhuǎn)相除,求分子n與分母d的最大公約數(shù)(t=n;n=d;d=t;r=n%d;while(r!=0)(n=d;d=r;/d為最大公約數(shù)r=n%d;temp.fz=sign*(fz/d);temp.fm=fm/d;returnte
8、mp;重載兩個(gè)分FractionFraction:operator+(Fraction&c)/數(shù)的加法運(yùn)算符(Fractiontemp;temp.fz=fz*c.fm+fm*c.fz;temp.fm=fm*c.fm;returntemp;FractionFraction:operator+(intn)/重載分?jǐn)?shù)和整數(shù)的加法運(yùn)算(Fractiontemp;temp.fz=fm*n+fz;temp.fm=fm;returntemp;Fractionoperator-(intn,Fraction&c)(Fractiontemp;temp.fz=c.fm*n-c.fz;temp.fm=
9、c.fm;returntemp;FractionFraction:operator-(intn)整數(shù)的減法運(yùn)算符/重載分?jǐn)?shù)減(Fractiontemp;temp.fz=fz-fm*n;temp.fm=fm;returntemp;FractionFraction:operator-(Fraction&c)/個(gè)分?jǐn)?shù)的減法運(yùn)算符(Fractiontemp;temp.fz=fz*c.fm-fm*c.fz;temp.fm=fm*c.fm;returntemp;FractionFraction:operator*(Fraction&c)兩個(gè)分?jǐn)?shù)的乘法運(yùn)算符重載兩/重載(Fractionte
10、mp;temp.fz=fz*c.fz;temp.fm=fm*c.fm;returntemp;FractionFraction:operator*(intn)整數(shù)的乘法運(yùn)算符/重載分?jǐn)?shù)與(Fractiontemp;temp.fz=fz*n;temp.fm=fm;returntemp;FractionFraction:operator/(Fraction&c)兩個(gè)分?jǐn)?shù)的除法運(yùn)算符/重載(Fractiontemp;temp.fz=fz*c.fm;temp.fm=fm*c.fz;returntemp;FractionFraction:operator/(intn)數(shù)除以整數(shù)的除法運(yùn)算符/重載分
11、(Fractiontemp;temp.fz=fz;temp.fm=fm*n;returntemp;Fractionoperator/(intn,Fraction&c)(Fractiontemp;temp.fz=n*c.fm;temp.fm=c.fz;returntemp;ostream&operator<<(ostream&output,Fraction&t)/重載輸出運(yùn)算符,輸出分?jǐn)?shù)(inta,b,c;a=t.fz;b=t.fm;if(a=0|b=0)/當(dāng)分子,或者分母為。時(shí),輸出0cout<<"0"if(b=1)/
12、當(dāng)分母為1時(shí),輸出分子cout<<a;if(a>b&&b!=1)/判斷分?jǐn)?shù)為假分?jǐn)?shù)(c=a/b;a=a%b;cout«c;if(a!=O)cout«"X"<<a«7'«b;)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!=O)cout«"X"«a«7'<
13、;<b«endl;if(t.fz>O&&t.fz<t.fm&&t.fm!=0&&t.fm!=1)/判斷為真分?jǐn)?shù)output<<t.fz«7'«t.fm;if(t.fz<0&&-t.fz<t.fm&&t.fm!=O&&t.fm!=1)/判斷為真分?jǐn)?shù)output«"("«t.fz«7'«t.fm<<")"returnoutpu
14、t;istream&operator>>(istream&input,Fraction&t)/重載輸入運(yùn)算符,輸入分?jǐn)?shù)(inta,c;charb;input>>a>>b>>c;if(b='/'&&c!=0)(t.fz=a;t.fm=c;elsecout<<"錯(cuò)誤!輸入格式錯(cuò)誤或分母為0!請(qǐng)退出重新輸入!"<<endl;returninput;/main函數(shù)#include<iostream.h>#include"分?jǐn)?shù)計(jì)算器h.
15、h"intmain()(Integerdis;Fractiona,b,result,real;intm,z;charc;/數(shù)據(jù)類型dis.display();while(m!=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;cout<<endl<<"請(qǐng)輸入運(yùn)算符:"cin>>c;cout<<endl<<"輸入一個(gè)
16、正整數(shù):"cin>>z;if(c='+')result=a+z;if(c='-')result=a-z;if(c='*')result=a*z;if(c='/')result=a/z;real=result.predigest();cout«"運(yùn)算式規(guī)范為:"«a«c«z«'='<<a.predigest()«c«z«'='«real«endl;c
17、out«endl;if(m=2)(cout«endl;cout«endl«"cin»z;cout«endl«"cin»c;cout«endl«"cin»b;if(c=,+,)result=b+z;if(c=,-*)result=z-b;if(c=,*)result=b*z;/整數(shù)與分?jǐn)?shù)的運(yùn)請(qǐng)輸入一個(gè)正整數(shù):M;請(qǐng)輸入運(yùn)算符:請(qǐng)輸入一個(gè)分?jǐn)?shù):if(c=7*)result=z/b;real=result.predigest();cout<<&quo
18、t;運(yùn)算式規(guī)范為:"<<z<<c<<b<<'='<<z<<c<<b.predigest()<<'='<<real<<endl;cout<<endl;分?jǐn)?shù)與分?jǐn)?shù)的運(yùn)if(m=3)/if(c='/')cout<<endl;cout<<endl<<"cin>>a;cout<<endl<<"cin>>c;cout<<endl<<"cin>>b;if(c='+')result=a+b;if(c='-')result=a-b;if(c='*')result=a*b;請(qǐng)輸入一個(gè)分?jǐn)?shù)請(qǐng)輸入運(yùn)算符:"請(qǐng)輸入一個(gè)分?jǐn)?shù):result=a/b;real=result.predigest();cout<<"運(yùn)算式規(guī)范為:"<<a<<c<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣合伙合同范例
- 光伏發(fā)電安裝用工合同范例
- 光伏結(jié)構(gòu)合同范例
- 個(gè)人油品銷售合同范例
- 2024年01月江蘇2024寧波銀行南京分行新春招考筆試歷年參考題庫附帶答案詳解
- 包裝設(shè)計(jì)評(píng)審合同范本
- 買賣瓷磚合同范例
- 蘭州房屋購買合同范本
- 與單位停車合同范本
- 出租電腦電源合同范例
- 父母贈(zèng)與協(xié)議書
- 駕照體檢表完整版本
- 簡易勞務(wù)合同電子版
- 明代文學(xué)緒論
- 通用稅務(wù)自查情況說明報(bào)告(7篇)
- 體育賽事的策劃、組織與實(shí)施 體育賽事利益相關(guān)者
- 分析化學(xué)(高職)PPT完整版全套教學(xué)課件
- 晚熟的人(莫言諾獎(jiǎng)后首部作品)
- m拱頂儲(chǔ)罐設(shè)計(jì)計(jì)算書
- 2023外貿(mào)業(yè)務(wù)協(xié)調(diào)期中試卷
- 新人教鄂教版(2017)五年級(jí)下冊(cè)科學(xué)全冊(cè)教學(xué)課件
評(píng)論
0/150
提交評(píng)論