class imaginary
{
public:
double real,imagin;
imaginary()//构造函数,将实部虚部置0
{ real=0; imagin=0; }
imaginary(double r,double i)//构造函数,创建复数对象的同时完成复数的实部虚部的初始化,r为实部,i为虚部.
{ real=r; Imagin=i; }
imaginary add(imaginary c)//复数相加,将结果返回方法调用者.
{ real+=c.real; Imagin+=c.Imagin; return this; }
imaginary minus(imaginaryc)//复数相减,结果返回方法调用者.
{ real-=c.real; Imagin-=c.Imagin; return this; }
imaginary multi(imaginary c)//复数相乘,结果返回方法调用者.
{
double tempreal,tempimagin;
tempreal=real; tempimagin=Imagin;
real=tempreal*c.real-tempimagin*c.Imagin;
Imagin=tempreal*c.Imagin+tempimagin*c.real;
return this;
}
imaginary div(imaginary c)//复数相除,结果返回方法调用者.
{
double tempreal,tempimagin;
tempreal=real; tempimagin=Imagin;
real= (tempreal*c.real+tempimagin*c.Imagin) / (c.real*c.real+c.Imagein*c.Imagein);
Imagin=(tempimagin*c.real-tempreal*c.Imagin)/ (c.real*c.real+c.Imagein*c.Imagein);
return this;
}
static void show(imaginary c)
{
printf("real=%lf Imagein=%lf",c.real,c.Imagein);
}
}
main()
{
imaginary a(1.0,2.0);
imaginary b(3.0,4.0);
char c = getch();
switch(c)
{
case '+':a.add(b); break;
case '-':a.minus(b); break;
case '*':a.multi(b); break;
case '/':a.div(b); break;
default:break;
}
imaginary::show(a);
return;
}
}