定义并实现一个复数类,利用构造函数(复数实部和虚部的数值作为参数)初始化类对象,完成功能: c1.add(c2); //c1= c1 + c2(c1和c2为复数类类对象,功能为两个复数相加) c1.sub(c2); //c1 = c1 - c2(c1和c2为复数类类对象,功能为两个复数相减) 类中提供两个外部接口函数 getReal 和 getImag,功能分别为获得复数实部和虚部的数值。 【输入形式】首先从键盘输入 4 个实数用来初始化两个复数。然后再输入一个字母,a 或者非 a,a 代表两个复数做加法,非 a 字母代表两个复数做减法(第一个复数是被减数)。 【输出形式】输出计算后的复数。 【样例输入】3 5 4.5 0 a 【样例输出】7.5+5.0i 【样例输入】3.2 1.5 6.7 15.8 s 【样例输出】-3.5-14.3i 【样例说明】实数输出时保留一位小数点。 【评分标准】
时间: 2023-05-13 15:07:19 浏览: 214
以下是C知道的回答:
请看以下代码实现:
```
#include <iostream>
using namespace std;
class Complex {
private:
double real, imag;
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
Complex add(Complex c) {
return Complex(real + c.real, imag + c.imag);
}
Complex sub(Complex c) {
return Complex(real - c.real, imag - c.imag);
}
double getReal() {
return real;
}
double getImag() {
return imag;
}
};
int main() {
double r1, i1, r2, i2;
char op;
cin >> r1 >> i1 >> r2 >> i2 >> op;
Complex c1(r1, i1), c2(r2, i2);
if (op == 'a') {
Complex res = c1.add(c2);
printf("%.1f+%.1fi", res.getReal(), res.getImag());
} else {
Complex res = c1.sub(c2);
printf("%.1f%.1fi", res.getReal(), res.getImag());
}
return 0;
}
```
输入格式为:四个实数和一个字符,其中字符为'a'或's',分别代表加法和减法。输出格式为两个实数,分别为计算后的复数的实部和虚部,保留一位小数。
如果您还有其他问题,可以继续问我哦!
阅读全文