构建一个复数类

来源:互联网 发布:计算机编程历史 编辑:程序博客网 时间:2024/05/28 15:46
  1. 上海交通大学OJ实现复数的加减
  2. 输出包括八行,对应所给程序中的输出。注意输出浮点数保留2位小数
  3. 为什么友元要两个参数
  4. #include<string>#include<iostream>#include<iomanip>usingnamespace std;classMyComplex{public:MyComplex(){real=0;imag=0;};MyComplex(double r,double i){real=r;imag=i;};void display();MyComplexoperator+(MyComplex&c1);MyComplexoperator-(MyComplex&c1);MyComplexoperator*(MyComplex&c1);MyComplexoperator/(MyComplex&c1);friendMyComplexoperator+=(MyComplex&c1,MyComplex&c2);friendMyComplexoperator-=(MyComplex&c1,MyComplex&c2);friendMyComplexoperator*=(MyComplex&c1,MyComplex&c2);friendMyComplexoperator/=(MyComplex&c1,MyComplex&c2);private:double real;double imag;};voidMyComplex::display(){cout<<setiosflags(ios::fixed);cout.precision(2);cout<<real<<" "<<imag<<endl;}MyComplexMyComplex::operator+(MyComplex&c1){MyComplex temp;temp.real=real+c1.real;temp.imag=imag+c1.imag;return temp;}; MyComplexMyComplex::operator-(MyComplex&c1){MyComplex temp;temp.real=real-c1.real;temp.imag=imag-c1.imag;return temp;}MyComplexMyComplex::operator*(MyComplex&c1){MyComplex temp;temp.real=real*c1.real-imag*c1.imag;temp.imag=real*c1.imag+imag*c1.real;return temp;}MyComplexMyComplex::operator/(MyComplex&c1){double k;k=c1.imag*c1.imag+c1.real*c1.real;MyComplex temp;temp.real=(real*c1.real+imag*c1.imag)/k;temp.imag=(imag*c1.real-real*c1.imag)/k;return temp;}MyComplexoperator+=(MyComplex&c1,MyComplex&c2){c1.real+=c2.real;c1.imag+=c2.imag;return c1;}MyComplexoperator-=(MyComplex&c1,MyComplex&c2){c1.real-=c2.real;c1.imag-=c2.imag;return c1;}MyComplexoperator*=(MyComplex&c1,MyComplex&c2){MyComplex temp;temp.real=c2.real*c1.real-c2.imag*c1.imag;temp.imag=c1.real*c2.imag+c1.imag*c2.real;c1=temp;return c1; }MyComplexoperator/=(MyComplex&c1,MyComplex&c2){MyComplex temp;double k;k=c2.imag*c2.imag+c2.real*c2.real;temp.real=(c1.real*c2.real+c1.imag*c2.imag)/k;temp.imag=(c1.imag*c2.real-c1.real*c2.imag)/k;c1=temp;return c1;} int main(){double x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;MyComplex c1(x1,y1),c2(x2,y2),c3,c4,c5,c6,c7;c3=c1+c2;c4=c1-c2;c5=c1*c2;c6=c1/c2;c3.display();c4.display();c5.display();c6.display();c1+=c2;c1.display();c1-=c2;c1.display();c1*=c2;c1.display();c1/=c2;c1.display();return0;}


0 0