分数的加减乘除(运算符重载)

【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();
}

猜你喜欢

转载自blog.csdn.net/m0_62288512/article/details/131580164