写分数类的定义,要求在分数类中提供最简化约分、两个分数求和、求差、求积、求除的成员函数,并在main函数里进行测试、打印分数及计算结果。
时间: 2023-07-10 10:39:29 浏览: 88
好的,这是一个关于分数的类的定义,包括最简化约分、两个分数求和、求差、求积、求除的成员函数:
```cpp
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
class Fraction {
public:
int numerator; // 分子
int denominator; // 分母
Fraction(int n, int d) {
numerator = n;
denominator = d;
}
Fraction simplify() const {
int divisor = gcd(numerator, denominator);
return Fraction(numerator / divisor, denominator / divisor);
}
Fraction add(const Fraction& f) const {
int n = numerator * f.denominator + f.numerator * denominator;
int d = denominator * f.denominator;
return Fraction(n, d).simplify();
}
Fraction subtract(const Fraction& f) const {
int n = numerator * f.denominator - f.numerator * denominator;
int d = denominator * f.denominator;
return Fraction(n, d).simplify();
}
Fraction multiply(const Fraction& f) const {
int n = numerator * f.numerator;
int d = denominator * f.denominator;
return Fraction(n, d).simplify();
}
Fraction divide(const Fraction& f) const {
int n = numerator * f.denominator;
int d = denominator * f.numerator;
return Fraction(n, d).simplify();
}
void print() const {
cout << numerator << "/" << denominator << endl;
}
};
int main() {
Fraction f1(1, 2);
Fraction f2(3, 4);
Fraction f3 = f1.add(f2);
f3.print(); // 5/4
Fraction f4 = f1.subtract(f2);
f4.print(); // -1/4
Fraction f5 = f1.multiply(f2);
f5.print(); // 3/8
Fraction f6 = f1.divide(f2);
f6.print(); // 2/3
return 0;
}
```
在这个例子中,我们定义了一个分数类,其中包含分子和分母两个整数变量,以及最简化约分、两个分数求和、求差、求积、求除的成员函数。其中,最简化约分的实现使用了欧几里得算法求最大公约数,求和、求差、求积、求除的实现都是基于分数的基本运算规则进行的。在main函数中,我们创建了两个分数对象,并进行了加、减、乘、除的运算,最后打印出了结果。
阅读全文