- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验
试用C语言的结构类型定义表示复数Complex的抽象数据类型。
(1)在复数内部用浮点数定义其实部与虚部;
(2)设计实现复数的+、-、×、÷等运算的函数。
基本操作函数接口:
InitComplex( Z, v1, v2 ):操作结果:构造复数Z,其实部和虚部分别被赋以参数v1和v2的值。
GetReal( Z, realPart ):初始条件:复数已存在。
操作结果:用realPart返回复数Z的实部值。
GetImag( Z, ImagPart ):初始条件:复数已存在。
操作结果:用ImagPart返回复数Z的虚部值。
Add( z1,z2, sum ):初始条件:z1,z2是复数。
操作结果:用sum返回两个复数z1,z2的和值。
Sub( z1,z2, residue):初始条件:z1,z2是复数。
操作结果:用res返回两个复数z1,z2的差值。
mul( z1,z2, product ):初始条件:z1,z2是复数。
操作结果:用product返回两个复数z1,z2的积。
div( z1,z2, quotient,residue):初始条件:z1,z2是复数。
操作结果:用quotient 返回两个复数z1除z2的商, 用residue返回它们的余数。
要求main函数中只能是基本的输入输出语句和函数调用语句,其运行界面如下:
其中a,b,c,d是用户从键盘上输入的实型值,分别代表两个复数的实部和虚部。
#includestdio.h //定义一个复数类
typedef struct {
float realpart;
float imagpart;
}Complex;
Complex InitComplex(float v1,float v2) //初始化
{ Complex z;
z.realpart=v1;
z.imagpart=v2;
return z;
}
float Getreal(Complex z)
{return z.realpart;
}
float Getimagepart(Complex z)
{return z.imagpart;
}
Complex Add(Complex z1,Complex z2) //实现加法运算
{
z1.realpart=z1.realpart+z2.realpart;
z1.imagpart=z1.imagpart+z2.imagpart;
return z1;
}
Complex Sub(Complex z1,Complex z2) //实现减法运算
{z1.realpart=z1.realpart-z2.realpart;
z1.imagpart=z1.imagpart-z2.imagpart;
return z1;
}
Complex Mul(Complex z1,Complex z2) //实现乘法运算
{z1.realpart=z1.realpart*z2.realpart;
z1.imagpart=z1.imagpart*z2.imagpart;
return z1;
}
Complex Div(Complex z1,Complex z2) // 实现除法运算
{z1.realpart=z1.realpart/z2.realpart;
z1.imagpart=z1.imagpart/z2.imagpart;
return z1;
}
int main ()
{ float a,b,c,d;
char e;
Complex z1,z2,z3;
printf(please input first complex number a+bi:); //只需输入实部a,虚部b
scanf(%f %f,a,b);
z1= InitComplex(a,b);
printf(please input the other :);
scanf(%f %f,c,d);
z2=InitComplex(c,d);
printf(please choice operation :+,-,*,/ :); //选择运算符
getchar();
scanf(%c,e);
if (e==+) //选择运算符
z3= Add( z1,z2);
if(e==-)
z3=Sub(z1,z2);
if(e==*)
z3=Mul(z1,z2);
if(e==/)
z3=Div(z1, z2);
printf(%f+%fi,z3.realpart,z3.imagpart);
文档评论(0)