- 上海交通大学OJ实现复数的加减
- 输出包括八行,对应所给程序中的输出。注意输出浮点数保留2位小数
- 为什么友元要两个参数
-
#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; }
构建一个复数类
最新推荐文章于 2022-03-19 16:30:00 发布