第十三周專案1 分數類中的運算子過載(1)

2021-07-12 02:40:39 字數 2015 閱讀 7938

*檔名稱:test.cpp

*作   者:張明宇

*完成日期:2023年5月26日 

*/問題及**:

(1)實現分數類中的運算子過載,在分數類中可以完成分數的加減乘除(運算後再化簡)、比較(6種關係)的運算。

class cfraction

;//過載函式的實現及用於測試的main()函式

(2)在(1)的基礎上,實現分數類中的物件和整型數的四則運算。分數類中的物件可以和整型數進行四則運算,且運算符合交換律。例如:cfraction a(1,3),b; int i=2; 可以完成b=a+i;。同樣,可以完成i+a, 45+a, a*27, 5/a等各種運算。

(3)定義分數的一目運算+和-,分別代表分數取正和求反,將「按位取反運算子」~過載為分數的求倒數運算。

(4)定義分數類中《和》運算子過載,實現分數的輸入輸出,改造原程式中對運算結果顯示方式,使程式讀起來更自然。

#include #include using namespace std;

class cfraction

void simplify();

//輸入輸出的過載

friend istream &operator>>(istream &in,cfraction &x);

friend ostream &operator<<(ostream &out,cfraction x);

cfraction operator+(const cfraction &c); //兩個分數相加,結果要化簡

cfraction operator-(const cfraction &c); //兩個分數相減,結果要化簡

cfraction operator*(const cfraction &c); //兩個分數相乘,結果要化簡

cfraction operator/(const cfraction &c); //兩個分數相除,結果要化簡

cfraction operator+(); //取正一目運算

cfraction operator-(); //取反一目運算

cfraction operator~(); //取倒數一目運算

bool operator>(const cfraction &c);

bool operator<(const cfraction &c);

bool operator==(const cfraction &c);

bool operator!=(const cfraction &c);

bool operator>=(const cfraction &c);

bool operator<=(const cfraction &c);

};// 分數化簡

void cfraction::simplify()

deno/=n; // 化簡

nume/=n;

if (deno<0) // 將分母轉化為正數

}// 過載輸入運算子》

istream &operator>>(istream &in,cfraction &x)

return cin;

}// 過載輸出運算子<<

ostream &operator<<(ostream &out,cfraction x)

// 分數比較大小

bool cfraction::operator<(const cfraction &c)

// 分數比較大小

bool cfraction::operator==(const cfraction &c)

// 分數比較大小

bool cfraction::operator!=(const cfraction &c)

int main()

{ cfraction x,y,s;

cout<<"輸入x: ";

cin>>x;

cout<<"輸入y: ";

cin>>y;

s=+x+y;

cout<<"+x+y="if (x

第十三周專案 1分數類中的運算子過載

檔名稱 main.cpp 作 者 李德坤 完成日期 2016年5月21日 版本號 v1.0 問題描述 分數類中的運算子過載 輸入描述 無 輸出描述 無 include include using namespace std class cfraction ostream operator cfrac...

第十三周專案1 分數類中的運算子過載(改進)

問題及 檔名稱 zwj.cpp 作 者 張偉晶 完成日期 2016年6月2日 版 本 號 v1.0 問題描述 實現分數類中的運算子過載,加減乘除比較 在此基礎上增加取正求反,求倒數運算,交換律 輸入描述 程式輸出 include includeusing namespace std class cf...

第十三周專案1 分數類

問題及 檔名稱 text.cpp 完成日期 2016年5月26日 版本號 vc 6.0 問題描述 實現分數類中的運算子過載,在分數類中可以完成分數的加減乘除 運算後再化簡 比較 6種關係 的運算。輸入描述 程式輸出 include using namespace std class cfractio...