#include
using namespace std;
class fun //复数加法 减法 乘法 除法的类(函数重载)
{
public:
fun()
{real=0;imag=0;}
fun(double r,double i)
{
real=r;
imag=i;
}
friend fun operator +(fun &,fun &);
friend fun operator -(fun &,fun &);
friend fun operator *(fun &,fun &);
friend fun operator /(fun &,fun &);
void show()
{
printf("%.2lf+%.2lfi\n",real,imag);
}
protected:
double real;
double imag;
};
void pp(int);
using namespace std;
fun operator +(fun &t1,fun &t2)
{
return fun(t1.real+t2.real,t1.imag+t2.imag);
}
fun operator -(fun &t1,fun &t2)
{
return fun(t1.real-t2.real,t1.imag-t2.imag);
}
fun operator *(fun &t1,fun &t2)
{
return fun(t1.real * t2.real - t1.imag * t2.imag,t1.real * t2.imag + t1.imag*t2.real);
}
fun operator /(fun &t1,fun &t2)
{
fun temp=t1+t2;
double c=t2.imag*t2.imag+t2.real*t2.real;
temp.real/=c;
temp.imag/=c;
return temp;
}
void pp(int f)
{
double a,b,c,d;
if(f==1)
{
printf("输入第一个复数的实部:");
cin>>a;
printf("输入第一个复数的虚部:");
cin>>b;
printf("输入第二个复数的实部:");
cin>>c;
printf("输入第二个复数的虚部:");
cin>>d;
fun t1(a,b),t2(c,d);
fun t3=t1+t2;
t3.show();
cout<<endl;
system("pause");
}
else if(f==2)
{
printf("输入第一个复数的实部:");
cin>>a;
printf("输入第一个复数的虚部:");
cin>>b;
printf("输入第二个复数的实部:");
cin>>c;
printf("输入第二个复数的虚部:");
cin>>d;
fun t1(a,b),t2(c,d);
fun t3=t1-t2;
t3.show();
cout<<endl;
system("pause");
}
else if(f==3)
{
printf("输入第一个复数的实部:");
cin>>a;
printf("输入第一个复数的虚部:");
cin>>b;
printf("输入第二个复数的实部:");
cin>>c;
printf("输入第二个复数的虚部:");
cin>>d;
fun t1(a,b),t2(c,d);
fun t3=t1*t2;
t3.show();
cout<<endl;
system("pause");
}
else if(f==4)
{
printf("输入第一个复数的实部:");
cin>>a;
printf("输入第一个复数的虚部:");
cin>>b;
printf("输入第二个复数的实部:");
cin>>c;
printf("输入第二个复数的虚部:");
cin>>d;
fun t1(a,b),t2(c,d);
fun t3=t1/t2;
t3.show();
cout<<endl;
system("pause");
}
}
int main()
{
int i;
while(1)
{
system("CLS");
cout<<"复数计算\n1:加法\n2:减法\n3:乘法\n4:除法\n5:退出\n";
cin>>i;
if(i==1)
pp(1);
else if(i==2)
pp(2);
else if(i==3)
pp(3);
else if(i==4)
pp(4);
else
exit(1);
}
return 0;
}