C23_复数的定义-表示和实现-C语言程序.doc

C23_复数的定义-表示和实现-C语言程序.doc

ID:51782329

大小:76.41 KB

页数:5页

时间:2020-03-15

C23_复数的定义-表示和实现-C语言程序.doc_第1页
C23_复数的定义-表示和实现-C语言程序.doc_第2页
C23_复数的定义-表示和实现-C语言程序.doc_第3页
C23_复数的定义-表示和实现-C语言程序.doc_第4页
C23_复数的定义-表示和实现-C语言程序.doc_第5页
资源描述:

《C23_复数的定义-表示和实现-C语言程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构》作业一抽象数据类型—复数的定义、表示及其实现1.抽象数据类型复数的定义:ADTComplex{数据对象:D={a,ba,bÎR,R为实数集}数据关系:S={a为复数实部,b为复数虚部}基本操你:Complex(&z,a=0,b=0)操作结果:构造复数z,其实部和虚部分别为a和b,不带参数时自动取0。GetReal(x)初始条件:复数x已存在;操作结果:返回z的实部。GetImag(x)初始条件:复数x已存在;操作结果:返回z的虚部。Add(&z,x,y)初始条件:复数x,y已存在;操作结果:将x与y的和存入z。Sub(&z,x,y)初始条件:复数

2、x,y已存在;操作结果:将x与y的差存入z。Mul(&z,x,y)初始条件:复数x,y已存在;操作结果:将x与y的积存入z。Div(&z,x,y)初始条件:复数x,y已存在;操作结果:将x与y的商存入z。Pow(&z,x,n)初始条件:复数x已存在;操作结果:将x的n次方存入z,n为非负整数。Pow(&z,x,a)初始条件:复数x已存在;操作结果:将x的乘a次幂存入z,a为实数。Abs(x)初始条件:复数x已存在;操作结果:返回复数x的模。ComplexAng(x)初始条件:复数x已存在;操作结果:返回复数x的幅角。PrintImage(x)初始条件:复数x已存在;操

3、作结果:以“bi”的形式显示复数x的虚部。ErrorExit(str)初始条件:str为字串常量;操作结果:遇到非法时(比如分母为0时)强形退出程序。Print(x)初始条件:复数x已存在;操作结果:以“a+bi”的形式显示复数x。}ADTComplex1.抽象数据类型复数的表示与实现:#include//getch#include//cout#include//sqrt,powusingnamespacestd;//std命名空间#defineeps1.0e-10//考虚计算精度#definePI3.1415926

4、536//圆周率classComplex{//复数类的定义private://私有变量:存取只能通过成员函数doubler,i;public://公有变量:可通过成员运算符存取Complex(Complex&z,doublex=0,doubley=0)//构造函数:初始化{z.r=x;z.i=y;}doubleGetReal(Complexx){returnx.r;}//取实部doubleGetImag(Complexx){returnx.i;}//取虚部voidAdd(Complex&x,Complexc1,Complexc2)//复数相加{x.r=c1.r+c2.

5、r;x.i=c1.i+c2.i;}voidSub(Complex&x,Complexc1,Complexc2)//复数相减{x.r=c1.r-c2.r;x.i=c1.i-c2.i;}voidMul(Complex&x,Complexc1,Complexc2)//复数相乘{x.r=c1.rc2.r-c1.ic2.i;x.i=c1.rc2.i+c1.ic2.r;}doubleAbs(Complexx)//复数求模{returnsqrt(x.rx.r+x.ix.i);}voidErrorExit(chars)//程序意外终止{cout<

6、//等待按任意键exit(0);//终止程序}voidDiv(Complex&x,Complexa,Complexb)//求数除法a/b{doublet;if(Abs(b)

7、seif(fabs(x.r)0)a=(double)PI/2;elsea=-(double)PI/2;}else{a=atan(x.i/x.r);if(a>0&&x.r<0)a=PI+a;//同号:三象限if(a<0&&x.r<0)a=PI+a;//异号:二象限}returna;}voidPow(Complex&x,Complexy,doublen)//幂运算:实数幂{doubler,a;if(n==0)x.i=0,x.r=1;//定义0的0次幂为1else{if(Abs(y)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。