数据结构实验报告
《数据结构实验报告》由会员分享,可在线阅读,更多相关《数据结构实验报告(5页珍藏版)》请在装配图网上搜索。
1、附录附录实验报告参考规范实验报告参考规范数据结构实验报告数据结构实验报告院系院系_ 专业专业 _ _姓名姓名_ 学号学号_ 电话电话_级级 _ _班班 _ _年年_月月_日日1 1w w预备实验预备实验2 2需求分析需求分析用 C 语言的结构类型定义表示复数Complex 的抽象数据类型。在复数内部用浮点数定义其实部与虚部;设计实现复数的、等运算的函数。1.建立复数的功能 2.返回复数实部的功能 3.返回复数虚部的功能 4.两复数相加的功能 5.两复数相减的功能 6.两复数相乘的功能 7.两复数相除的功能输入形式要求为 a+bi 的形式,其中 a,b 为浮点行。输出格式为两复数运算后的结果。3
2、 3概要设计概要设计(1)ADT Complex数据对象:D=a1,a2|a1,a2float数据关系:R=基本操作: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 的差值
3、。mul(z1,z2,&product):初始条件:z1,z2 是复数。操作结果:用 product 返回两个复数 z1,z2 的积。div(z1,z2,"ient,&residue):初始条件:z1,z2 是复数。操作结果:用 quotient 返回两个复数 z1 除 z2 的商,(2)本程序包含 8 个函数:1.主函数 main()2.返回复数实部函数 GetReal()3.返回复数虚部函数 GetImag()4.两复数相加函数 Add()用 residue 返回它们的余数。5.两复数相减函数 Sub()6.两复数相乘函数 mul()7.两复数相除函数 div()各函数间调用关系:
4、main 调用其它函数(3)主函数的伪码main()定义各变量和复数;声明各函数;输入第一个复数 Z1 实部和虚部的值;初始化 Z1;输入第二个复数 Z2 实部和虚部的值;初始化 Z2;输入操作符号 ch;如果 ch 等于+调用 Add()函数;如果 ch 等于-调用 Sub()函数;如果 ch 等于*调用 mul()函数;如果吃等于/调用 div()函数;4 4详细设计详细设计(1)类型定义typedef structtypedef structfloat r;float r;float i;float i;Complex;Complex;(2)基本操作的伪码算法初始化void InitCo
5、mplex(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 的虚部;两复数相减v
6、oid Sub(Complex z1,Complex z2,Complex&residue)Z1 和 Z2 实部的值相减赋给 residue 的实部;Z1 和 Z2 虚部的值相减赋给 residue 的虚部;两复数相乘void mul(Complex z1,Complex z2,Complex&product)=*=*+*;两复数相除void div(Complex z1,Complex z2,Complex"ient,Complex&residue)=(*+*/*+*);=(*(-1)*+*/*+*);=(int*+*%int*+*);=(int*(-1)*+*%int*+*);5
7、5调试分析调试分析在输完第二个复数之后按回车,则无法输入操作符号,需要在输入操作符号之前多写一个在输完第二个复数之后按回车,则无法输入操作符号,需要在输入操作符号之前多写一个getchargetchar()(),这样,这样就能实现了。就能实现了。6 6使用说明使用说明执行过程如下:提示用户输入第一个复数的实部和虚部的值;用户按 a+bi 的格式输入(a,b 为浮点数);提示用户输入第二个复数实部和虚部的值;用户按 a+bi 的格式输入(a,b 为浮点数);提示用户输入操作符号;显示操作结果;按任意键推出;7 7测试结果测试结果8.8.参考文献参考文献9 9附录附录#include#includ
8、etypedef structfloat 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
9、&residue);void mul(Complex z1,Complex z2,Complex&product);void div(Complex z1,Complex z2,Complex"ient,Complex&residue);printf(please input first complex number:);scanf(%f+%fi,&a,&b);InitComplex(Z1,a,b);printf(n);printf(the other one:);scanf(%f+%fi,&c,&d);InitComplex(Z2,c,d);printf(n);printf(plea
10、se choice operation:+,-,*or/:);ch=getchar();ch=getchar();if(ch=+)Add(Z1,Z2,Z3);printf(%f+%fi)+(%f+%fi)=%f+%fin,a,b,c,d,;else if(ch=-)Sub(Z1,Z2,Z3);printf(%f+%fi)-(%f+%fi)=%f+%fin,a,b,c,d,;else if(ch=*)mul(Z1,Z2,Z3);printf(%f+%fi)*(%f+%fi)=%f+%fin,a,b,c,d,;else if(ch=/)div(Z1,Z2,Z3,Z4);printf(%f+%fi)
11、/(%f+%fi)=%f+%fin,a,b,c,d,;printf(余数为(%f+%fi)%(%f+%fi)=%f+%fin,a,b,c,d,;void InitComplex(Complex&Z,float v1,float v2)=v1;=v2;void GetReal(Complex Z,float&realPart)realPart=;void GetImag(Complex Z,float&ImagPart)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)=*=*+*;void div(Complex z1,Complex z2,Complex"ient,Complex&residue)=(*+*/*+*);=(*(-1)*+*/*+*);=(int*+*%int*+*);=(int*(-1)*+*%int*+*);
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。