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

📄 112.cpp

📁 复数的加减乘除运算
💻 CPP
字号:
#include<iostream.h>             
#include<string.h>                                 
//#include<stdlib.h> 


class complex
{
private:
  double x;
  double y;
public:
	complex( double xx=0.0, double yy=0.0){x=xx;y=yy;}
	complex(complex &p);
	 double getx(){return x;}
	 double gety(){return y;}
 complex operator + (complex c1);
//	 friend  complex& operator + (complex & a,complex & b);

  complex operator - (complex c1);
  complex operator * (complex c1);
  complex operator / (complex c1);
  friend ostream &operator <<(ostream &os,complex &ob)
  {
	return os<<"("<<ob.x<<","<<ob.y<<")";
  }
 friend istream &operator >>(istream &in,complex &ob)
  {
	in>>ob.x;
	in>>ob.y;
	return in;
  }
  complex operator >> (complex c1);
  complex operator = (complex c1);
  void display();
};

complex::complex(complex &p)
{x=p.x;y=p.y;
}
complex complex::operator + (complex c1)
//complex& operator + (complex & a,complex & b)
{
	//return complex(a.x+b.x,a.y+b.y);
	return complex(x+c1.x,y+c1.y);
}
complex complex::operator - (complex c1)
{
	return complex(x-c1.x,y-c1.y);
}
complex complex::operator * (complex c1)
{
	return complex(x*c1.x-y*c1.y,y*c1.x+x*c1.y);
}
complex complex::operator / (complex c1)
{
	return complex((x*c1.x-y*c1.y)/(c1.x*c1.x+c1.y*c1.y),(y*c1.x+x*c1.y)/(c1.x*c1.x+c1.y*c1.y));
}

complex complex::operator = (complex c1)
{   
   return complex(x=c1.x,y=c1.y);
	
}
void complex::display()
{
	cout<<"("<<x<<","<<y<<")"<<endl;
}
class line:public complex
{
public:
	line(complex xp1,complex xp2);
	line(line &);
	add();
	sub();
	mul();
	div(); 
	friend class complex;
private:
	complex p1,p2;
     double A;
     double B;
	 double M;
     double N;
	 double C;
     double D;
     double E;
     double F;
	 double g;
	 
};
line::line(complex xp1,complex xp2):p1(xp1),p2(xp2)

{
	double a=double(p1.getx()+p2.getx());
    double b=double(p1.gety()+p2.gety());
	double m=double(p1.getx()-p2.getx());
    double n=double(p1.gety()-p2.gety());
	double c=double(p1.getx()*p2.getx()-p1.gety()*p2.gety());
    double d=double(p1.getx()*p2.gety()+p1.gety()*p2.getx());
	double e=double(p2.getx()*p2.getx());
    double f=double(p2.gety()*p2.gety());
	A=a;B=b;
	M=m;N=n;
	C=c;D=d;
	g=e+f;
	E=c/g;
	F=d/g;

}
line::add()
{ cout<<"复数的加法:"<<endl;
  cout<<"("<<A<<","<<B<<")"<<endl;
}
line::sub()
{cout<<"复数的减法:"<<endl;
 cout<<"("<<M<<","<<N<<")"<<endl;
}
line::mul()
{   cout<<"复数的乘法:"<<endl;
	cout<<"("<<C<<","<<D<<")"<<endl;
}
line:: div()
{   cout<<"复数的除法:"<<endl;
	cout<<"("<<E<<","<<F<<")"<<endl;
}
template <class T>
T test(T x,T y,T z)
{
	return x+y*z;
} 
void main()
{   complex h(3,4),c(2,8),f(0,0),H(0,0);
    cout<<"测试类的构造函数"<<endl;
    line line(h,c);
    line.add();
	line.sub();
	line.mul();
	line.div();
	cout<<endl;
	cout<<"测试摸板函数test"<<endl;
	cout<<"1:整数x,y,z"<<endl;
	int x=1,y=2,z=3;
	cout<<test(1,2,3)<<endl;
    cout<<"2:浮点数a,b,d"<<endl;
    double o=1.1,p=2.4,q=3.5;
    cout<<test(o,p,q)<<endl;
    cout<<"3:复数m,n,g"<<endl;
    complex m(5,6),n(3,2),g(7,8);
    cout<<test(m,n,g)<<endl; 
    cout<<"h=";h.display();
	cout<<"c=";c.display();
	cout<<endl;
	cout<<"测试重载的+,-,*,/,=,<<,>>"<<endl;
	f=h+c;	f.display();
	f=h-c;	f.display();
	f=h*c;	f.display();
	f=h/c;	f.display();
	f=h;
	f.display();
	cout<<"重载 输入和 输出:"<<endl;
    cin>>H;
    cout<<H<<endl;
  	cout<<endl;
}

⌨️ 快捷键说明

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