c 實現分數的讀取與加減乘除運算

2021-10-07 23:54:36 字數 1761 閱讀 9090

首先定義了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.一種乘法...