早教吧 育儿知识 作业答案 考试题库 百科 知识分享

麻烦看清楚题目,一定按要求!建立一个复数类imaginary,其私有数据成员x和y表示复数的实部和虚部,构造函数imaginary用于对复数的实部和虚部初始化,友员函数add,sub,mul和div分别用于进行复数的加

题目详情
麻烦看清楚题目,一定按要求!
建立一个复数类imaginary,其私有数据成员x和y表示复数的实部和虚部,构造函数imaginary用于对复数的实部和虚部初始化,友员函数add,sub,mul和div分别用于进行复数的加、减、乘和除法运算,静态函数show用于显示运算结果.在主函数中,实例化两个复数,并输入一个运算符,按运算符选择相应的友员函数进行复数运算,然后输出运算结果.
▼优质解答
答案和解析
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;
}
}
看了 麻烦看清楚题目,一定按要求!...的网友还看了以下: