赞
踩
定义一个复数类,通过重载运算符:+、-、*,实现两个复数之间的各种运算。
class Complex
{
private:
float real, image;
public:
Complex(float x = 0, float y = 0);
friend Complex operator+(Complex&, Complex&);
friend Complex operator-(Complex&, Complex&);
friend Complex operator*(Complex&, Complex&);
void show();
};
要求如下:
1.实现Complex类;
2.编写main函数,初始化两个Complex对象,计算它们之间的加减乘,并输出结果。
复数相乘的运算规则
设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.
第1行:输入两个数值,分别为第一个Complex对象的实部和虚部。
第2行:输入两个数值,分别为第二个Complex对象的实部和虚部。
10 20
50 40
第1行:两个Complex对象相加后的输出结果。
第2行:两个Complex对象相减后的输出结果。
第3行:两个Complex对象相乘后的输出结果。
Real=60 Image=60
Real=-40 Image=-20
Real=-300 Image=1400
#include<iostream> #include<string> #include<cmath> #include<algorithm> using namespace std; class com { private: float r, i; public: com() {}; com(float x , float y ) { r = x; i = y; } friend com operator+(com& a, com& b) { com temp; temp.r = a.r + b.r; temp.i = a.i + b.i; return temp; } friend com operator-(com& a, com& b) { com temp; temp.r = a.r - b.r; temp.i = a.i - b.i; return temp; } friend com operator*(com& a, com& b) { com temp; temp.r = a.r * b.r-a.i*b.i; temp.i = a.i * b.r+a.r*b.i; return temp; } void show() { cout << "Real=" << r << " Image=" << i << endl; } }; int main() { int num1, num2, num3, num4; cin >> num1 >> num2 >> num3 >> num4; com p3(0,0); com p1(num1, num2); com p2(num3, num4); p3 = p1 + p2; p3.show(); p3 = p1 - p2; p3.show(); p3 = p1 * p2; p3.show(); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。