用C++语言编写程序完成以下的操作:输入两个或以上复数,利用运算符重载实现求其绝对值、加、减、乘、除等运算操作。功能描述(1)建立复数类。(2)复数信息的输出。(3)求复数的绝对值。实现复数的加、减、乘、除
时间: 2024-09-14 17:09:57 浏览: 40
简单实现C++复数计算器
在C++中,我们可以创建一个名为`Complex`的类来表示复数,并通过运算符重载实现基本的算术运算和绝对值计算。以下是简单的实现步骤:
```cpp
#include <iostream>
#include <cmath>
class Complex {
public:
// 构造函数
Complex(double real = 0.0, double imag = 0.0) : re(real), im(imag) {}
// 数据成员
double real, imag;
// 运算符重载 - 绝对值
friend std::ostream& operator<<(std::ostream& out, const Complex& c);
double abs() const { return std::hypot(re, im); }
// 运算符重载 - 加法
Complex operator+(const Complex& other) const {
return Complex(re + other.re, im + other.im);
}
// 减法
Complex operator-(const Complex& other) const {
return Complex(re - other.re, im - other.im);
}
// 乘法
Complex operator*(const Complex& other) const {
return Complex(re * other.re - im * other.im, re * other.im + im * other.re);
}
// 除法 (假设除数不为零)
Complex operator/(const Complex& other) const {
double denom = other.abs();
return Complex((re * other.re + im * other.im) / denom, (im * other.re - re * other.im) / denom);
}
};
// 输出复数的实现
std::ostream& operator<<(std::ostream& out, const Complex& c) {
out << c.real << " + " << c.imag << "i";
return out;
}
int main() {
Complex num1(3.5, 2.0);
Complex num2(1.0, -4.0);
std::cout << "复数 " << num1 << " 的绝对值是: " << num1.abs() << std::endl;
std::cout << "num1 + num2 = " << num1 + num2 << std::endl;
std::cout << "num1 - num2 = " << num1 - num2 << std::endl;
std::cout << "num1 * num2 = " << num1 * num2 << std::endl;
if (num2.abs() != 0) {
std::cout << "num1 / num2 = " << num1 / num2 << std::endl;
} else {
std::cout << "无法除以零" << std::endl;
}
return 0;
}
```
在这个示例中,我们定义了一个`Complex`类,并实现了加、减、乘、除以及输出操作。注意,为了处理除法,我们检查了除数是否为零。运行这个程序会显示两个复数的相应运算结果。
阅读全文