如何用C++编写复数类complex ,和 加减乘除的重载哦,高手help~~~~~定义一个复数类complex,二个数据成员为double型r,i为private属性.定义代二个参数的构造函数和一个showinfo()函数用以输出r,i的值,set

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/06 12:09:53

如何用C++编写复数类complex ,和 加减乘除的重载哦,高手help~~~~~
定义一个复数类complex,二个数据成员为double型r,i为private属性.定义代二个参数的构造函数和一个showinfo()函数用以输出r,i的值,setinfo()有两个参数专门设置complex类的r,i值,另外作为成员函数重载的运算符“+ 、_ 、*”的功能是将此类二个对象的数据成员r和i对

复数运算
Description
输入两个复数a1+b1i和a2+b2i,对此进行加(+)、减(-)、乘(*)和除(/)法运算.
Input
输入多组测试数据,第一行为测试数据的组数T,每组测试数据由3行组成,第1行为a1和b1,第2行为一个字符,代表a1+b1i与a2+b2i所进行的运算(可能的值有+、-、*、/),第3行为a2和b2.这里的a1、b1、a2、b2均为整数.我们的测试数据保证在进行除法运算时不会发生被0除的情况.
Output
每组测试数据输出一行,即计算后的结果a3+b3i的最简形式,中间不包含任何空格,其中a3和b3均保留1位小数.
Sample Input
3
1 1
+
1 1
1 1
-
1 0
1 1
+
-1 -1
#include
#include
using namespace std;
class Complex
{
private:
double real;
double imag;
public:
Complex()
{ real=0;
imag=0;
}
void Init();
Complex operator+(Complex &c2);
Complex operator-(Complex &c2);
Complex operator*(Complex &c2);
Complex operator/(Complex &c2);
double Get_real() {return real;}
double Get_imag() {return imag;}
void display();
};
void Complex::Init()
{
cin>>real>>imag;
}
Complex Complex::operator+(Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
Complex Complex::operator-(Complex &c2)
{
Complex c;
c.real=real-c2.real;
c.imag=imag-c2.imag;
return c;
}
Complex Complex::operator*(Complex &c2)
{
Complex c;
c.real=real*c2.real-imag*c2.imag;
c.imag=real*c2.imag+imag*c2.real;
return c;
}
Complex Complex::operator/(Complex &c2)
{
Complex c;
double t=c2.real*c2.real+c2.imag*c2.imag;
c.real=(real*c2.real+imag*c2.imag)/t;
c.imag=(imag*c2.real-real*c2.imag)/t;
return c;
}
void Complex::display()
{
double re=real,im=imag;
if(re==0)
{
if(im==0)
cout