📄 complex.cpp
字号:
#include <iostream>
#include <cmath>
using namespace std;
double x,y;
class complex
{
double real,image;
public:
complex(double r=0.0,double i=0.0)
{
real=r;image=i;
}
void get()
{
real=x;image=y;
}
void print()
{
if(image==0)
cout<<real<<endl;
else if(real==0)
cout<<image<<'i'<<endl;
else
{
if(image<0)
cout<<real<<image<<'i'<<endl;
else
cout<<real<<'+'<<image<<'i'<<endl;
}
}
complex operator+(complex c) //显式地说明局部对象
{
complex temp(real+c.real,image+c.image);
return temp;
}
complex operator+(int c)
{
complex temp(real+c,image);
return temp;
}
complex operator+(double c) // 隐式地说明局部对象
{
return complex(real+c,image);
}
complex operator-(complex c)
{
return complex(real-c.real,image-c.image);
}
complex operator-(int c)
{
return complex(real-c,image);
}
complex operator-(double c)
{
return complex(real-c,image);
}
complex operator*(complex c)
{
return complex(real*c.real-image*c.image,real*c.image+c.real*image);
}
complex operator/(complex c)
{ double d=c.real*c.real+c.image*c.image;
return complex((real*c.real+image*c.image)/d,(image*c.real-real*c.image)/d);
}
complex operator+=(complex c) //定义temp是为了返回以complex类型的值,使"+="可以连续使用
{
complex temp;
temp.real=real+c.real;
temp.image=image+c.image;
real=temp.real;
image=temp.image;
return temp;
}
complex operator=(complex c) //定义temp是为了返回以complex类型的值,使"="可以连续使用
{
complex temp;
temp.real=c.real;
temp.image=c.image;
real=temp.real;
image=temp.image;
return temp;
}
void gong()
{
real=real;image=-image;
}
double abs(void)
{
return sqrt(real*real+image*image);
}
};
int main(void)
{
complex c1(1.0,1.0),c2(2.0,2.0),c3(4.0,4.0),c,T,G;
int i=2;
float f=0.5;
double d=3.456;
cout<<"复数c1为: ";
c1.print();
cout<<"复数c3-c2为: ";
c=c3-c2;c.print();
cout<<"复数c3+c2为: ";
c=c2+c3;c.print();
cout<<"复数c3+c2+c1为: ";
c+=c1;c.print();
cout<<"复数c3+c2+c1+f为: ";
c=c+d;c.print();
cout<<"复数c3*c2为: ";
c=c3*c2;c.print();
cout<<"复数c3/c1为: ";
c=c3/c1;c.print();
cout<<"c3的模是: "<<c3.abs()<<endl;
c=c3=c2=c1;c.print();
c+=c3+=c2+=c1;c.print();
cout<<"复数c1加上整数i等于: ";
c=c1+i;c.print();
cout<<"复数c2减去双数度d等于: ";
c=c2-d;c.print();
cout<<endl;
cout<<"输入实部,虚部,构造一个复数:";
cin>>x>>y;
T.get();
T.print();
cout<<"再分别输入实部,虚部构造另外一个复数与之前的相加得: ";
cin>>x>>y;
G.get();
T+=G;
T.print();
T.gong();
cout<<"相应的共轭复数是: ";
T.print();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -