版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
求解有理數(shù)分式方程【設(shè)計(jì)要求】設(shè)計(jì)一個(gè)有理數(shù)類,用來實(shí)現(xiàn)有理數(shù)分式方程的輸入和計(jì)算?!靖攀觥坑欣頂?shù)就是兩個(gè)整數(shù)的比率,通常表示為/其中稱為分子,稱為分母,分母不能為。開發(fā)類的目標(biāo)就是創(chuàng)建一種類型,該類型的對(duì)象要像使用基本類型定義的對(duì)象那樣。因此,設(shè)計(jì)該類包括了兩個(gè)整型數(shù)據(jù)成員,一個(gè)作為分子,另一個(gè)作為分母。例如:有理數(shù)可以使用這個(gè)類的對(duì)象表示為。設(shè)計(jì)中需要考慮下列幾種情況:如何實(shí)現(xiàn)分子與分母的輸入與輸出。例如想使用如下形式cin<<r;/輸/入1/6輸出如果分子和分母有公約數(shù),應(yīng)該進(jìn)行化簡,也就是約分。例如:4/應(yīng)6表示為2/。3根據(jù)需要,有時(shí)要將1/表2示為0.,5或者將0.表5示為1/。2有理數(shù)可以進(jìn)行四則運(yùn)算,例如等。但希望直接像普通的加法一樣操作,例如1和,相加得到(,算術(shù)表達(dá)是為:有理數(shù)還可以比較大小,例如:1/和22/是4相等的,這需要為它們定義關(guān)系運(yùn)算符。因此,要實(shí)現(xiàn)這些操作,就需要重載輸入/輸出流運(yùn)算符、化簡有理數(shù)、將有理數(shù)轉(zhuǎn)換成實(shí)數(shù)、重載雙目運(yùn)算符、關(guān)系運(yùn)算符?!具\(yùn)行效果參考】主界面.實(shí)現(xiàn)各種有理分?jǐn)?shù)的輸入/輸出.實(shí)現(xiàn)各種有理分?jǐn)?shù)的換算.整數(shù)5用有理數(shù)表示為鳴八.輸入一個(gè)有理藪:-5/125等聶的浮點(diǎn)聶是.曲。4.輸入前個(gè)看理數(shù):3/46/7Reaults:45Z28<+>-3/28<->9/14<*>7/8</>有理數(shù)”4小于有理數(shù)“7.揄入一個(gè)浮點(diǎn)藪二.75轉(zhuǎn)換成有理數(shù):3/4再耨換為有理數(shù)。"5Pi'-essanykeytocontinue.實(shí)現(xiàn)求解有理數(shù)方程下面是兩組求解實(shí)例:||蟀音理數(shù)方程“力乂+匚F="f賴X方程的有理數(shù)系數(shù)“bc/de/f:1/2-3/45/6x=19/fc帶分?jǐn)?shù)的解為:31MP1'essanukeytocontinne-|解有理數(shù)方程"bx+"(!="£輸X芳和的宥理數(shù)系數(shù)“bc/de/f:1/23/45/6x=l/6帶分?jǐn)?shù)為解為essanykeytocontinue■■■■■■類的設(shè)計(jì)classRational{private:longnum,den;//供有理數(shù)成員函數(shù)自己使用的私有成員函數(shù)voidStandardize(void);//標(biāo)準(zhǔn)化,使其對(duì)”-“號(hào)的表達(dá)式統(tǒng)一longgcd(1ongm,longn)const;//簡化,如果輸入的有理數(shù)是公約數(shù)public://用于整數(shù)->有理數(shù)、實(shí)數(shù)->有理數(shù)的構(gòu)造函數(shù)Rational(1ongp=0,longq=1);Rational(doublex);//重載輸入/輸出流運(yùn)算符friendistream&operator>>(istream&istr,Rational&x);friendostream&operator<<(ostream&ostr,constRational&x);//雙目運(yùn)算符Rationaloperator+(Rational&x)const;Rationaloperator-(Rational&x)const;Rationaloperator*(Rational&x)const;Rationaloperator/(Rational&x)const;//單目運(yùn)算符Rationaloperator-(void)const;//關(guān)系運(yùn)算符intoperator<(Rational&x)const;intoperator<=(Rational&x)const;intoperator==(Rational&x)const;intoperator!=(Rational&x)const;intoperator>(Rational&x)const;intoperator>=(Rational&x)const;//轉(zhuǎn)換運(yùn)算符:有理數(shù)->實(shí)數(shù)operatordouble(void)const;//化簡有理數(shù)voidReduce(void);//例程intGetNumerator(void)const{returnnum;}intGetDenominator(void)const{returnden;}};設(shè)計(jì)類中需要考慮的幾個(gè)問題構(gòu)造函數(shù)構(gòu)造函數(shù)的設(shè)計(jì)應(yīng)能滿足如下方式創(chuàng)建對(duì)象:Rationalr(5L);//5/lRationalp;//0/1Rationals(2,3);//2/3Rationalq(5,-6);//-5/6Rationalq(.5);//1/2和調(diào)用不同的構(gòu)造函數(shù),所以需要使用來區(qū)別。前者表示參數(shù)是整型數(shù)據(jù),則為型數(shù)據(jù)。因此使用默認(rèn)參數(shù)的原型:(它能滿足使用各種情況下創(chuàng)建對(duì)象的要求,//使用默認(rèn)參數(shù)的構(gòu)造函數(shù)Rational::Rational(1ongp,longq):num(p),den(q){if(den==0){cerr<<”AZerodenominatoriginvalid”<<endl;exit(1);}Standardize();//不允許分母為0,調(diào)用類的私有成員函數(shù),使其對(duì)“-”號(hào)表達(dá)式統(tǒng)一Reduce();//簡化有理數(shù)函數(shù)}另一個(gè)構(gòu)造函數(shù)用來將是數(shù)換算成最接近的有理數(shù)。例如將轉(zhuǎn)換為//構(gòu)造函數(shù)用來將數(shù)換算成最接近的有理數(shù)Rational::Rational(doublex){doublevall,val2;vall=100000000L*x;val2=10000000L*x;num=long(vall-val2);den=90000000L;Reduce();}成員函數(shù)私有成員函數(shù)用來標(biāo)準(zhǔn)化,使其對(duì)””號(hào)的表達(dá)式統(tǒng)一voidRational::Standardize(void){if(den<0){num=-num;den=-den;}}如果輸入的有理數(shù)有公約數(shù),則需要進(jìn)行化簡。這里用成員函數(shù)完成簡化任務(wù),它被函數(shù)調(diào)用。私有成員函數(shù)用來簡化,如果輸入的有理數(shù)是公約數(shù)longRational::gcd(10ngm,longn)const{staticlongx;if(m>n){if(n==0)x=m;elsegcd(n,m%n);}else{if(m==0)x=n;elsegcd(m,n%m);}returnx;}私私公有成員函數(shù),簡化有理數(shù)voidRational::Reduce(void){longbigdivisor,tempnumerator;tempnumerator=(num<0)?-num:num;if(num==0)den=1;else{bigdivisor=gcd(tempnumerator,den);if(bigdivisor>1){num/=bigdivisor;den/=bigdivisor;}}}/公/有成員函數(shù),將有理數(shù)轉(zhuǎn)換成實(shí)數(shù)Rational::operatordouble(void)const{returndouble(num)/den;}運(yùn)算符重載(1)重載流運(yùn)算符-按格式構(gòu)造輸出/輸入。/*/重載輸出流運(yùn)算符ostream&operator<<(ostream&ostr,constRational&x){ostr<<x.num<<”/”<<x.den;returnostr;}輸入流需要保證正確的格式。首先保證分母不等于零;然后調(diào)用和函數(shù)調(diào)整格式。//*重載輸入流運(yùn)算符istream&operator>>(istream&istr,Rational&x){charc;istr>>x.num>>c>>x.den;if(x.den==0){cerr<<“AZerodenominatoriginvalid"<<endl;exit(1);}x.Standardize();x.Reduce();returnistr;}(2)重載雙目運(yùn)算符(+,-,*)如:/*重載雙目運(yùn)算符+RationalRational::operator+(Rational&x)const{Rationaltemp=Rational(num*x.den+den*x.num,den*x.den);temp.Reduce();returntemp;}其他運(yùn)算符類似。(3重)載“/”運(yùn)算符與構(gòu)造函數(shù)同理,得到結(jié)果之后,調(diào)用和函數(shù)。RationalRational::operator/(Rational&x)const{Rationaltemp=Rational(num*x.den,den*x.num);temp.Standardize();temp.Reduce();returntemp;}其他運(yùn)算不需要調(diào)用函數(shù),根據(jù)計(jì)算公式很容易寫出。(4)重載單目運(yùn)算符//*重載單目運(yùn)算符RationalRational::operator-(void)const{returnRational(-num,den);}(5重)載關(guān)系運(yùn)算符(>,<,>=,<)=,==,!=例如:/*重載關(guān)系運(yùn)算符<intRational::operator<(Rational&x)const{return(hum*x.den<den*x.num);}其他運(yùn)算符類似。1.設(shè)計(jì)主菜單界面首先編寫一個(gè)菜單驅(qū)動(dòng)程序,輸入1-之4間的任意一個(gè)數(shù)字,即可進(jìn)入相應(yīng)選擇項(xiàng)。思路提示:可使用語句和…語句實(shí)現(xiàn)主菜單功能的循環(huán)選擇。部分參考代碼:voidmain(){for(;;){switch(menu_select()){Y0();//輸入輸出有理數(shù)break;Y1();//有理數(shù)換算break;Y2();//有理數(shù)求解方程break;cout<<"\t再見!\n";return;}}}intmenu_select()//菜單選擇函數(shù){chars[2];intcn;for(inti=0;i<24;i++){cout<<"*1.檢測有理數(shù)輸入輸出.*\n";TOC\o"1-5"\h\zcout<<"*2.有理數(shù)換算.*\n";cout<<"*3.解有理數(shù)方程.*\n";cout<<"*4.退出.*";cout<<endl;for(;;){gets(s);cn=atoi(s);//是為了使輸入的字符串轉(zhuǎn)變?yōu)閿?shù)字}returncn;}語句“cn=atoi(s);”是為了使輸入的字符串轉(zhuǎn)變?yōu)閿?shù)字,以便使switch中的case語句對(duì)應(yīng)數(shù)字1-3。對(duì)于不符合要求的輸入,將被要求重新輸入。設(shè)計(jì)類3.編寫相關(guān)功能函數(shù)例如:voidY2(){Rationalx
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新版華東師大版八年級(jí)數(shù)學(xué)下冊(cè)《16.1.2分式的基本性質(zhì)約分》聽評(píng)課記錄4
- 北師大版歷史九年級(jí)下冊(cè)第13課《新興力量的崛起》聽課評(píng)課記錄
- 人教版數(shù)學(xué)七年級(jí)上冊(cè)2.1《去括號(hào)》聽評(píng)課記錄
- 人教部編版九年級(jí)歷史下冊(cè)聽課評(píng)課記錄:第13課《羅斯福新政》
- 人教版數(shù)學(xué)九年級(jí)上冊(cè)24.2《直線和圓的位置關(guān)系(1)》聽評(píng)課記錄
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)《完全平方公式》聽評(píng)課記錄6
- 小學(xué)二年級(jí)上冊(cè)除法口算
- 九年級(jí)第一學(xué)期班主任總結(jié)
- 五年級(jí)下冊(cè)口算題
- 蘇教版四年級(jí)數(shù)學(xué)上冊(cè)口算練習(xí)題
- 《建筑工程設(shè)計(jì)文件編制深度規(guī)定》(2022年版)
- 2024-2030年中國煉油行業(yè)發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2024年版的企業(yè)績效評(píng)價(jià)標(biāo)準(zhǔn)
- JB∕T 7946.4-2017 鑄造鋁合金金相 第4部分:鑄造鋁銅合金晶粒度
- 小學(xué)三年級(jí)奧數(shù)入學(xué)測試題
- 我國大型成套設(shè)備出口現(xiàn)狀、發(fā)展前景及政策支持研究
- GB/T 44093-2024排球課程學(xué)生運(yùn)動(dòng)能力測評(píng)規(guī)范
- 2024屆廣東省普通高中學(xué)業(yè)水平合格性考試數(shù)學(xué)模擬卷4
- 河南省鄭州市2023-2024學(xué)年高一下學(xué)期6月期末數(shù)學(xué)試題(無答案)
- 全套電子課件:極限配合與技術(shù)測量(第五版)
- 七年級(jí)數(shù)學(xué)垂線1
評(píng)論
0/150
提交評(píng)論