task3
task3 Complex.hpp 代码
#include<iostream>
#include<math.h>
using namespace std;
class Complex{
public:
Complex();
Complex(double real1,double imag1);
Complex(double real1);
Complex(const Complex &r); //复制构造函数
double get_real() const; //返回函数实部
double get_imag() const; //返回函数虚部
void show() const; //输出结果
void add(Complex &m); //一个复数加上本身
friend Complex add(const Complex &c1,const Complex &c2); //实现两个复数相加
friend bool is_equal(const Complex &c1,const Complex &c2); //bool型判断两个复数是否相同
friend double abs(const Complex &x1); //计算复数的取模运算
private:
double real,imag;
};
Complex::Complex():real(0),imag(0){
}
Complex::Complex(double real1)
{
real=real1;
imag=0;
// cout<<real<<endl;
}
Complex::Complex(double real1,double imag1)
{
real=real1;
imag=imag1;
}
Complex::Complex(const Complex &r)
{
real=r.real;
imag=r.imag;
}
double Complex::get_real() const
{
//cout<<real<<endl;
return real;
}
double Complex::get_imag() const
{
return imag;
}
void Complex::add(Complex &m)
{
real=real+m.real;
imag=imag+m.imag;
}
void Complex::show() const
{
double n1,n2;
n1=get_real();
//cout<<n1<<endl;
n2=get_imag();
if(n1==0&&n2==0)
{
cout<<n1;
}
else {
if(n1==0)
{
cout<<n2<<"i";
}
else {
if(n2==0)
{
cout<<n1;
}
else {
if(n2>0)
cout<<n1<<"+"<<n2<<"i";
else cout<<n1<<n2<<"i";
}
}
}
}
Complex add(const Complex &c1,const Complex &c2)
{
Complex c3;
c3.real=c1.real+c2.real;
c3.imag=c1.imag+c2.imag;
return c3;
}
double abs(const Complex &x1)
{
double x;
x=sqrt(x1.real*x1.real+x1.imag*x1.imag);
return x;
}
bool is_equal(const Complex &c1,const Complex &c2)
{
if(c1.real==c2.real&&c1.imag==c2.imag)
return true;
else return false;
}
更换输入数据后运行结果如下:


浙公网安备 33010602011771号