版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C++課程設(shè)計(jì)報(bào)告</b></p><p> 題目:分?jǐn)?shù)計(jì)算器 </p><p><b> 學(xué)號: </b></p><p><b> 姓名: </b></p><p><b> 班級:指導(dǎo)教師: &
2、lt;/b></p><p> 提交日期:2011-9-15 </p><p><b> 程序功能簡介</b></p><p> 分?jǐn)?shù)計(jì)算及測試程序,具有對輸入的運(yùn)算進(jìn)行“+-*/”的功能。</p><p><b> 課程設(shè)計(jì)要求</b></p><p>
3、; 將主程序設(shè)計(jì)成一個分?jǐn)?shù)計(jì)算器。</p><p> 可完成“+-*/’等基本運(yùn)算。</p><p> 可將分?jǐn)?shù)化為十進(jìn)制小數(shù)和帶分?jǐn)?shù)。</p><p> 可執(zhí)行“+-*/”(含括號)四則運(yùn)算。</p><p><b> 設(shè)計(jì)思路</b></p><p> 利用程序進(jìn)行加法 減法 乘法
4、 除法四種基本運(yùn)算,并約分。主要用到的算法:最小公倍數(shù),最大公約數(shù),交換。加法的原理:結(jié)果的分子 是兩個數(shù)的分子分母交換相乘相加的和,結(jié)果的分母是 兩分母的最小公倍數(shù)。減法的原理與加法類似。乘法的原理:分母相乘,分子相乘。除法的原理:第二個分?jǐn)?shù)上下交換后,使用乘法原理。約分的原理:分子分母分別除以分子分母的最大公約數(shù)得到的數(shù)組合成新的分子分母。</p><p><b> 關(guān)鍵源代碼注解</b&g
5、t;</p><p> /*#ifndef _TGR_FRACTIONS_H</p><p> #define _TGR_FRACTIONS_H*/</p><p> #include <iostream.h></p><p> #include <conio.h></p><p>
6、#include <stdlib.h></p><p> #include <math.h></p><p> //#include <bool.h></p><p> #include <string.h></p><p> class fraction //分?jǐn)?shù)類定義</p&
7、gt;<p><b> {</b></p><p><b> public:</b></p><p> fraction();//constructors</p><p> fraction(int initn, int initd);</p><p> //accesso
8、rs</p><p> int numerator() const; //取分子,const成員函數(shù),不能修改數(shù)據(jù)成員</p><p> int denominator() const; //取分母</p><p> double decimal() const; //將分?jǐn)?shù)轉(zhuǎn)換為對應(yīng)的小數(shù)</p><p> fraction
9、absval() const; //分?jǐn)?shù)的絕對值</p><p> //modifiers</p><p> void setnum(int newnum); //設(shè)置分子</p><p> void setden(int newden); //設(shè)置分母</p><p> void simplify(); //約分
10、</p><p> void recip(); //分子分母轉(zhuǎn)置</p><p> const fraction & operator+= (int rhs);</p><p><b> private:</b></p><p><b> int n;</b>&
11、lt;/p><p><b> int d;</b></p><p><b> };</b></p><p> //free (nonmember) functions</p><p> //miscellany</p><p> void simple();
12、 //"簡單計(jì)算"函數(shù)</p><p> void turn(); //"轉(zhuǎn)換"函數(shù)</p><p> void test(); //測試函數(shù)</p><p> void complex(); //"混合運(yùn)算"函
13、數(shù)</p><p> void exam(); //"隨機(jī)測試題"函數(shù)</p><p> int GCF(int x, int y); //求x,y的最大公因子</p><p> //addition operators</p><p> fraction operator+ (co
14、nst fraction &lhs, const fraction &rhs);</p><p> fraction operator+ (const fraction &lhs, int rhs);</p><p> //subtraction operators</p><p> fraction operator- (const
15、fraction &lhs, const fraction &rhs);</p><p> fraction operator- (const fraction &lhs, int rhs);</p><p> //multiplication operators</p><p> fraction operator* (const f
16、raction &lhs, const fraction &rhs);</p><p> fraction operator* (const fraction &lhs, int rhs);</p><p> //division operators</p><p> fraction operator/ (const fraction
17、 &lhs, const fraction &rhs);</p><p> fraction operator/ (const fraction &lhs, int rhs);</p><p> //power operator</p><p> fraction operator^ (const fraction &base,
18、 int exp); //^(冪)運(yùn)算符重載</p><p> //comparison operators</p><p> bool operator== (const fraction &lhs, const fraction &rhs);</p><p> bool operator!= (const fraction &lhs
19、, const fraction &rhs);</p><p> bool operator>= (const fraction &lhs, const fraction &rhs);</p><p> bool operator<= (const fraction &lhs, const fraction &rhs);</p&
20、gt;<p> bool operator> (const fraction &lhs, const fraction &rhs);</p><p> bool operator< (const fraction &lhs, const fraction &rhs);</p><p> bool operator== (c
21、onst fraction &lhs, int rhs);</p><p> bool operator!= (const fraction &lhs, int rhs);</p><p> bool operator>= (const fraction &lhs, int rhs);</p><p> bool operator
22、<= (const fraction &lhs, int rhs);</p><p> bool operator> (const fraction &lhs, int rhs);</p><p> bool operator< (const fraction &lhs, int rhs);</p><p> //
23、 I/O operators/functions</p><p> ostream & operator<< (ostream &os, const fraction &f); // 輸出運(yùn)算符重載</p><p> istream & operator>> (istream &is, fraction &f);
24、// 輸入運(yùn)算符重載</p><p> void PrintAsMixed(ostream &os, const fraction &f); // 輸出帶分?jǐn)?shù)</p><p> /*#endif*/</p><p> /* fraction.cpp</p><p> Fractions class - implemen
25、tation file--分?jǐn)?shù)類執(zhí)行文件開始*/</p><p> //#include "fraction.h"</p><p> fraction::fraction() : n(0), d(1) {} ; //缺省構(gòu)造函數(shù)(=0/1)</p><p> fraction::fraction(int initn, int initd
26、) : n(initn), d(initd) {};</p><p> int fraction::numerator() const //取分子</p><p> {return n;}</p><p> int fraction::denominator() const //取分母</p><p> {return
27、d;</p><p><b> }</b></p><p> double fraction::decimal() const //分?jǐn)?shù)轉(zhuǎn)換小數(shù)</p><p> {return double(n) / double(d);</p><p><b> }</b></p>
28、<p> fraction fraction::absval() const //取分?jǐn)?shù)絕對值</p><p> {fraction returnValue(abs(n), abs(d)); //通過構(gòu)造函數(shù)取分母分子絕對值</p><p> return returnValue;</p><p><b> }</b>
29、;</p><p> void fraction::setnum(int newnum) //設(shè)置分子的值</p><p> {n = newnum;</p><p><b> }</b></p><p> void fraction::setden(int newden) //設(shè)置分母的值&
30、lt;/p><p> {if(newden != 0) //分母非零時設(shè)置</p><p> d = newden;</p><p> else //若分母為零,顯示錯誤信息并退出</p><p> {cout << "錯誤:除數(shù)為
31、零?。?!\n"</p><p> << "按任意鍵終止!";</p><p> getch(); </p><p> abort(); //退出</p><p><b> }</b&
32、gt;</p><p><b> }</b></p><p> void fraction::simplify() //分?jǐn)?shù)約分</p><p><b> {</b></p><p> int r = GCF(n, d);</p><p>&l
33、t;b> n /= r;</b></p><p><b> d /= r;</b></p><p><b> }</b></p><p> void fraction::recip() //分子分母交換</p><p><b> {<
34、/b></p><p> int temp = n;</p><p><b> n = d;</b></p><p><b> d = temp;</b></p><p><b> }</b></p><p> const fractio
35、n & fraction::operator+= (int rhs) //重載"+="</p><p><b> {</b></p><p> fraction newrhs(rhs, 1); //將作為參數(shù)的整數(shù)RHS轉(zhuǎn)換為分?jǐn)?shù)類的對象</p><p> retur
36、n (*this+newrhs); //</p><p><b> }</b></p><p> int GCF(int x, int y) //輾轉(zhuǎn)相除求x,y的最大公約數(shù)</p><p><b> {</b></p><p> int r = x%y
37、;</p><p><b> if(r==0)</b></p><p><b> return y;</b></p><p><b> else</b></p><p> return GCF(y, r);</p><p><b>
38、}</b></p><p> fraction operator+ (const fraction &lhs, const fraction &rhs) //重載"+",完成兩分?jǐn)?shù)相加情況</p><p><b> {</b></p><p> fraction sum;
39、 //定義分?jǐn)?shù)類對象,通過兩參數(shù)對象對其賦值</p><p> int newnum = (lhs.numerator() * rhs.denominator())</p><p> +(rhs.numerator() * lhs.denominator());//得到相加后的分子</p><p> int newden = (lhs.denominat
40、or() * rhs.denominator()); //得到相加后的分母</p><p> sum.setnum(newnum); //設(shè)置分子</p><p> sum.setden(newden); //設(shè)置分母</p><p> sum.simplify(); //分?jǐn)?shù)約分<
41、/p><p> return sum;</p><p><b> }</b></p><p> fraction operator+ (const fraction &lhs, int rhs) //重載"+"分?jǐn)?shù)與整數(shù)相加</p><p><b> {</b>
42、;</p><p> fraction newrhs(rhs, 1); //將RHS轉(zhuǎn)換為分?jǐn)?shù)類對象</p><p> return lhs + newrhs;</p><p><b> }</b></p><p> fraction operator- (const fr
43、action &lhs, const fraction &rhs)//重載"-"完成兩分?jǐn)?shù)相減</p><p><b> {</b></p><p> fraction newrhs = rhs;</p><p> newrhs.setnum(-rhs.numerator()); //設(shè)置分母
44、為其相反數(shù)</p><p> return lhs + newrhs; //利用"+"的重載</p><p><b> }</b></p><p> fraction operator- (const fraction &lhs, int rhs) //重載"-&qu
45、ot;完成分?jǐn)?shù)與整數(shù)的相減</p><p><b> {</b></p><p> fraction newrhs(rhs, -1);</p><p> return lhs + newrhs; //利用"+"的重載</p><p><b>
46、 }</b></p><p> fraction operator* (const fraction &lhs, const fraction &rhs) //重載"*"完成兩分?jǐn)?shù)相乘</p><p><b> {</b></p><p> fraction product;</p&g
47、t;<p> int newnum = lhs.numerator() * rhs.numerator(); //分子相乘</p><p> int newden = lhs.denominator() * rhs.denominator(); //分母相乘</p><p> product.setnum(newnum);
48、 //設(shè)置分子</p><p> product.setden(newden); //設(shè)置分母</p><p> product.simplify(); //分?jǐn)?shù)約分</p><p> return pro
49、duct;</p><p><b> }</b></p><p> fraction operator* (const fraction &lhs, int rhs) //重載"*"完成分?jǐn)?shù)與整數(shù)的相乘 </p><p><b> {</b></p>
50、<p> fraction prod(lhs.numerator() * rhs, lhs.denominator()); //通過構(gòu)造函數(shù)完成賦值</p><p> prod.simplify(); //分?jǐn)?shù)約分</p><p> return prod;</p><p&g
51、t;<b> }</b></p><p> fraction operator/ (const fraction &lhs, const fraction &rhs) //重載"/"完成兩分?jǐn)?shù)相除</p><p><b> {</b></p><p> if(rhs == 0)
52、 //若分母為零,顯示錯誤信息并退出</p><p><b> {</b></p><p> cout << "Error: Division by zero attempted!\n"</p><p> << "Pres
53、s any key to terminate";</p><p><b> getch();</b></p><p> abort(); //退出</p><p><b> }</b></p><p> fracti
54、on newrhs = rhs;</p><p> newrhs.recip(); //將作分母的分?jǐn)?shù)倒置</p><p> return lhs * newrhs; //利用分?jǐn)?shù)乘法</p><p><b> }</b></p><p
55、> fraction operator/ (const fraction &lhs, int rhs) //重載"/"完成分?jǐn)?shù)與整數(shù)的相除 </p><p><b> {</b></p><p> if(rhs == 0) //若分母為零,顯示錯誤信息并退出</p&
56、gt;<p><b> {</b></p><p> cout << "錯誤:除數(shù)為零?。?!\n"</p><p> << "按任意鍵終止!";</p><p><b> getch();</b></p><p>
57、<b> abort();</b></p><p><b> }</b></p><p> fraction quot(lhs.numerator(), lhs.denominator() * rhs); //通過構(gòu)造函數(shù)完成賦值</p><p> quot.simplify();
58、 //分?jǐn)?shù)約分</p><p> return quot;</p><p><b> }</b></p><p> fraction operator^ (const fraction &base, int exp)</p><p><b> {</b
59、></p><p> fraction returnValue;</p><p> returnValue.setnum(pow(base.numerator(), exp)); //通過函數(shù)完成</p><p> returnValue.setden(pow(base.denominator(), exp)); //分子分母
60、冪乘</p><p> return returnValue;</p><p><b> }</b></p><p> bool operator== (const fraction &lhs, const fraction &rhs) //重載"=="判斷兩分?jǐn)?shù)是否相等</p>&l
61、t;p><b> {</b></p><p> return lhs.decimal() == rhs.decimal();</p><p><b> }</b></p><p> bool operator!= (const fraction &lhs, const fraction &rh
62、s) //重載"!="判斷兩分?jǐn)?shù)是否不等</p><p><b> {</b></p><p> return lhs.decimal() != rhs.decimal();</p><p><b> }</b></p><p> bool operator>=
63、 (const fraction &lhs, const fraction &rhs) //重載">="判斷前分?jǐn)?shù)是否大于等//于后分?jǐn)?shù)</p><p><b> {</b></p><p> return lhs.decimal() >= rhs.decimal();</p><p>&l
64、t;b> }</b></p><p> bool operator<= (const fraction &lhs, const fraction &rhs) //重載"<="判斷前分?jǐn)?shù)是否小于等//于后分?jǐn)?shù)</p><p><b> {</b></p><p> ret
65、urn lhs.decimal() <= rhs.decimal();</p><p><b> }</b></p><p> bool operator> (const fraction &lhs, const fraction &rhs) //重載">"判斷前分?jǐn)?shù)是否大于//后分?jǐn)?shù)</p>
66、;<p><b> {</b></p><p> return lhs.decimal() > rhs.decimal();</p><p><b> }</b></p><p> bool operator< (const fraction &lhs, const fractio
67、n &rhs) //重載"<"判斷前分?jǐn)?shù)是否小于//后分?jǐn)?shù)</p><p><b> {</b></p><p> return lhs.decimal() < rhs.decimal();</p><p><b> }</b></p><p>
68、 bool operator== (const fraction &lhs, int rhs) //重載"=="判斷分?jǐn)?shù)與整數(shù)是否相等</p><p><b> {</b></p><p> return lhs.decimal() == rhs;</p><p><b> }&l
69、t;/b></p><p> bool operator!= (const fraction &lhs, int rhs) //重載"!="判斷分?jǐn)?shù)與整數(shù)是否不等</p><p><b> {</b></p><p> return lhs.decimal() != rhs;</p&g
70、t;<p><b> }</b></p><p> bool operator>= (const fraction &lhs, int rhs) //重載">="前分?jǐn)?shù)是否大于等于整數(shù)</p><p><b> {</b></p><p> ret
71、urn lhs.decimal() >= rhs;</p><p><b> }</b></p><p> bool operator<= (const fraction &lhs, int rhs) //重載"<="前分?jǐn)?shù)是否小于等于整數(shù)</p><p><b> {
72、</b></p><p> return lhs.decimal() <= rhs;</p><p><b> }</b></p><p> bool operator> (const fraction &lhs, int rhs) //重載">"前分?jǐn)?shù)是否大于整數(shù)
73、</p><p><b> {</b></p><p> return lhs.decimal() > rhs;</p><p><b> }</b></p><p> bool operator< (const fraction &lhs, int rhs)
74、 //重載"<"前分?jǐn)?shù)是否小于整數(shù)</p><p><b> {</b></p><p> return lhs.decimal() == rhs;</p><p><b> }</b></p><p> ostream & operator<
75、< (ostream &os, const fraction &f) //重載輸出運(yùn)算符</p><p><b> {</b></p><p> fraction temp = f.absval();</p><p> int numer = f.numerator();</p><p>
76、 int denom = f.denominator();</p><p> if((!((numer > 0 && denom > 0) </p><p> || (numer < 0 && denom < 0))) </p><p> && f != 0)
77、 </p><p> os << '-'; //分子分母不同號就輸出"-"</p><p> if(temp.numerator() == 0 || temp.denominator() == 1)</p><p> os <<
78、; temp.numerator(); // 分子為0或分母為1時就輸出分子</p><p><b> else</b></p><p> os << temp.numerator() << '/' << temp.denominator();//其他情況輸出此分?jǐn)?shù)</p>
79、<p> return os; //</p><p><b> }</b></p><p> istream & operator>> (istream &is, fraction &f) //is:輸入流,f:待輸入的分?jǐn)?shù)</p>
80、<p><b> {</b></p><p> int newnum, newden;</p><p> char slash = ' ';</p><p><b> do</b></p><p><b> {</b></p>
81、<p> is >> newnum >> slash >> newden; //</p><p> } while(slash != '/');</p><p> f.setnum(newnum);</p><p> f.setden(newden);</p><
82、p> return is; //</p><p><b> }</b></p><p> //將分?jǐn)?shù)f按整數(shù),真分?jǐn)?shù)格式輸出到流os</p><p> void PrintAsMixed(ostream &os, const fraction &f
83、)</p><p><b> {</b></p><p> int wholePart = f.numerator() / f.denominator();//wholepart獲得整數(shù)部分</p><p> fraction fracPart = f - wholePart; //fracpart獲得真分?jǐn)?shù)部分&l
84、t;/p><p> cout <<"帶分?jǐn)?shù)為:";</p><p> if(wholePart != 0)</p><p> cout << wholePart << " "; //輸出整數(shù)部分</p><p> if(fracP
85、art != 0)</p><p> cout << fracPart; //輸出真分?jǐn)?shù)部分</p><p><b> }</b></p><p> //準(zhǔn)備工作結(jié)束,下面開始主函數(shù)。</p><p> void main(){</p>
86、<p> int choice;</p><p><b> char CLS;</b></p><p> cout<<"是否清屏?(Y/N)\n";</p><p><b> cin>>CLS;</b></p><p> if(CLS=
87、='Y'||CLS=='y')system("cls");</p><p> //getch();</p><p> cout<<" 歡迎使用分?jǐn)?shù)計(jì)算器!\n";</p><p> cout<<"
88、@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n";</p><p> cout<<" @@ @@\n";</p><p> cout&l
89、t;<" @@ <1>簡單計(jì)算 @@\n"; </p><p> cout<<" @@ @@\n";&
90、lt;/p><p> cout<<" @@ <2>分?jǐn)?shù)化為十進(jìn)制小數(shù)和帶分?jǐn)?shù) @@\n";</p><p> cout<<" @@
91、 @@\n";</p><p> cout<<" @@ <3>分?jǐn)?shù)測試 @@\n";</p><p> cout<<" @@
92、 @@\n";</p><p> cout<<" @@ <4>分?jǐn)?shù)混合運(yùn)算 @@\n";</p><p> cout<<" @@
93、 @@\n";</p><p> cout<<" @@ <5>隨機(jī)測試題 @@\n";</p><p> cout<<"
94、 @@ @@\n";</p><p> cout<<" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n";</p><p> co
95、ut<<"請選擇:\n"; //選擇功能</p><p> cin>>choice;</p><p> if(choice>6||choice<1)</p><p> {cout<<"輸入無效,請重新選擇:\n";</p>
96、<p> main(); //回到主菜單</p><p><b> }</b></p><p><b> else{</b></p><p> switch(choice){ //進(jìn)入函數(shù)</p>&l
97、t;p> case 1: simple();break;</p><p> case 2: turn();break;</p><p> case 3: test();break;</p><p> case 4: complex();break;</p><p> case 5: exam();break;</p>
98、;<p><b> }</b></p><p><b> //main();</b></p><p><b> }</b></p><p><b> }</b></p><p> //------------------------
99、----------------------------------------</p><p> void simple(){ //"簡單計(jì)算"函數(shù)</p><p> fraction f1;</p><p> fraction f2;</p><p> fractio
100、n sum;</p><p> char fuhao,yn;</p><p> int f3,kind;</p><p> choose: cout<<" <1>分?jǐn)?shù)與分?jǐn)?shù)\n";</p><p> cout<<" <2>分?jǐn)?shù)與
101、整數(shù)\n";</p><p> cout<<" <3>返回\n";</p><p> cout<<"請選擇:\n";</p><p> cin>>kind; </p><p> if(kind==1)
102、 //分?jǐn)?shù)之間計(jì)算</p><p> {cout<<"請輸入第一個分?jǐn)?shù):"; //輸入數(shù)據(jù)</p><p><b> cin>>f1;</b></p><p> cout<<"\n請輸入第二個分?jǐn)?shù):";</p
103、><p><b> cin>>f2;</b></p><p> cout<<"\n請輸入運(yùn)算符:";</p><p> cin>>fuhao;</p><p> f1.simplify(); //分?jǐn)?shù)約分</p>
104、<p> f2.simplify();</p><p> switch(fuhao){ //進(jìn)入計(jì)算</p><p> case '+':cout<<"\nsum="<<f1+f2<<endl;break;</p><p> cas
105、e '-':cout<<"\nsum="<<f1-f2<<endl;break;</p><p> case '*':cout<<"\nsum="<<f1*f2<<endl;break;</p><p> case '/':co
106、ut<<"\nsum="<<f1/f2<<endl;break;</p><p><b> }</b></p><p><b> }</b></p><p> else if(kind==2){ //分?jǐn)?shù)與整數(shù)之間運(yùn)
107、算</p><p> cout<<"請輸入一個分?jǐn)?shù):";</p><p><b> cin>>f1;</b></p><p> cout<<"\n請輸入一個整數(shù):";</p><p><b> cin>>f3;<
108、;/b></p><p> cout<<"\n請輸入運(yùn)算符:";</p><p> cin>>fuhao;</p><p> f1.simplify();</p><p> switch(fuhao){ //進(jìn)入計(jì)算</p>&l
109、t;p> case '+':cout<<"\nsum="<<f1+f3<<endl;break;</p><p> case '-':cout<<"\nsum="<<f1-f3<<endl;break;</p><p> case
110、39;*':cout<<"\nsum="<<f1*f3<<endl;break;</p><p> case '/':cout<<"\nsum="<<f1/f3<<endl;break;</p><p> //case '^':cout
111、<<"\nsum="<< f1 ^ f3 <<endl;break;</p><p><b> }</b></p><p><b> }</b></p><p> else if(kind==3)main(); //返回</p>
112、<p> else {cout<<"輸入錯誤!請重新選擇:\n";goto choose;}</p><p><b> getch();</b></p><p> cout<<endl;</p><p> cout<<"是否繼續(xù)?(Y/N)\n";
113、 //詢問繼續(xù)與否</p><p><b> cin>>yn;</b></p><p> if(yn=='Y'||yn=='y')simple();</p><p> else main(); //返回菜單</p>
114、<p><b> }</b></p><p> //------------------------------------------------------------</p><p> void turn(){ //"轉(zhuǎn)換"函數(shù)</p><p>
115、fraction f1;</p><p> fraction Result;</p><p><b> char yn;</b></p><p> cout<<"請輸入一個分?jǐn)?shù):\n";</p><p><b> cin>>f1;</b></
116、p><p> cout<<"對應(yīng)小數(shù)為:"<<f1.decimal()<<endl;//使用"分轉(zhuǎn)小"函數(shù)</p><p> if(f1>1) //輸出帶分?jǐn)?shù)</p><p> PrintAsMixed(cout,f1
117、);</p><p> else cout<<"此分?jǐn)?shù)為真分?jǐn)?shù)!"<<endl;</p><p><b> getch();</b></p><p> cout<<endl;</p><p> cout<<"是否繼續(xù)?(Y/N)\n&q
118、uot;;</p><p><b> cin>>yn;</b></p><p> if(yn=='Y'||yn=='y')turn();</p><p> else main();</p><p><b> }</b></p><
119、;p> //-----------------------------------------------------------------</p><p> void test(){ //測試函數(shù)</p><p><b> char yn;</b></p><p> fr
120、action f1; </p><p> fraction f2; //定義兩個分?jǐn)?shù)f1,f2</p><p><b> int i;</b></p><p> // clrscr(); //利用>>重載輸入f1,f2</p><p> cout <&
121、lt; "第一個分?jǐn)?shù):\n";</p><p> cin >> f1;</p><p> cout << "\n第二個分?jǐn)?shù):\n";</p><p> cin >> f2;</p><p> cout << "\n輸入一個整數(shù):\n&qu
122、ot;;</p><p><b> cin >> i;</b></p><p> f1.simplify();</p><p> f2.simplify();</p><p> cout<<"對兩分?jǐn)?shù)進(jìn)行+,-,*,/運(yùn)算\n"; </p>
123、<p> fraction sum = f1 + f2; </p><p> fraction diff = f1 - f2;</p><p> fraction prod = f1 * f2;</p><p> fraction quot;</p><p> if(f2 != 0)</p><p&
124、gt; quot = f1 / f2;</p><p> cout<<"輸出小數(shù)運(yùn)算結(jié)果\n";</p><p> cout << f1 << " 十進(jìn)制為: " << f1.decimal() << '\n';</p><p> cout
125、<< f2 << " 十進(jìn)制為: " << f2.decimal() << "\n\n";</p><p> cout<<"利用<<重載輸出運(yùn)算結(jié)果\n";</p><p> cout << f1 << " + &quo
126、t; << f2 << " = " << sum << " (" << sum.decimal() << ")\n";</p><p> cout << f1 << " - " << f2 << "
127、= " << diff << " (" << diff.decimal() << ")\n";</p><p> cout << f1 << " * " << f2 << " = " << prod <<
128、 " (" << prod.decimal() << ")\n";</p><p> cout << f1 << " / " << f2 << " = ";</p><p> if(f2 != 0)</p><p&g
129、t; cout << quot << " (" << quot.decimal() << ")\n\n";</p><p><b> else</b></p><p> cout << "無意義?。?!\n\n";</p><
130、p> cout<<"進(jìn)行分?jǐn)?shù)(f1)和整數(shù)(i)的四則運(yùn)算并輸出結(jié)果\n"; </p><p> cout << f1 << " + " << i << " = " << f1 + i << "\n";<
131、;/p><p> cout << f1 << " - " << i << " = " << f1 - i << "\n";</p><p> cout << f1 << " * " << i <&l
132、t; " = " << f1 * i << "\n";</p><p> cout << f1 << " / " << i << " = ";</p><p> if(i != 0)</p><p> cout
133、 << f1 / i << "\n\n";</p><p><b> else</b></p><p> cout << "無意義?。?!\n\n";</p><p> cout << "Boolean operator tests (1 =
134、true, 0 = false)\n";</p><p> cout << f1 << " == " << f2 << ": " << (f1 == f2) << '\n';</p><p> cout << f1 << &q
135、uot; != " << f2 << ": " << (f1 != f2) << '\n';</p><p> cout << f1 << " >= " << f2 << ": " << (f1 >= f2)
136、 << '\n';</p><p> cout << f1 << " <= " << f2 << ": " << (f1 <= f2) << '\n';</p><p> cout << f1 <<
137、; " > " << f2 << ": " << (f1 > f2) << '\n';</p><p> cout << f1 << " < " << f2 << ": " << (f1
138、 < f2) << "\n\n";</p><p> double dec1 = f1.decimal();</p><p> double dec2 = f2.decimal();</p><p> if(dec1 > 1 && (int(dec1) != dec1))</p>&l
139、t;p><b> {</b></p><p> cout << f1 << " 代分?jǐn)?shù)為: ";</p><p> PrintAsMixed(cout, f1);</p><p> cout << '\n';</p><p><b
140、> }</b></p><p> if(dec2 > 1 && (int(dec2) != dec2))</p><p><b> {</b></p><p> cout << f2 << " 代分?jǐn)?shù)為: ";</p><p>
141、 PrintAsMixed(cout, f2);</p><p><b> }</b></p><p> cout<<"分?jǐn)?shù)測試完畢!\n";</p><p><b> getch();</b></p><p> //return 0;</p>
142、<p> cout<<endl;</p><p> cout<<"是否繼續(xù)?(Y/N)\n";</p><p><b> cin>>yn;</b></p><p> if(yn=='Y'||yn=='y')test();</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)---分?jǐn)?shù)計(jì)算器
- c++課程設(shè)計(jì)---分?jǐn)?shù)計(jì)算器
- 計(jì)算器c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)——計(jì)算器
- c++課程設(shè)計(jì)--復(fù)數(shù)計(jì)算器
- c++課程設(shè)計(jì)--簡單計(jì)算器
- c++計(jì)算器課程設(shè)計(jì)--計(jì)算器程序設(shè)計(jì)
- c++課程設(shè)計(jì)--簡單計(jì)算器
- c++課程設(shè)計(jì)--計(jì)算器設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--簡單計(jì)算器
- c++簡單計(jì)算器課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--復(fù)數(shù)計(jì)算器
- c++課程設(shè)計(jì)報(bào)告--小型特殊計(jì)算器
- c++課程設(shè)計(jì)報(bào)告--小型特殊計(jì)算器
- c++課程設(shè)計(jì)報(bào)告--小型特殊計(jì)算器
- c++課程設(shè)計(jì)報(bào)告--小型特殊計(jì)算器 (2)
- c++課程設(shè)計(jì)報(bào)告---計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
- c++設(shè)計(jì)計(jì)算器
- c++語言畢業(yè)課程設(shè)計(jì)報(bào)告正文(計(jì)算器的實(shí)現(xiàn))
- c語言課程設(shè)計(jì)--計(jì)算器
評論
0/150
提交評論