首先定義了euclid函式,採用歐幾里得演算法用來求最大公約數,方便後續用在分數的化簡與通分上。
定義了fraction類
私有資料成員:
int nume (分母) int deno (分子)
共有函式
建構函式三個分別用於整形分數,double小數,文字型別來構造分數
複製建構函式乙個
化簡函式 simplify
輸出函式 display
運算子過載±*/採用友元函式在類外定義
主函式用於測試
#include
#include
#include
using
namespace std;
inteuclid
(int a,
int b)
return a;
}class
fraction
;fraction
(double d)
;//double型別轉化fraction 類外詳細定義
fraction
(const string str)
;//string型別轉化fraction 類外詳細定義
fraction
(const fraction& f)
:nume
(f.nume)
,deno
(f.deno)
;//複製建構函式
void
simplify()
;//化簡
void
display()
;//輸出
friend fraction operator
+(fraction a,fraction b)
;friend fraction operator
-(fraction a,fraction b)
;friend fraction operator
*(fraction a,fraction b)
;friend fraction operator
/(fraction a,fraction b)
;private
:int nume;
//分子
int deno;
//分母 };
fraction::
fraction
(double d)
:nume
(d),
deno(1
);simplify()
;}fraction::
fraction
(const string str)
:nume(0
),deno(1
)void fraction::
simplify()
void fraction::
display()
else cout<<
"the deno must not be 0"
<}fraction operator
*(fraction a,fraction b)
fraction operator
/(fraction a,fraction b)
fraction operator
+(fraction a,fraction b)
fraction operator
-(fraction a,fraction b)
intmain()
分數的加減乘除
用分數形式表示的有理數類如下 class rational 求最小公倍數 最小公倍數等於兩數乘積 最大公約數 int mcm int a,int b 定義乙個結構體 存放乙個數的分子與分母 struct rational 化簡 將分數化為最簡 分子分母同除它們的最大公約數 void simplify...
分數的約分及加減乘除運算
定義 個分數類 fraction 例項變數 分子,分母 法 初始化 方法 2個引數 便利構造器,約分,列印,加,減,乘,除。main.m import import fraction.h int main int argc,const char argv fraction.h import inte...
C 位運算實現加減乘除
近日複習劍指offer,看到了當時寫第65題題實現了位運算的加減乘除法,特此記錄 int add int num1,int num2 return num1 int add2 int num1,int num2 2.一種減法運算 intnegtive int num1,int num2 3.一種乘法...