```cpp #include <iostream> class Rational { private: int numerator; int denominator; void simplify() { int gcd = __gcd(numerator, denominator); numerator /= gcd; denominator /= gcd; if (denominator < 0) { numerator = -numerator; denominator = -denominator; } } public: Rational(int num = 0, int den = 1) { numerator = num; denominator = (den > 0)? den : 1; simplify(); } Rational operator+(const Rational& other) { int newNumerator = numerator * other.denominator + other.numerator * denominator; int newDenominator = denominator * other.denominator; Rational result(newNumerator, newDenominator); return result; } Rational operator-(const Rational& other) { int newNumerator = numerator * other.denominator - other.numerator * denominator; int newDenominator = denominator * other.denominator; Rational result(newNumerator, newDenominator); return result; } Rational operator*(const Rational& other) { int newNumerator = numerator * other.numerator; int newDenominator = denominator * other.denominator; Rational result(newNumerator, newDenominator); return result; } Rational operator/(const Rational& other) { int newNumerator = numerator * other.denominator; int newDenominator = denominator * other.numerator; Rational result(newNumerator, newDenominator); return result; } bool operator==(const Rational& other) { return numerator == other.numerator && denominator == other.denominator; } bool operator!=(const Rational& other) { return!(*this == other); } bool operator>=(const Rational& other) { return numerator * other.denominator >= other.numerator * denominator; } bool operator>(const Rational& other) { return numerator * other.denominator > other.numerator * denominator; } bool operator<=(const Rational& other) { return numerator * other.denominator <= other.numerator * denominator; } bool operator<(const Rational& other) { return numerator * other.denominator < other.numerator * denominator; } friend std::ostream& operator<<(std::ostream& os, const Rational& r) { if (r.denominator == 1) { os << r.numerator; } else { os << r.numerator << "/" << r.denominator; } return os; } }; int main() { int num1, den1, num2, den2; std::cout << "please enter rational number a (numerator denominator format):" << std::endl; std::cin >> num1 >> den1; std::cout << "please enter rational number b (numerator denominator format):" << std::endl; std::cin >> num2 >> den2; Rational a(num1, den1); Rational b(num2, den2); std::cout << "the output results are as follows:" << std::endl; std::cout << a << " + " << b << " = " << a + b << std::endl; std::cout << a << " - " << b << " = " << a - b << std::endl; std::cout << a << " * " << b << " = " << a * b << std::endl; std::cout << a << " / " << b << " = " << a / b << std::endl; std::cout << a << " == " << b << " : " << (a == b) << std::endl; std::cout << a << "!= " << b << " : " << (a!= b) << std::endl; std::cout << a << " >= " << b << " : " << (a >= b) << std::endl; std::cout << a << " > " << b << " : " << (a > b) << std::endl; std::cout << a << " <= " << b << " : " << (a <= b) << std::endl; std::cout << a << " < " << b << " : " << (a < b) << std::endl; return 0; } ``` [2024-11-09 19:20:32 | AI写代码神器 | 1099点数解答]