c++:建立一个复数类Complex,其私有数据成员mX和mY表示复数的实部和虚部,构造函数Complex用于对复数的实部和虚部初始化,友员函数Add,Sub,Mul和Div分别用于进行复数的加、减、乘和除法运算,函数Show用于显示复数的内容。在主函数中,实例化两个复数,并输入一个运算符,按运算符选择相应的友员函数进行复数运算,然后输出运算结果。
时间: 2023-05-23 13:03:30 浏览: 146
ChitGPT: 好的,我会尝试回答你的问题。关于你的第一个问题,以下是完整的 C++ 代码:
```
#include <iostream>
using namespace std;
class Complex {
private:
double mX, mY;
public:
Complex(double x = 0, double y = 0) : mX(x), mY(y) {}
Complex Add(const Complex& other) const {
return Complex(mX + other.mX, mY + other.mY);
}
Complex Sub(const Complex& other) const {
return Complex(mX - other.mX, mY - other.mY);
}
Complex Mul(const Complex& other) const {
return Complex(mX * other.mX - mY * other.mY, mX * other.mY + mY * other.mX);
}
Complex Div(const Complex& other) const {
double d = other.mX * other.mX + other.mY * other.mY;
return Complex((mX * other.mX + mY * other.mY) / d, (mY * other.mX - mX * other.mY) / d);
}
void Show() const {
cout << mX << "+" << mY << "i" << endl;
}
};
int main() {
double x1, y1, x2, y2;
char op;
cout << "请输入第一个复数的实数部分和虚数部分(以空格分隔):" << endl;
cin >> x1 >> y1;
cout << "请输入第二个复数的实数部分和虚数部分(以空格分隔):" << endl;
cin >> x2 >> y2;
Complex c1(x1, y1);
Complex c2(x2, y2);
cout << "请输入要进行的运算(+、-、*、/):" << endl;
cin >> op;
Complex result;
switch (op) {
case '+':
result = c1.Add(c2);
break;
case '-':
result = c1.Sub(c2);
break;
case '*':
result = c1.Mul(c2);
break;
case '/':
result = c1.Div(c2);
break;
default:
cout << "无效的运算符" << endl;
return 1;
}
cout << "运算结果为:" << endl;
result.Show();
return 0;
}
```
请注意,这里的 Complex 类定义了四个友元函数 Add、Sub、Mul 和 Div 用于支持复数的加、减、乘和除法运算。另外,Show 函数用于显示复数的内容。在主函数中,我们可以通过输入两个复数和一个运算符,来实例化两个 Complex 对象,并进行运算。最后,我们可以输出运算结果。
阅读全文