要编程一个分数计算器,你可以按照以下步骤进行:
定义分数类
分数类应该包含分子和分母两个私有成员变量。
提供构造函数来初始化分子和分母,并检查分母是否为零。
提供显示函数来输出分数。
提供加、减、乘、除等运算函数,并在这些函数中进行分数的运算和化简。
实现化简功能
使用最大公约数(GCD)来化简分数,确保结果是最简形式。
实现输入输出功能
提供用户输入分数的功能,并能够读取分子和分母。
提供输出分数结果的功能,并确保结果以最简形式显示。
实现菜单功能
创建一个菜单,让用户选择不同的运算操作。
根据用户的选择调用相应的运算函数。
异常处理
在输入分母为零时,抛出异常并提示用户。
```cpp
include using namespace std; class Integer { protected: int value; public: Integer(int val) : value(val) {} void display() { cout << value; } }; class Fraction : public Integer { private: int numerator; int denominator; public: Fraction(int num, int den) : Integer(0), numerator(num), denominator(den) { if (denominator == 0) { throw "分母不能为零"; } simplify(); } void display() { if (numerator % denominator == 0) { cout << numerator / denominator; } else { cout << numerator << "/" << denominator; } } void add(const Fraction& other) { int num = numerator * other.denominator + other.numerator * denominator; int den = denominator * other.denominator; numerator = num; denominator = den; simplify(); } void sub(const Fraction& other) { int num = numerator * other.denominator - other.numerator * denominator; int den = denominator * other.denominator; numerator = num; denominator = den; simplify(); } void mul(const Fraction& other) { numerator *= other.numerator; denominator *= other.denominator; simplify(); } void div(const Fraction& other) { numerator *= other.denominator; denominator *= other.numerator; simplify(); } void simplify() { int gcd = std::gcd(numerator, denominator); numerator /= gcd; denominator /= gcd; } }; int main() { char op; Fraction f1, f2; while (true) { cout << "欢迎使用分数计算器\n"; cout << "请选择运算:\n"; cout << "1. 加法\n"; cout << "2. 减法\n"; cout << "3. 乘法\n"; cout << "4. 除法\n"; cout << "0. 退出\n"; cout << "输入你的选择: "; cin >> op; if (op == '0') { break; } cout << "请输入第一个分数的分子和分母: "; cin >> f1.numerator >> f1.denominator; cout << "请输入第二个分数的分子和分母: "; cin >> f2.numerator >> f2.denominator; switch (op) { case '1': f1.add(f2); break; case '2': f1.sub(f2); break; case '3': f1.mul(f2); break; case '4': f1.div(f2); break; default: cout << "无效的选择\n"; continue; } cout << "结果是: "; f1.display(); cout << "\n"; } return 0; } ``` 这个程序定义了一个`Fraction`类,实现了分数的加、减、乘