设计一个class来表示分数(fraction)
时间: 2024-11-16 22:20:34 浏览: 10
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
5星 · 资源好评率100%
设计一个C++类来表示分数(Fraction),我们可以考虑包含以下属性和功能:
```cpp
class Fraction {
private:
int numerator; // 分数分子
int denominator; // 分数分母
public:
// 构造函数,接受两个整数作为参数
explicit Fraction(int num = 0, int den = 1) : numerator(num), denominator(den) {
// 确保分母不为零,若为零则设置为1避免除零错误
if (denominator == 0)
throw std::invalid_argument("Denominator cannot be zero.");
}
// 获取分数值
double getValue() const {
return static_cast<double>(numerator) / denominator;
}
// 设置分数,接受两个整数作为参数
void set(int num, int den) {
if (den != 0)
numerator = num * den;
else
throw std::invalid_argument("Denominator cannot be zero.");
}
// 返回分数是否是最简形式
bool isReduced() const {
return gcd(numerator, denominator) == 1;
}
// 求最大公约数(GCD)
int gcd(int a, int b) const {
if (b == 0)
return a;
return gcd(b, a % b);
}
// 显示分数
void display() const {
std::cout << numerator << "/" << denominator << " (" << getValue() << ")\n";
}
// 其他辅助函数(比如比较分数大小,加减乘除等)
private:
// 保持私有,防止直接修改
};
```
阅读全文