第八周任务(一)3

来源:互联网 发布:licecap for windows 编辑:程序博客网 时间:2024/06/05 23:47
#include <iostream>using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;}friend Complex operator+(Complex &c1,Complex &c2);friend Complex operator-(Complex &c1,Complex &c2);friend Complex operator*(Complex &c1,Complex &c2);friend Complex operator/(Complex &c1,Complex &c2);friend Complex operator+(Complex &c1,double d);    friend Complex operator+(double d,Complex &c1);friend Complex operator-(Complex &c1,double d);friend Complex operator-(double d,Complex &c1);    friend Complex operator*(Complex &c1,double d);    friend Complex operator*(double d,Complex &c1);friend Complex operator/(Complex &c1,double d);friend Complex operator/(double d,Complex &c1);    Complex operator-();void display();private:double real;double imag;};//下面定义成员函数Complex operator+(Complex &c1,Complex &c2){return Complex(c1.real+c2.real,c1.imag+c2.imag);}Complex operator-(Complex &c1,Complex &c2){return Complex(c1.real-c2.real,c1.imag-c2.imag);}Complex operator*(Complex &c1,Complex &c2){Complex c;c.real=c1.real*c2.real-c1.imag*c2.imag;c.imag=c1.real*c2.imag-c1.imag*c2.real;return c;}Complex operator/(Complex &c1,Complex &c2){ Complex c;c.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real);c.imag=(c1.imag*c2.real-c1.real*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real);return c;}Complex operator+(Complex &c1,double d){return Complex(c1.real+d,c1.imag);}Complex operator+(double d,Complex &c1){return Complex(c1.real+d,c1.imag);} Complex operator-(Complex &c1,double d) { return Complex(c1.real-d,c1.imag); } Complex operator-(double d,Complex &c1){ return Complex(c1.real-d,c1.imag); } Complex operator*(Complex &c1,double d) { return Complex(c1.real*d,c1.imag*d); } Complex operator*(double d,Complex &c1) { return Complex(c1.real*d,c1.imag*d); } Complex operator/(Complex &c1,double d) { return Complex(c1.real/d,c1.imag/d); } Complex operator/(double d,Complex &c1) { return Complex(c1.real/d,c1.imag/d); } Complex Complex:: operator-() { return Complex(-real,-imag); }void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3;double d=3;cout<<"c1=";c1.display();cout<<"c2=";c2.display();c3=c1+c2;cout<<"c1+c2=";c3.display();c3=c1-c2;cout<<"c1-c2=";c3.display();c3=c1*c2;cout<<"c1*c2=";c3.display();c3=c1/c2;cout<<"c1/c2=";c3.display();    c3=c1+d;cout<<"c1+d";c3.display();    c3=d+c1;cout<<"d+c1";c3.display();c3=c1-d;cout<<"c1-d";c3.display();c3=d-c1;cout<<"d-c1";c3.display();    c3=c1*d;cout<<"c1*d";c3.display();    c3=d*c1;cout<<"d*c1";c3.display();c3=c1/d;cout<<"c1/d";c3.display();c3=d/c1;cout<<"d/c1";c3.display();    c3=-c1;cout<<"-c1";c3.display();c3=-c2;cout<<"-c2";c3.display();system("pause");return 0;}