怎么编程一个分数计算器

时间:2025-01-28 18:30:58 网络游戏

要编程一个分数计算器,你可以按照以下步骤进行:

定义分数类

分数类应该包含分子和分母两个私有成员变量。

提供构造函数来初始化分子和分母,并检查分母是否为零。

提供显示函数来输出分数。

提供加、减、乘、除等运算函数,并在这些函数中进行分数的运算和化简。

实现化简功能

使用最大公约数(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`类,实现了分数的加、减、乘