




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 分?jǐn)?shù)計(jì)算器設(shè)計(jì) 黔南民族師范學(xué)院 計(jì)算機(jī)科學(xué)系 姓名: 何- 指導(dǎo)老師: 任- 學(xué)號(hào): - 班級(jí): B12計(jì)科班 日期: 2013.12.2 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)題
2、解決分為以下步驟:(1) 應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì); 頭文件聲明整數(shù)類聲明派生類 主函數(shù)成員函數(shù)定義 定義成員函數(shù)定義類的對(duì)象(2) 分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系; 主函數(shù)成員函數(shù)定義Main.obj 分?jǐn)?shù)計(jì)算器.obj main.exe(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ì)算器h.h:#includeclass Integer /整數(shù)類protected:int fz;int fm;public:Inte
3、ger(int a=0,int b=1):fz(a),fm(b)Integer()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); /重載+運(yùn)算
4、符(分?jǐn)?shù)與分?jǐn)?shù)) Fraction operator+(int n); /重載+運(yùn)算符(整數(shù)與分?jǐn)?shù))Fraction operator-(Fraction &c); /重載-運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator-(int n); /重載-運(yùn)算符(整數(shù)與分?jǐn)?shù)) friend Fraction operator-(int n,Fraction &c);Fraction operator*(Fraction &c); /重載*運(yùn)算符(分?jǐn)?shù)與分?jǐn)?shù))Fraction operator*(int n); /重載*運(yùn)算符(整數(shù)與分?jǐn)?shù))Fraction operator/(Fraction
5、&c);/重載/運(yùn)算符(分?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ì)算器h.hvoid Integer:display () coutendl;cout -分?jǐn)?shù)計(jì)算器-endlendl;cout 請(qǐng)選擇功能: endl;cout 1 分?jǐn)?shù)與整數(shù)的四則運(yùn)算。endlendl;cout 2 整數(shù)與分?jǐn)?shù)的四則運(yùn)算。e
6、ndlendl;cout 3 分?jǐn)?shù)與分?jǐn)?shù)的四則運(yùn)算。endlendl;cout 0 輸入0退出。endlendl;Fraction Fraction:predigest()/定義約分函數(shù) int n,d,t,sign=1; Fraction temp; if(fz0 & fm0 & fm0) fm=-fm; sign=-1;if(fz0) fz=-fz; sign=-1;n=fz;d=fm;int r;if(nd) /輾轉(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*(f
7、z/d);temp.fm=fm/d;return temp;Fraction Fraction:operator+(Fraction &c)/重載兩個(gè)分?jǐn)?shù)的加法運(yùn)算符 Fraction temp; temp.fz=fz*c.fm+fm*c.fz; temp.fm=fm*c.fm; return temp;Fraction Fraction:operator+(int n)/重載分?jǐn)?shù)和整數(shù)的加法運(yùn)算 Fraction temp; temp.fz=fm*n+fz; temp.fm=fm; return temp;Fraction operator-(int n,Fraction &c)Fracti
8、on temp;temp.fz=c.fm*n-c.fz ;temp.fm=c.fm;return temp;Fraction Fraction:operator-(int n)/重載分?jǐn)?shù)減整數(shù)的減法運(yùn)算符Fraction temp;temp.fz=fz-fm*n;temp.fm=fm;return temp;Fraction Fraction:operator-(Fraction &c) /重載兩個(gè)分?jǐn)?shù)的減法運(yùn)算符 Fraction temp ;temp.fz =fz*c.fm -fm*c.fz;temp.fm =fm*c.fm;return temp;Fraction Fraction:op
9、erator*(Fraction &c)/重載兩個(gè)分?jǐn)?shù)的乘法運(yùn)算符Fraction temp;temp.fz=fz*c.fz;temp.fm=fm*c.fm;return temp;Fraction Fraction:operator *(int n)/重載分?jǐn)?shù)與整數(shù)的乘法運(yùn)算符Fraction temp;temp.fz=fz*n;temp.fm=fm;return temp;Fraction Fraction:operator/(Fraction &c)/重載兩個(gè)分?jǐn)?shù)的除法運(yùn)算符Fraction temp;temp.fz=fz*c.fm;temp.fm=fm*c.fz;return temp
10、;Fraction Fraction:operator/(int n)/重載分?jǐn)?shù)除以整數(shù)的除法運(yùn)算符Fraction temp;temp.fz=fz;temp.fm=fm*n;return temp;Fraction operator /(int n,Fraction &c) Fraction temp;temp.fz =n*c.fm ;temp.fm =c.fz ;return temp;ostream& operator(ostream &output,Fraction &t)/重載輸出運(yùn)算符,輸出分?jǐn)?shù)int a,b,c;a=t.fz;b=t.fm;if(a=0|b=0) /當(dāng)分子,或者分
11、母為0時(shí),輸出0cout0;if(b=1) /當(dāng)分母為1時(shí),輸出分子coutb&b!=1)/判斷分?jǐn)?shù)為假分?jǐn)?shù)c=a/b;a=a%b;coutc;if(a!=0)cout又a/b;if(ab&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/b0&t.fzt.fm & t.fm!=0&t.fm!=1)/判斷為真分?jǐn)?shù)outputt.fz/t.fm;if(t.fz0 & -t.fzt.fm & t.fm!=0 & t.fm!=1)/判斷為真分?jǐn)?shù)output(t.fz/t.fm(istream &input,Fraction &t)
12、/重載輸入運(yùn)算符,輸入分?jǐn)?shù)int a,c;char b;inputabc;if(b=/ & c!=0 )t.fz=a;t.fm=c;elsecout錯(cuò)誤!輸入格式錯(cuò)誤或分母為0!請(qǐng)退出重新輸入!endl;return input;/main函數(shù)#include#include分?jǐn)?shù)計(jì)算器h.hint main()Integer dis; Fraction a,b,result,real;int m,z;char c;/數(shù)據(jù)類型dis.display ();while(m!=0) coutm;if(m=1) /分?jǐn)?shù)與整數(shù)的運(yùn)算coutendla;coutendlc;coutendlz;if(c=+
13、)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ī)范為: acz=a.predigest ()cz=realendl;coutendl;if(m=2) /整數(shù)與分?jǐn)?shù)的運(yùn)算coutendl; coutendlz;coutendlc;coutendlb;if(c=+)result=b+z;if(c=-)result=z-b;if(c=*)result=b*z;if(c=/)result=z/b;real=result.predigest();cout運(yùn)算式規(guī)范為: zcb=zcb.predigest ()=realendl;coutendl; if(m=3) /分?jǐn)?shù)與分?jǐn)?shù)的運(yùn)算coutendl; coutendla;coutendlc;coutendlb;if(c=+)result=a+b;if(c=-)result=a-b;if(c=*)result=a*b;if(c=/)result=a/b;real=result.predigest();cout運(yùn)算式規(guī)范
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村和城鎮(zhèn)試題及答案
- 物流包裝試題及答案
- 安徽省A10聯(lián)盟2024-2025學(xué)年高二下學(xué)期5月學(xué)情調(diào)研考地理(B)試卷(含答案)
- 2025年黑龍江省哈爾濱市中考模擬試題數(shù)學(xué)試卷(含簡(jiǎn)單答案)
- 2025船舶交易合同范本下載
- 2025屆高考物理大一輪復(fù)習(xí)課件 第十一章 第64課時(shí) 專題強(qiáng)化:復(fù)合場(chǎng)中的擺線問(wèn)題 動(dòng)量定理在磁場(chǎng)中的應(yīng)用
- 2025屆高考物理大一輪復(fù)習(xí)課件 第十一章 第60課時(shí) 專題強(qiáng)化:用“動(dòng)態(tài)圓”思想分析臨界問(wèn)題
- 初中語(yǔ)文 中考專區(qū) 二輪專題 議論文閱讀 課件
- 2024年中考物理復(fù)習(xí)專題 計(jì)算與推導(dǎo)題初中物理 中考專區(qū) 復(fù)習(xí)
- 2025授權(quán)創(chuàng)作合同范本示例
- 2025年安全生產(chǎn)月主題宣貫課件
- 華北理工大學(xué)藥物分析教案
- 教學(xué)課件 金屬學(xué)與熱處理-崔忠圻
- (高職)統(tǒng)計(jì)學(xué)原理(第七版)電子課件教學(xué)PPT(完整版)
- 安徽省2022年中考地理真題試卷(圖片版含答案)
- 林地征占用自查報(bào)告
- 常見疾病國(guó)際ICD—10編碼參考模板
- 感悟親情作文指導(dǎo)
- 幼兒園辦園標(biāo)準(zhǔn)
- DLT 596-2021 電力設(shè)備預(yù)防性試驗(yàn)規(guī)程
- 無(wú)機(jī)化學(xué)第4版下冊(cè)(吉大宋天佑)2019
評(píng)論
0/150
提交評(píng)論