资源描述:
《数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、福建师范大学物光院计算机教学辅导讲义附录实验报告参考规范《数据结构》实验报告院系____________________专业____________________姓名__________学号__________电话______________________级__________班_______年____月____日1.w预备实验2.需求分析用C语言的结构类型定义表示复数Complex的抽象数据类型。在复数内部用浮点数定义其实部与虚部;设计实现复数的+、-、×、÷等运算的函数。1.建立复数的功能2.返回复数实部的功能3.返回复数虚部的功能
2、4.两复数相加的功能5.两复数相减的功能6.两复数相乘的功能7.两复数相除的功能输入形式要求为a+bi的形式,其中a,b为浮点行。输出格式为两复数运算后的结果。3.概要设计(1)ADTComplex{数据对象:D={a1,a2
3、a1,a2∈float}数据关系:R={}基本操作:GetReal(Z,&realPart):初始条件:复数已存在。操作结果:用realPart返回复数Z的实部值。GetImag(Z,&ImagPart):初始条件:复数已存在。操作结果:用ImagPart返回复数Z的虚部值。Add(z1,z2,&sum
4、):初始条件: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,"ient,&residue):初始条件:z1,z2是复数。操作结果:用quotient返回两个复数z1除z2的商,用residue返回它们的余数。(2)本程序包含8个函数:1.主函数main()2.
5、返回复数实部函数GetReal()3.返回复数虚部函数GetImag()4.两复数相加函数Add()6福建师范大学物光院计算机教学辅导讲义5.两复数相减函数Sub()6.两复数相乘函数mul()7.两复数相除函数div()各函数间调用关系:main调用其它函数(3)主函数的伪码main(){定义各变量和复数;声明各函数;输入第一个复数Z1实部和虚部的值;初始化Z1;输入第二个复数Z2实部和虚部的值;初始化Z2;输入操作符号ch;如果ch等于‘+’调用Add()函数;如果ch等于‘-’调用Sub()函数;如果ch等于‘*’调用mul()函数;
6、如果吃等于'‘/’调用div()函数;}4.详细设计(1)类型定义typedefstruct{floatr;floati;}Complex;(2)基本操作的伪码算法初始化voidInitComplex(Complex&Z,floatv1,floatv2){将v1的值赋给Z的实部;将v2的值赋给Z的虚部;}返回复数的实部voidGetReal(ComplexZ,float&realPart){将Z的实部值赋给realPart;}返回复数的虚部voidGetImag(ComplexZ,float&ImagPart){将Z的虚部值赋给ImagPa
7、rt;}两复数相加voidAdd(Complexz1,Complexz2,Complex&sum){Z1和Z2实部的值相加赋给sum的实部;Z1和Z2虚部的值相加赋给sum的虚部;}6福建师范大学物光院计算机教学辅导讲义两复数相减voidSub(Complexz1,Complexz2,Complex&residue){Z1和Z2实部的值相减赋给residue的实部;Z1和Z2虚部的值相减赋给residue的虚部;}两复数相乘voidmul(Complexz1,Complexz2,Complex&product){product.r=z1.r
8、*z2.r-z1.i*z2.i;product.i=z1.r*z2.r+z1.i*z2.i;}两复数相除voiddiv(Complexz1,Complexz2,Complex"ient,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(
9、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));