用C++编写程序,定义一个复数类,编写程序重载四则运算符和++、--运算符,实现复数的相关运算;

 我来答
Scitin
2011-05-15 · TA获得超过2052个赞
知道小有建树答主
回答量:1487
采纳率:0%
帮助的人:863万
展开全部
复数的相关知识不是很懂,只是简单地上网查了一下:
class Complex
{
public:
float a,b;//复数的实部和虚部

//构造函数
Complex():a(0),b(0){}//初始化为0
Complex(float v1,float v2):a(v1),b(v2){}//初始化为a+bi
Complex(const Complex& c ):a(c.a),b(c.b){}//初始化为复数c
~Complex(){}//析构函数

//四则运算
Complex operator + ( const Complex& c ){Complex v(a+c.a,b+c.b);return v;}
Complex operator - ( const Complex& c ){Complex v(a-c.a,b-c.b);return v;}
Complex operator * ( const Complex& c ){Complex v(a*c.a - b*c.b , b*c.a + a*c.b);return v;}
Complex operator / ( const Complex& c ){Complex v( (a*c.a+b*c.b)/(c.a*c.a+c.b*c.b) , (b*c.a-a*c.b)/(c.a*c.a+c.b*c.b) );return v;}

//++和--,不知是不是同时增减实部和虚部
Complex operator ++ (){Complex v(a++,b++);return v;}
Complex operator -- (){Complex v(a--,b--);return v;}

//加多个等于和不等于
bool operator == ( const Complex& c ){return c.a==a && c.b==b;}
bool operator != ( const Complex& c ){return c.a!=a && c.b!=b;}

//显示该复数
void Print(){printf("%g+%gi",a,b);}
};
追问
谢谢你的指导!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伦悦宜yS
2011-05-14 · TA获得超过673个赞
知道小有建树答主
回答量:769
采纳率:100%
帮助的人:373万
展开全部
#include <iostream.h>

class complex
{
public:
complex() { real=imag=0; }
complex(double r, double i)
{
real = r, imag = i;
}
complex operator +(const complex &c);
complex operator -(const complex &c);
complex operator *(const complex &c);
complex operator /(const complex &c);
friend void print(const complex &c);
private:
double real, imag;
};

inline complex complex::operator +(const complex &c)
{
return complex(real + c.real, imag + c.imag);
}

inline complex complex::operator -(const complex &c)
{
return complex(real - c.real, imag - c.imag);
}

inline complex complex::operator *(const complex &c)
{
return complex(real * c.real - imag * c.imag, real * c.imag + imag * c.real);
}

inline complex complex::operator /(const complex &c)
{
return complex((real * c.real + imag + c.imag) / (c.real * c.real + c.imag * c.imag),
(imag * c.real - real * c.imag) / (c.real * c.real + c.imag * c.imag));
}

void print(const complex &c)
{
if(c.imag<0)
cout<<c.real<<c.imag<<'i';
else
cout<<c.real<<'+'<<c.imag<<'i';
}

void main()
{
complex c1(2.0, 3.0), c2(4.0, -2.0), c3;
c3 = c1 + c2;
cout<<"\nc1+c2=";
print(c3);
c3 = c1 - c2;
cout<<"\nc1-c2=";
print(c3);
c3 = c1 * c2;
cout<<"\nc1*c2=";
print(c3);
c3 = c1 / c2;
cout<<"\nc1/c2=";
print(c3);
c3 = (c1+c2) * (c1-c2) * c2/c1;
cout<<"\n(c1+c2)*(c1-c2)*c2/c1=";
print(c3);
cout<<endl;
}
追问
感谢你的回答!只是没有实现++和--的重载,能不能再写点?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xinlihuoche
2011-05-16
知道答主
回答量:63
采纳率:0%
帮助的人:15.7万
展开全部
哦,原来是这样;
追问
什么原来这样????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式