c++设计一个分数计算器
时间: 2024-02-24 20:59:11 浏览: 238
下面是一个简单的 C++ 分数计算器实现,它可以进行分数的加、减、乘、除运算:
```
#include <iostream>
#include <cstdlib>
using namespace std;
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
class Fraction {
public:
int numerator; // 分子
int denominator; // 分母
Fraction(int n = 0, int d = 1) {
numerator = n;
denominator = d;
}
void reduce() {
int g = gcd(numerator, denominator);
numerator /= g;
denominator /= g;
}
void print() {
reduce();
cout << numerator << "/" << denominator << endl;
}
Fraction operator+(Fraction f) {
int l = lcm(denominator, f.denominator);
int m1 = l / denominator;
int m2 = l / f.denominator;
int n = numerator * m1 + f.numerator * m2;
Fraction result(n, l);
result.reduce();
return result;
}
Fraction operator-(Fraction f) {
int l = lcm(denominator, f.denominator);
int m1 = l / denominator;
int m2 = l / f.denominator;
int n = numerator * m1 - f.numerator * m2;
Fraction result(n, l);
result.reduce();
return result;
}
Fraction operator*(Fraction f) {
int n = numerator * f.numerator;
int d = denominator * f.denominator;
Fraction result(n, d);
result.reduce();
return result;
}
Fraction operator/(Fraction f) {
int n = numerator * f.denominator;
int d = denominator * f.numerator;
Fraction result(n, d);
result.reduce();
return result;
}
};
int main() {
Fraction f1(2, 3), f2(3, 4), f3;
f3 = f1 + f2;
cout << "f1 + f2 = ";
f3.print();
f3 = f1 - f2;
cout << "f1 - f2 = ";
f3.print();
f3 = f1 * f2;
cout << "f1 * f2 = ";
f3.print();
f3 = f1 / f2;
cout << "f1 / f2 = ";
f3.print();
return 0;
}
```
这个程序定义了一个 Fraction 类,包含分数的分子和分母,以及一些基本的运算符重载方法。其中,reduce() 方法可以化简分数,gcd() 方法可以求出最大公约数,lcm() 方法可以求出最小公倍数。
在主函数中,我们可以创建两个分数对象 f1 和 f2,然后使用重载运算符进行加、减、乘、除运算,并将结果输出到屏幕上。
阅读全文