有理數計算器設計(C )

2021-09-25 13:41:35 字數 1622 閱讀 6914

我們做了乙個c++的課程設計的主要內容,認真做的話可以從**裡面學到很多哦

【問題描述】

有理數是乙個可以化為乙個分數的數,在c++中,並沒有預先定義有理數,請定義乙個有理數類,將有理數的分子和分母分別存放在兩個整型變數中。對有理數的各種操作都可以用過載運算子來實現。

【功能要求】

(1)定義並實現乙個有理數類。

(2)輸入/輸出:過載《和提取》運算子,使得對有理數可以直接輸入輸出。

設有理數輸入格式為:分子 分母

有理數輸出格式為:分子/分母

(3)計算功能:通過過載運算子+、-、、/對有理數進行算術運算,通過過載運算子==實現判定兩個有理數是否相等。還要定義乙個將有理數轉換為實數的函式。

(4)化簡功能:寫乙個優化函式使儲存的有理數分子和分母之間沒有公約數(除去1以外)。

(5)選單功能:每種功能的操作都是在選單中進行相應選擇。*

#include#include//標頭檔案

#includeusing namespace std;

class rational //定義乙個有理數類

;void equeal(rational &r1, rational &r2)

void printreal(rational &r) //輸出實數

rational::rational(int num, int denom)

//標準化

void rational::normalize()

numerator /= a;

denominator /= a;

}rational rational::normalize1() // 增加乙個分數化簡函式

rational r(numerator / a, denominator / a);

return r;

}rational operator+(rational r1, rational r2) //過載加法運算子,分數的加法

rational operator-(rational r1, rational r2) //過載減法運算子,函式結構和加法一致,返回加法運算

rational operator*(rational r1, rational r2) //過載乘法運算子,呼叫初始化類是化簡了分數

rational operator/(rational r1, rational r2) //返回乘法運算函式體

istream &operator>>(istream &in, rational& r) //流輸入運算子

}ostream &operator<<(ostream &out, rational& r) //流輸出運算子

while (q != 'y'&&q != 'y'&& q != 'n'&&q != 'n'); //是程式實現多次執行,進行判斷是否繼續進行操作

} while (q == 'y' || q == 'y');

return 0; //程式結束

}

@如果有程式方面的優化,請告訴我哦,謝謝。

c 有理數加法

本題要求編寫程式,計算兩個有理數的和。輸入格式 輸入在一行中按照a1 b1 a2 b2的格式給出兩個分數形式的有理數,其中分子和分母全是整形範圍內的正整數。輸出格式 在一行中按照a b的格式輸出兩個有理數的和。注意必須是該有理數的最簡分數形式,若分母為1,則只輸出分子。輸入樣例1 1 3 1 6輸出...

c 有理數加法

本題要求編寫程式,計算兩個有理數的和。輸入格式 輸入在一行中按照a1 b1 a2 b2的格式給出兩個分數形式的有理數,其中分子和分母全是整形範圍內的正整數。輸出格式 在一行中按照a b的格式輸出兩個有理數的和。注意必須是該有理數的最簡分數形式,若分母為1,則只輸出分子。輸入樣例1 1 3 1 6輸出...

有理數類的設計

package rational public class rational public long getnumerator public long getdenominator public rational add rational r2 public rational subtract ra...