资源描述:
《c语言的一些经典例子!!!!!!》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、石家庄经济学院实验报告学院:管理科学与工程学院专业:信息管理与信息系统信息工程学院计算机实验中心制姓名董浩学号410105010201日期2009.10.7-8节实验室计算机软件技术实验指导教师张有华设备编号实验题目实验1抽象数据类型复数的实现一实验内容实验1抽象数据类型复数的实现二实验目的1.了解抽象数据类型(ADT)的基本概念,及描述方法。2.通过对复数抽象数据类型ADT的实现,熟悉C语言语法及程序设计。为以后章节的学习打下基础。三实验的内容及完成情况1、需求分析复数抽象数据类型ADT的描述及实现。[复数ADT的描述]ADTcomplex{数据对象:D={c1,c2c1,c2
2、∈FloatSet}数据关系:R={c1,c2∈D}基本操作:创建一个复数creat(a);输出一个复数outputc(a);求两个复数相加之和add(a,b);求两个复数相减之差sub(a,b);求两个复数相乘之积chengji(a,b);等等;}ADTcomplex;本实验实现使用TC2.0实现复数的描述及操作。具体实现要求:1.从键盘分别输入2个复数,并可修改已输入的复数。2.能输出指定的复数。3.两个复数相加之和,观察输出结果。4.两个复数相加之差,观察输出结果。5.求两个复数相乘之积,观察输出结果。6.程序应给用户提供如下操作界面。2、概要设计抽象数据类型
3、的定义:ADTcomplex{数据对象:D={c1,c2
4、c1,c2∈FloatSet}数据关系:R={
5、c1,c2∈D}基本操作:creat(a);操作结果:创建一个复数outputc(a);初始条件:复数a已存在操作结果:输出一个复数add(a,b);初始条件:复数a和b已存在;操作结果:求两个复数相加之和sub(a,b);初始条件:复数a和b已存在操作结果:求两个复数相减之差mutiple(a,b);初始条件:复数a和a已存在操作结果:求两个复数相乘之积}ADTcomplex;2.主程序的大致流程如下:主函数CaseCaseCaseCaseCaseCaseCa
6、se1234567调用调用函调用函调用函调用函调用函调用函函数数数数数数数CreatcCreatcoPrint_C(Print_C(AddComSubComMultiptyomplemplex()))plex()与plex()与Complexx()Print_C(Print_C(()与))Print_C(图1函数调用关系图3、详细设计1.定义复数的抽象数据类型#include#includetypedefstructComplex{floatreal;floatimage;}Complex;voidCreatComplex(Complex*c
7、,floata,floatb);voidAddComplex(Complex*sum,Complexc1,Complexc2);voidSubtract_C(Complex*sub,Complexc1,Complexc2);voidMultiple_C(Complex*product,Complexc1,Complexc2);voidCreatComplex(Complex*c,floata,floatb){(*c).real=a;(*c).image=b;}voidAddComplex(Complex*sum,Complexc1,Complexc2){(*sum).real=c
8、1.real+c2.real;(*sum).image=c1.image+c2.image;}voidSubtract_C(Complex*sub,Complexc1,Complexc2){(*sub).real=c1.real-c2.real;(*sub).image=c1.image-c2.image;}voidMultiple_C(Complex*product,Complexc1,Complexc2){(*product).real=c1.real*c2.real-c1.image*c2.image;(*product).image=c1.real*c2.image+c1
9、.image*c2.real;}voidPrint_C(Complexc){if(c.real!=0.0){if(c.image==0.0)printf("%5.2f",c.real);else{printf("%5.2f+%5.2fi",c.real,c.image);}}else/*c.real==0.0*/{if(c.image!=0.0)printf("%5.2fi",c.image);elseprintf("0");}}}voidSubtract_C(Com