【id:298】【20分】B. 分数的加减乘除(运算符重载)
时间限制
1s
内存限制
128MB
题目描述
Fraction类的基本形式如下:
要求如下:
1.实现Fraction类;common_divisor()和contracted()函数体可为空,不实现具体功能。
2.编写main函数,初始化两个Fraction对象的,计算它们之间的加减乘除。
输入
第1行:依次输入第1个和第2个Fraction对象的分子和分母值。
输出
每行依次分别输出加减乘除计算后的Fraction对象(直接输出分数值,不需要约简)。
样例查看模式
正常显示
查看格式
输入样例1 <-复制
1 3 2 5
输出样例1
fraction=11/15
fraction=-1/15
fraction=2/15
fraction=5/6
分数计算时,题目没有要求化简
#include "iostream"
using namespace std;
class Fraction {
int numerator, denominator;
int common_divisor();
void contracted();
public:
Fraction(int a = 0, int b = 1);
Fraction(Fraction &fraction);
Fraction operator+(Fraction fraction);
Fraction operator-(Fraction fraction);
Fraction operator*(Fraction fraction);
Fraction operator/(Fraction fraction);
void Set(int = 0, int = 1);
void disp() {
cout << "fraction=" << numerator << "/" << denominator << endl;
}
};
Fraction::Fraction(int a, int b) {
numerator = a;
denominator = b;
}
Fraction::Fraction(Fraction &fraction) {
this->numerator = fraction.numerator;
this->denominator = fraction.denominator;
}
Fraction Fraction::operator+(Fraction fraction) {
int finalFenmu = fraction.denominator * denominator;
int finalFenzi = numerator * fraction.denominator + denominator * fraction.numerator;
Fraction res((finalFenzi), (finalFenmu));
return res;
}
Fraction Fraction::operator-(Fraction fraction) {
int finalFenmu = fraction.denominator * denominator;
int finalFenzi = numerator * fraction.denominator - denominator * fraction.numerator;
Fraction res((finalFenzi), (finalFenmu));
return res;
}
Fraction Fraction::operator*(Fraction fraction) {
int finalFenmu = fraction.denominator * denominator;
int finalFenzi = fraction.numerator * numerator;
Fraction res((finalFenzi), (finalFenmu));
return res;
}
Fraction Fraction::operator/(Fraction fraction) {
int finalFenmu = fraction.numerator * denominator;
int finalFenzi = fraction.denominator * numerator;
Fraction res((finalFenzi), (finalFenmu));
return res;
}
int main() {
int numerator, denominator;
cin >> numerator >> denominator;
Fraction one(numerator, denominator);
cin >> numerator >> denominator;
Fraction two(numerator, denominator);
Fraction temp;
temp = one + two;
temp.disp();
temp = one - two;
temp.disp();
temp = one * two;
temp.disp();
temp = one / two;
temp.disp();
}