麻烦看清楚题目,一定按要求!建立一个复数类imaginary,其私有数据成员x和y表示复数的实部和虚部,构造函数imag
1个回答

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;

}

}