设计一个分数类Fraction。该类的数据成员包括分子fz和分母fm;类中还包括如下成员函数: (1)构造函数,用于初始化分子和分母。 (2)成员函数print,将分数以 "fz/fm" 的形式输出。 (3)成员函数Reduction,用于对分数的分子和分母进行约分。 再编写主函数对该类进行测试。
时间: 2024-03-23 22:43:34 浏览: 275
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
5星 · 资源好评率100%
好的,以下是Fraction类的实现代码:
```c++
#include <iostream>
using namespace std;
class Fraction {
private:
int fz; // 分子
int fm; // 分母
public:
Fraction(int fz = 0, int fm = 1) {
this->fz = fz;
this->fm = fm;
Reduction(); // 构造函数中自动进行约分
}
void print() {
cout << fz << "/" << fm << endl;
}
void Reduction() {
int a = fz, b = fm;
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
int gcd = a; // 最大公约数
fz /= gcd;
fm /= gcd;
}
};
int main() {
Fraction f1(4, 6);
f1.print(); // 输出 2/3
Fraction f2(2, 5);
f2.print(); // 输出 2/5
Fraction f3(8, 12);
f3.print(); // 输出 2/3
return 0;
}
```
在主函数中,我们创建了三个Fraction对象,分别表示2/3、2/5、8/12这三个分数。其中,f1和f3的分子和分母不同,但是它们在输出时都变成了2/3,因为在构造函数中自动进行了约分。
阅读全文