数据结构实验报告.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:6 大小:59KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构实验报告.doc

数据结构实验报告.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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