您的位置:首页 > 编程语言 > C语言/C++

复数四则运算-c++代码实现及运行实例结果

2017-12-16 12:39 597 查看
c++代码

#include <iostream>

using namespace std;

class complex//类置于开始部分
{
private:
double imag;//虚部实部
double real;
public:
complex add(complex x);//四则运算
complex sub(complex x);
complex mul(complex x);
complex div(complex x);
void output();//打印输出
void initSet(double re,double im);//初始化
};

void complex::initSet(double re=0,double im=0)//不传参默认值为零
{
real=re;
imag=im;
}

void complex::output()
{
if(real!=0)
{
cout<<real;
if(imag>0)
cout<<"+"<<imag<<"i";
else if(imag==0)
cout<<imag;
else if(imag<0)
cout<<"-"<<imag<<"i";
}
else
{
if(imag>0)
cout<<imag<<"i";
else if(imag==0)
cout<<imag;
else if(imag<0)
cout<<"-"<<imag<<"i";
}
cout<<endl;

}

complex complex::add(complex x)
{
complex result;
result.real=real+x.real;
result.imag=imag+x.imag;
return result;
}

complex complex::sub(complex x)
{
complex result;
result.real=real-x.real;
result.imag=imag-x.imag;
return result;
}

complex complex::mul(complex x)
{
complex result;
result.real=real*x.real-imag*x.imag;
result.imag=imag+x.real+x.imag*real;
return result;
}

complex complex::div(complex x)
{
complex result;
if(x.real==0&&x.imag==0)
{
cout<<"除数不能为零"<<endl;
cout<<"被除数为:"<<endl;
}

else
{
result.real=(real*x.real+imag*x.imag)/(x.real*x.real+x.imag*x.imag);
result.imag=(imag*x.real-x.imag*real)/(x.real*x.real+x.imag*x.imag);
return result;
}
result.real=real+x.real;
result.imag=imag+x.imag;
return result;
}

int main()
{
complex x1,x2,x3,x4,result1,result2,result3,result4;
x1.initSet(-1,1);//初始化,整数、小数均可
x2.initSet(-2,2);
x3.initSet(0,3);
x4.initSet();

cout<<"复数x1的值"<<endl;
x1.output();//先打印输出
cout<<"复数x2的值"<<endl;
x2.output();
cout<<"复数x3的值"<<endl;
x3.output();
cout<<"复数x4的值"<<endl;
x4.output();

cout<<"x1与x2相加的结果"<<endl;
result1=x1.add(x2);//x1与x2相加
result1.output();//输出结果
cout<<"x2与x3相减的结果"<<endl;
result2=x2.sub(x3);
result2.output();
cout<<"x3与x1相乘的结果"<<endl;
result3=x3.mul(x1);
result3.output();
cout<<"x2与x4相除的结果"<<endl;
result4=x2.div(x4);
result4.output();

return 0;
}


运算结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: