⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 complex.cpp

📁 复数的实现
💻 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 + -