c++语言对复数的四则运算的实现
要求:1.定义复数的结构体2.定义四则运算四种运算函数3.利用函数的调用和参数传递,通过键盘输入(cin的方式)进行运算的两个复数4.结果的输出必须用cout的方式...
要求:
1.定义复数的结构体
2.定义四则运算四种运算函数
3.利用函数的调用和参数传递,通过键盘输入(cin的方式)进行运算的两个复数
4.结果的输出必须用cout的方式 展开
1.定义复数的结构体
2.定义四则运算四种运算函数
3.利用函数的调用和参数传递,通过键盘输入(cin的方式)进行运算的两个复数
4.结果的输出必须用cout的方式 展开
3个回答
展开全部
#include<iostream.h>
struct complex //定义结构类型
{
double real;
double img ;
};
complex add(complex f1,complex f2); //声明调用函数add()
complex sub(complex f1,complex f2); //声明调用函数sub()
complex mul(complex f1,complex f2); //声明调用函数mul()
complex div(complex f1,complex f2); //声明调用函数div()
void main()
{
char op; //定义操作数
double t;
complex c1,c2,c3; //定义三个复数
cout<<"请输入第一个数的实部和虚部"<<endl;
cin>>c1.real>>c1.img;
cout<<"请输入第二个数的实部和虚部"<<endl;
cin>>c2.real>>c2.img;
cout<<"请选择运算符号 + - * / "<<endl;
cin>>op;
switch(op)
{
case '+':
cout<<"上面两个复数的和是:"<<endl;
c3=add(c1,c2); //调用add函数
if(c3.real>0)
cout<<"c1+c2="<<c3.real<<"+"<<c3.img<<"i"<<endl;
else
cout<<"c1+c2="<<c3.real<<c3.img<<"i"<<endl;
break;
case '-':
cout<<"上面两个复数的差是:"<<endl;
c3=sub(c1,c2); //调用sub函数
if(c3.real>0)
cout<<"c1-c2="<<c3.real<<"+"<<c3.img<<"i"<<endl;
else
cout<<"c1-c2="<<c3.real<<c3.img<<"i"<<endl;
break;
case '*':
cout<<"上面两个复数的乘积是:"<<endl;
c3=mul(c1,c2); //调用mul函数
if(c3.img>0)
cout<<"c1*c2="<<c3.real<<"+"<<c3.img<<"i"<<endl;
else
cout<<"c1*c2="<<c3.real<<c3.img<<"i"<<endl;
break;
case '/':
cout<<"上面两个复数的商是:"<<endl;
c3=div(c1,c2); //调用div函数
t=(c2.real*c2.real+c2.img*c2.img);
if(t!=0)
cout<<"c1/c2="<<c3.real<<"/"<<c3.img<<"i"<<endl;//把div函数的return值付给c1/c2,并输出
else
cout<<"输入错误,第二个复数不能为零";
break;
default:
cout<<"输入运算符错误";
}
}
complex add(complex f1,complex f2 )//定义函数使两复数相加,并返回值
{
complex f3;
f3.real=f1.real+f2.real;
f3.img=f1.img+f2.img;
return f3;
}
complex sub(complex f1,complex f2)//定义函数使两复数相减,并返回值
{
complex f3;
f3.real=f1.real-f2.real;
f3.img=f1.img-f2.img;
return f3;
}
complex mul(complex f1,complex f2)//定义函数使两复数相乘,并返回值
{
complex f3;
f3.real=f1.real*f2.real-f1.img*f2.img;
f3.img=f1.real*f2.img+f1.img*f2.real;
return f3;
}
complex div(complex f1,complex f2)//定义函数使两复数相除,并返回值
{
complex f3;
double t;
t=1/(f2.real*f2.real+f2.img*f2.img);
f3.real=(f1.real*f2.real+f1.img*f2.img)*t;
f3.img=(f2.real*f1.img-f1.real*f2.img)*t;
return f3;
}
struct complex //定义结构类型
{
double real;
double img ;
};
complex add(complex f1,complex f2); //声明调用函数add()
complex sub(complex f1,complex f2); //声明调用函数sub()
complex mul(complex f1,complex f2); //声明调用函数mul()
complex div(complex f1,complex f2); //声明调用函数div()
void main()
{
char op; //定义操作数
double t;
complex c1,c2,c3; //定义三个复数
cout<<"请输入第一个数的实部和虚部"<<endl;
cin>>c1.real>>c1.img;
cout<<"请输入第二个数的实部和虚部"<<endl;
cin>>c2.real>>c2.img;
cout<<"请选择运算符号 + - * / "<<endl;
cin>>op;
switch(op)
{
case '+':
cout<<"上面两个复数的和是:"<<endl;
c3=add(c1,c2); //调用add函数
if(c3.real>0)
cout<<"c1+c2="<<c3.real<<"+"<<c3.img<<"i"<<endl;
else
cout<<"c1+c2="<<c3.real<<c3.img<<"i"<<endl;
break;
case '-':
cout<<"上面两个复数的差是:"<<endl;
c3=sub(c1,c2); //调用sub函数
if(c3.real>0)
cout<<"c1-c2="<<c3.real<<"+"<<c3.img<<"i"<<endl;
else
cout<<"c1-c2="<<c3.real<<c3.img<<"i"<<endl;
break;
case '*':
cout<<"上面两个复数的乘积是:"<<endl;
c3=mul(c1,c2); //调用mul函数
if(c3.img>0)
cout<<"c1*c2="<<c3.real<<"+"<<c3.img<<"i"<<endl;
else
cout<<"c1*c2="<<c3.real<<c3.img<<"i"<<endl;
break;
case '/':
cout<<"上面两个复数的商是:"<<endl;
c3=div(c1,c2); //调用div函数
t=(c2.real*c2.real+c2.img*c2.img);
if(t!=0)
cout<<"c1/c2="<<c3.real<<"/"<<c3.img<<"i"<<endl;//把div函数的return值付给c1/c2,并输出
else
cout<<"输入错误,第二个复数不能为零";
break;
default:
cout<<"输入运算符错误";
}
}
complex add(complex f1,complex f2 )//定义函数使两复数相加,并返回值
{
complex f3;
f3.real=f1.real+f2.real;
f3.img=f1.img+f2.img;
return f3;
}
complex sub(complex f1,complex f2)//定义函数使两复数相减,并返回值
{
complex f3;
f3.real=f1.real-f2.real;
f3.img=f1.img-f2.img;
return f3;
}
complex mul(complex f1,complex f2)//定义函数使两复数相乘,并返回值
{
complex f3;
f3.real=f1.real*f2.real-f1.img*f2.img;
f3.img=f1.real*f2.img+f1.img*f2.real;
return f3;
}
complex div(complex f1,complex f2)//定义函数使两复数相除,并返回值
{
complex f3;
double t;
t=1/(f2.real*f2.real+f2.img*f2.img);
f3.real=(f1.real*f2.real+f1.img*f2.img)*t;
f3.img=(f2.real*f1.img-f1.real*f2.img)*t;
return f3;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#包括
结构复杂的/ /定义结构类型
{
一个双实;
双张图片;
};
复杂(复杂的F1,F2复杂); / /声明调用的函数add()
复杂的子系统(复杂的F1,F2复杂); / /声明调用函数sub()
复杂的MUL(复杂F1的,复杂的F2)/ /调用函数MUL()
复杂的div(复杂的F1,F2复杂的); / /声明调用函数div()
/>无效的主要()
{
字符运算; / /定义操作
双T;
复杂的C1,C2,C3,/ /定义了三种复合
cout <<“输入第一个数字”<< endl;的实部和虚部的
CIN >> c1.real >> c1.img
法院<<“请输入第二个数字”<< endl;
CIN >> c2.real >> c2.img的实部和虚部;
BR />
法院<<“请选择运算符号+ - * /”<< endl;
CIN >>运算;
开关(OP)
情况下,'+':
法院<<“上述两个复杂的是:”<< endl;
C3 =加(C1,C2 ); / /调用add函数
(c3.real> 0)
法院<<“C1 + C2 = << c3.real <<”+“<< c3.img”“我“<< endl;
其他
法院<<”C1 + C2 =“<< c3.real << c3.img <<”“<< endl;
突破; BR />
情况下,' - ':
法院<<上述两个复数的区别是:“<< endl;
C3 =子( c1,c2的)/ /子功能
如果(c3.real> 0)被称为
法院<<“c1的-c2的=”<< c3.real <<“+”<< C3 IMG <<“”<< endl;
其他
法院<<“C1-C2 =”<< c3.real << c3.img,“我”< endl; BR />突破;
情况下,'*':
法院<<“上面的两个复杂的产品是:”<< endl;
> C3 = MUL(C1,C2); / /调用mul函数
如果(c3.img> 0)
法院<<“C1 * C2 =”<< c3.real“+ “”c3.img“”我“<< endl;
其他
法院<<”C1 * C2 =“<< c3.real << c3.img <<”“<< endl;
突破;
情况下,'/':
法院<<“两个复数以上的商数:”<< endl;
C3 =分区(C1,C2); / /调用的div功能
T =(c2.real * c2.real + c2.img * c2.img);
</如果(t! = 0)
法院<<“C1/C2 =的”<< c3.real <<“/”<< c3.img <<“”<< endl ;/ /格支付函数的返回值C1/C2,输出
其他
法院<<“输入错误,第二个复杂的不能是零”;
突破;
默认
法院<<“输入操作错误”;
}
}
复杂的add(复杂的F1,F2复杂)/ /定义两个复杂的功能总之,和返回值
{的
复杂的F3;
f3.real f1.real + f2.real;
f3.img = f1.img + f2.img ;
回报f3的;
}
的
复杂子(复杂为f1,f2的络合物)/ /定义的两个复杂减法返回值的函数的
{ />复杂的F3;
f3.real f1.real f2.real;
f3.img = f1.img-f2.img
回报F3;
}
复杂的的MUL(复杂的F1,F2复杂的)/ /定义函数的两个复数相乘,并返回值
{
复杂的F3;
f3.real = F1真正* f2.real-f1.img * f2.img;
f3.img = f1.real * f2.img + f1.img * f2.real;
回报F3和
}
复杂的div(F1复杂的,复杂的F2)/ /定义函数的两个复杂的部门,并返回值
复杂的F3
双T
T = 1 /(f2.real f2.real + f2.img f2.img);
f3.real =(f1.real * f2.real + f1.img * F2。 IMG)* T;的
f3.img =(f2.real * f1.img f1.real * f2.img)* T;
回报F3;
}
结构复杂的/ /定义结构类型
{
一个双实;
双张图片;
};
复杂(复杂的F1,F2复杂); / /声明调用的函数add()
复杂的子系统(复杂的F1,F2复杂); / /声明调用函数sub()
复杂的MUL(复杂F1的,复杂的F2)/ /调用函数MUL()
复杂的div(复杂的F1,F2复杂的); / /声明调用函数div()
/>无效的主要()
{
字符运算; / /定义操作
双T;
复杂的C1,C2,C3,/ /定义了三种复合
cout <<“输入第一个数字”<< endl;的实部和虚部的
CIN >> c1.real >> c1.img
法院<<“请输入第二个数字”<< endl;
CIN >> c2.real >> c2.img的实部和虚部;
BR />
法院<<“请选择运算符号+ - * /”<< endl;
CIN >>运算;
开关(OP)
情况下,'+':
法院<<“上述两个复杂的是:”<< endl;
C3 =加(C1,C2 ); / /调用add函数
(c3.real> 0)
法院<<“C1 + C2 = << c3.real <<”+“<< c3.img”“我“<< endl;
其他
法院<<”C1 + C2 =“<< c3.real << c3.img <<”“<< endl;
突破; BR />
情况下,' - ':
法院<<上述两个复数的区别是:“<< endl;
C3 =子( c1,c2的)/ /子功能
如果(c3.real> 0)被称为
法院<<“c1的-c2的=”<< c3.real <<“+”<< C3 IMG <<“”<< endl;
其他
法院<<“C1-C2 =”<< c3.real << c3.img,“我”< endl; BR />突破;
情况下,'*':
法院<<“上面的两个复杂的产品是:”<< endl;
> C3 = MUL(C1,C2); / /调用mul函数
如果(c3.img> 0)
法院<<“C1 * C2 =”<< c3.real“+ “”c3.img“”我“<< endl;
其他
法院<<”C1 * C2 =“<< c3.real << c3.img <<”“<< endl;
突破;
情况下,'/':
法院<<“两个复数以上的商数:”<< endl;
C3 =分区(C1,C2); / /调用的div功能
T =(c2.real * c2.real + c2.img * c2.img);
</如果(t! = 0)
法院<<“C1/C2 =的”<< c3.real <<“/”<< c3.img <<“”<< endl ;/ /格支付函数的返回值C1/C2,输出
其他
法院<<“输入错误,第二个复杂的不能是零”;
突破;
默认
法院<<“输入操作错误”;
}
}
复杂的add(复杂的F1,F2复杂)/ /定义两个复杂的功能总之,和返回值
{的
复杂的F3;
f3.real f1.real + f2.real;
f3.img = f1.img + f2.img ;
回报f3的;
}
的
复杂子(复杂为f1,f2的络合物)/ /定义的两个复杂减法返回值的函数的
{ />复杂的F3;
f3.real f1.real f2.real;
f3.img = f1.img-f2.img
回报F3;
}
复杂的的MUL(复杂的F1,F2复杂的)/ /定义函数的两个复数相乘,并返回值
{
复杂的F3;
f3.real = F1真正* f2.real-f1.img * f2.img;
f3.img = f1.real * f2.img + f1.img * f2.real;
回报F3和
}
复杂的div(F1复杂的,复杂的F2)/ /定义函数的两个复杂的部门,并返回值
复杂的F3
双T
T = 1 /(f2.real f2.real + f2.img f2.img);
f3.real =(f1.real * f2.real + f1.img * F2。 IMG)* T;的
f3.img =(f2.real * f1.img f1.real * f2.img)* T;
回报F3;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哇塞,这需要运算符重载啊
追问
不难吧
就是一个作业
追答
只知道有运算符重载,但从来没用过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询