#include<iostream>
using namespace std;
class imaginary
{
double x,y;//复数的实部和虚部
public:
imaginary(double,double);
friend void add(imaginary & a,imaginary & b);
friend void sub(imaginary & a,imaginary & b);
friend void mul(imaginary & a,imaginary & b);
friend void div(imaginary & a,imaginary & b);
friend void show();
};
imaginary::imaginary(double i,double j)//构造函数
{
x=i;y=j;
}
double ix,iy;
void add(imaginary & a,imaginary & b)//两个复数相加
{
ix=a.x+b.x;
iy=a.y+b.y;
//cout<<ix<<" + "<<iy<<"i"<<endl;
}
void sub(imaginary & a,imaginary & b)
{
ix=a.x-b.x;
iy=a.y-b.y;
//cout<<ix<<" + "<<iy<<"i"<<endl;
}
void mul(imaginary & a,imaginary & b)
{
ix=a.x*b.x-a.y*b.y;
iy=a.y*b.x+a.x*b.y;
//cout<<ix<<" + "<<iy<<"i"<<endl;
}
void div(imaginary & a,imaginary & b)
{
ix=(a.x*b.x+a.y*b.y)/(b.x*b.x+b.y*b.y);
iy=(a.y*b.x-a.x*b.y)/(b.x*b.x+b.y*b.y);
//cout<<ix<<" + "<<iy<<"i"<<endl;
}
void show()
{
cout<<ix<<" + "<<iy<<"i"<<endl;
}
void main()
{
double q,w,u,v;
cout<<"请分别输入两个复数的实部和虚部"<<endl;
cin>>q>>w;
cin>>u>>v;
char z;
cout<<"请选择您要做的运算";
cin>>z;
imaginary i1(q,w),i2(u,v);
cout<<"第一个复数为:";
cout<<q<<"+"<<w<<"i"<<endl;
cout<<"第二个复数为:";
cout<<u<<"+"<<v<<"i"<<endl;
if(z=='+')
{
cout<<"两个复数相加的结果为:"<<endl;
add(i1,i2);
show();
}
else if(z=='-')
{
cout<<"两个复数相减的结果为:"<<endl;
sub(i1,i2);
show();
}
else if(z=='*')
{
cout<<"两个复数相乘的结果为:"<<endl;
mul(i1,i2);
show();
}
else if(z=='/')
{
cout<<"两个复数相除的结果为:"<<endl;
div(i1,i2);
show();
}
else
{
cout<<"请输入正确的运算符";
}
/*cout<<"两个复数相加的结果为:"<<endl;
add(i1,i2);
cout<<"两个复数相减的结果为:"<<endl;
sub(i1,i2);
cout<<"两个复数相乘的结果为:"<<endl;
mul(i1,i2);
cout<<"两个复数相除的结果为:"<<endl;
div(i1,i2);*/
system("pause");
}