C++编程定义一个复数类 20
定义一个复数类,通过重载运算符:+,-,*,/,直接实现二个复数之间的四则运算。编写一个完整的程序,测试重载运算符的正确性。要求“+”和“-”用友元函数实现重载,除法“*...
定义一个复数类,通过重载运算符: +,-,*,/,直接实现二个复数之间的四则运算。编写一个完整的程序,测试重载运算符的正确性。要求“+”和“-”用友元函数实现重载,除法“*”和“/”用成员函数实现重载。
请发送到邮箱752863608@qq.com 展开
请发送到邮箱752863608@qq.com 展开
1个回答
展开全部
#include<iostream>
using namespace std;
struct math{double m;double n;};
int main(){
math a,b,c;
char d;
cout<<"请输入第一个复数的实部和虚部"<<endl;
cin>>a.m>>a.n;
cout<<"请输入第二个复数的实部和虚部"<<endl;
cin>>b.m>>b.n;
cout<<"请选择运算法则(+,-,*,/)"<<endl;
cin>>d;
while(d!='+'&&d!='-'&&d!='*'&&d!='/')
{cout<<"输入错误!!!请重新输入"<<endl;
cin>>d;
}
if(d=='+'){c.m=a.m+b.m; c.n=a.n+b.n;}
if(d=='-'){c.m=a.m-b.m;c.n=a.n-b.n;}
if(d=='*'){c.m=a.m*a.n-b.m*b.n;c.n=a.m*b.n+a.n*b.m;}
if(d=='/'){c.m=(a.m*b.m+a.n*b.n)/(b.m*b.m+b.n*b.n);
c.n=(a.n*b.m+a.m*b.n)/(b.m*b.m+b.n*b.n);}
cout<<"计算结果="<<c.m<<"+"<<c.n<<"i"<<endl;
}
using namespace std;
struct math{double m;double n;};
int main(){
math a,b,c;
char d;
cout<<"请输入第一个复数的实部和虚部"<<endl;
cin>>a.m>>a.n;
cout<<"请输入第二个复数的实部和虚部"<<endl;
cin>>b.m>>b.n;
cout<<"请选择运算法则(+,-,*,/)"<<endl;
cin>>d;
while(d!='+'&&d!='-'&&d!='*'&&d!='/')
{cout<<"输入错误!!!请重新输入"<<endl;
cin>>d;
}
if(d=='+'){c.m=a.m+b.m; c.n=a.n+b.n;}
if(d=='-'){c.m=a.m-b.m;c.n=a.n-b.n;}
if(d=='*'){c.m=a.m*a.n-b.m*b.n;c.n=a.m*b.n+a.n*b.m;}
if(d=='/'){c.m=(a.m*b.m+a.n*b.n)/(b.m*b.m+b.n*b.n);
c.n=(a.n*b.m+a.m*b.n)/(b.m*b.m+b.n*b.n);}
cout<<"计算结果="<<c.m<<"+"<<c.n<<"i"<<endl;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询