实验4_1.cpp

来自「VC开发的复数运算符重载源代码」· C++ 代码 · 共 76 行

CPP
76
字号
#include<math.h>
#include<iostream.h>
class complex
{
private: double real,imag;
public : complex(){real=imag=0.0;}
		 complex(double r, double i){real=r;imag=i;}
		 complex operator+(const complex& c);
         complex operator-(const complex& c);
         complex operator*(const complex& c);
         complex operator/(const complex& c);
		 friend void print(const complex& c);
};
void formatoutput();
inline complex complex::operator+(const complex& c)
{return complex(real+c.real,imag+c.imag);}

inline complex complex::operator-(const complex& c)
{return complex(real-c.real,imag-c.imag);}

inline complex complex::operator*(const complex& c)
{complex temp;
temp.real=real*c.real-imag*c.imag;
temp.imag=real*c.imag+imag*c.real;
return temp;
}

inline complex complex::operator/(const complex& c)
{complex temp;
double t=c.real*c.real+c.imag*c.imag;
temp.real=(real*c.real+imag*c.imag)/t;
temp.imag=(imag*c.real-real*c.imag)/t;
return temp;
}

void print(const complex& c)
{if(c.imag<0)
cout<<c.real<<c.imag<<'i'<<endl;
else
cout<<c.real<<'+'<<c.imag<<'i'<<endl;
}
void formatoutput()
{cout.setf(ios::showpoint);
cout.precision(2);
}
void main()
{formatoutput();
int a,b,c,d;
cout<<"please input the c1:";
cin>>a>>b;
cout<<"please input the c2:";
cin>>c>>d;
complex c1(a,b),c2(c,d),c3;
c3=c1+c2;
cout<<"\n c3=c1+c2=";
print(c3);

c3=c1-c2;
cout<<"\n c3=c1-c2=";
print(c3);
c3=c1*c2;
cout<<"\n c3=c1*c2=";
print(c3);
c3=c1/c2;
{if(c==0&&d==0)cout<<"error!分母为零,无意义"<<endl;
else
{cout<<"\n c3=c1/c2=";
print(c3);}
}
c3=(c1+c2)*(c1-c2)*c2/c1;
{if(a==0&&b==0)cout<<"error!分母为零,无意义"<<endl;
else{cout<<"\nc3=(c1+c2)*(c1-c2)*c2/c1=";
print(c3);}}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?