早教吧作业答案频道 -->其他-->
麻烦看清楚题目,一定按要求!建立一个复数类imaginary,其私有数据成员x和y表示复数的实部和虚部,构造函数imaginary用于对复数的实部和虚部初始化,友员函数add,sub,mul和div分别用于进行复数的加
题目详情
麻烦看清楚题目,一定按要求!
建立一个复数类imaginary,其私有数据成员x和y表示复数的实部和虚部,构造函数imaginary用于对复数的实部和虚部初始化,友员函数add,sub,mul和div分别用于进行复数的加、减、乘和除法运算,静态函数show用于显示运算结果.在主函数中,实例化两个复数,并输入一个运算符,按运算符选择相应的友员函数进行复数运算,然后输出运算结果.
建立一个复数类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;
}
}
{
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;
}
}
看了 麻烦看清楚题目,一定按要求!...的网友还看了以下:
已知m.l是直线,α.β是平面,则下列命题正确的是()A.若l平行于α,则l平行于α内的所有直线B 2020-05-15 …
已知直线l,m和平面α,有下列四个命题:则所有正确命题的序号是————①若l‖m,m属于α,则l‖ 2020-05-20 …
已知m,l,n是直线,α,β是平面,下列命题中正确的是()A.若m⊄α,l⊂α则m∥lB.若l⊥α 2020-07-15 …
已知l,m,n是三条不同的直线,α,β是不同的平面,则α⊥β的一个充分条件是()A.lα,mβ,且 2020-07-26 …
给出下列关于互不相同的直线m,n,l和平面α,β的四个命题:①m⊂α,l∩α=A,点A∉m,则l与 2020-07-26 …
已知m是平面α的一条斜线,点A∈α,l为过点A的一条动直线,那么下列情形不可能出现的是()A.l∥ 2020-07-30 …
高二数学立体几何问题已知直线L,m和平面a,b则a⊥b的充分条件是?Am⊥L,m∥a,L∥bBm⊥ 2020-08-02 …
设l,m,n为三条不同的直线,a为一个平面,对于下列命题:①若l⊥a,则l与a相交;②若m⊂a,n⊂ 2020-11-02 …
已知点M(a,b)(ab≠0)是圆x2+y2=r2内一点,直线m是以点M为中点的弦所在的直线,直线l 2020-11-02 …
已知m是平面α的一条斜线,点A?α,为l过点A的一条动直线,那么下列情形可能出现的是()A、l⊥m且 2020-12-05 …