- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构--00预备实验
《数据结构》实验报告
院系专业 姓名学号电话级 班 年月日
1.
用C语言的结构类型定义表示复数Complex的抽象数据类型。
2.需求分析
在复数内部用浮点数定义其实部与虚部;
设计实现复数的+、-、×、÷等运算的函数。
.概要设计
数据对象:D={a1,a2|a1,a2∈float}
数据关系:R={a1,a2}
基本操作:
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返回它们的余数。
详细设计
typedef struct{
float r;
float i;
}Complex;
基本操作的伪码算法
初始化
void InitComplex(Complex Z,float v1,float v2)
{ 将v1的值赋给Z的实部;
将v2的值赋给Z的虚部;
}
返回复数的实部
void GetReal(Complex Z,float realPart)
{ 将Z的实部值赋给realPart;}
返回复数的虚部
void GetImag(Complex Z,float ImagPart)
{ 将Z的虚部值赋给ImagPart;}
两复数相加
void Add(Complex z1,Complex z2,Complex sum)
{ Z1和Z2实部的值相加赋给sum的实部;
Z1和Z2虚部的值相加赋给sum的虚部;
}
两复数相减
void Sub(Complex z1,Complex z2,Complex residue)
{ Z1和Z2实部的值相减赋给residue的实部;
Z1和Z2虚部的值相减赋给residue的虚部;
}
两复数相乘
void mul(Complex z1,Complex z2,Complex product)
{ product.r=z1.r*z2.r-z1.i*z2.i;
product.i=z1.r*z2.r+z1.i*z2.i;
}
两复数相除
void div(Complex z1,Complex z2,Complex quotient,Complex residue)
{
quotient.r=((z1.r*z2.r+z1.i*z2.i)/(z1.i*z1.i+z2.i*z2.i));
quotient.i=((z1.r*(-1)*z2.r+z1.i*z2.i)/(z1.i*z1.i+z2.i*z2.i));
residue.r=(int(z1.r*z2.r+z1.i*z2.i)%int(z1.i*z1.i+z2.i*z2.i));
residue.i=(int(z1.r*(-1)*z2.r+z1.i*z2.i)%int(z1.i*z1.i+z2.i*z2.i));
}
调试分析使用说明
测试结果
.附录
#includestdio.h
#includestring.h
typedef struct{
float r;
float i;
}Complex;
void main()
{
Complex Z1,Z2,Z3,Z4;
char ch;
float a,b,c,d,e;
void InitComplex(Complex Z,float v1,float v2);
void GetReal(Complex Z,float realPart);
void GetImag(Complex Z,float ImagPart);
void Add(Complex z1,Complex z2,Complex sum);
void Sub(Complex z1,Complex z2,Complex residue);
void mul(Complex z1,Complex z2,Complex product);
您可能关注的文档
最近下载
- 知不足而奋进,望远山而力行——期中考前动员班会 课件.pptx VIP
- 05 专题五:二次函数与面积关系式、面积最值问题(铅锤法);中考复习二次函数压轴题题型分类突破练习.docx VIP
- xfer records serum血清合成器中文说明书.pdf VIP
- 审美鉴赏与创造知到智慧树期末考试答案题库2025年南昌大学.docx VIP
- JB∕T 7947-2017 气焊设备 焊接、切割及相关工艺用炬.docx VIP
- 响应曲面法(RSM).pptx VIP
- 上海普通公路设施养护维修预算定额上海普通公路设施养护维修.PDF
- 高频精选:保险行业面试题库及答案.doc VIP
- 试验设计与分析教学课件-响应曲面法.pptx VIP
- 村委换届选举实施方案4篇.doc VIP
原创力文档


文档评论(0)