编写程序,描述日常生活里的分数,利用成员函数完成分数的求和、最简化、按指定格式打印的操作,并在main中完成对应的测试
时间: 2024-02-09 09:12:36 浏览: 60
简单的处理分数的程序
好的,我可以为您编写这样的程序。以下是一个基本的分数类的实现,可以完成您所需的操作:
```c++
#include<iostream>
using namespace std;
class Fraction {
private:
int numerator; // 分子
int denominator; // 分母
public:
Fraction(int n = 0, int d = 1) {
numerator = n;
denominator = d;
}
void print() { // 按指定格式打印分数
cout << numerator << "/" << denominator << endl;
}
Fraction operator +(Fraction &f) { // 求和
int n = numerator * f.denominator + denominator * f.numerator;
int d = denominator * f.denominator;
return Fraction(n, d).simplify();
}
Fraction simplify() { // 最简化
int gcd = getGCD(numerator, denominator);
numerator /= gcd;
denominator /= gcd;
return *this;
}
int getGCD(int a, int b) { // 辗转相除法求最大公约数
if (a < b) {
int tmp = a;
a = b;
b = tmp;
}
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
};
int main() {
Fraction f1(1, 2);
Fraction f2(3, 4);
Fraction f3 = f1 + f2;
f3.print(); // 打印 5/4
f3.simplify().print(); // 打印 1/1
return 0;
}
```
在上面的代码中,我们定义了一个分数类`Fraction`,其中包含分子和分母两个成员变量,以及打印、求和、最简化三个成员函数。在`main`函数中,我们创建了两个分数对象`f1`和`f2`,然后求它们的和并用`f3`表示,最后分别按指定格式打印`f3`和它的最简化结果。
您可以运行代码查看结果,并根据需要进行修改和扩展。
阅读全文