c语言的一些经典例子!!!!!!.doc_第1页
c语言的一些经典例子!!!!!!.doc_第2页
c语言的一些经典例子!!!!!!.doc_第3页
c语言的一些经典例子!!!!!!.doc_第4页
c语言的一些经典例子!!!!!!.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

石家庄经济学院实 验 报 告学 院: 管理科学与工程学院 专 业: 信息管理与信息系统信息工程学院计算机实验中心制姓名董浩学号410105010201日期2009.10. 7-8节实验室计算机软件技术实验指导教师张有华设备编号实验题目实验1 抽象数据类型复数的实现一 实验内容实验1 抽象数据类型复数的实现二 实验目的1. 了解抽象数据类型(ADT)的基本概念,及描述方法。2. 通过对复数抽象数据类型ADT的实现,熟悉C语言语法及程序设计。为以后章节的学习打下基础。三 实验的内容及完成情况1、需求分析复数抽象数据类型ADT的描述及实现。 复数ADT的描述 ADT complex 数据对象:D= c1,c2 c1,c2FloatSet 数据关系:R= c1, c2 D 基本操作:创建一个复数 creat(a); 输出一个复数 outputc(a); 求两个复数相加之和 add(a,b); 求两个复数相减之差 sub(a,b); 求两个复数相乘之积 chengji(a,b); 等等; ADT complex;本实验实现使用TC2.0实现复数的描述及操作。具体实现要求:1从键盘分别输入2个复数,并可修改已输入的复数。2能输出指定的复数。3两个复数相加之和,观察输出结果。4两个复数相加之差,观察输出结果。5求两个复数相乘之积,观察输出结果。6程序应给用户提供如下操作界面。2、概要设计抽象数据类型的定义: ADT complex数据对象: D= c1,c2| c1,c2 FloatSet 数据关系: R= |c1,c2D 基本操作:creat(a);操作结果:创建一个复数outputc(a);初始条件:复数a已存在操作结果:输出一个复数add(a,b);初始条件:复数a和b已存在;操作结果:求两个复数相加之和sub(a,b);初始条件:复数a和b已存在操作结果:求两个复数相减之差mutiple(a,b);初始条件:复数a和a已存在操作结果:求两个复数相乘之积 ADT complex;2. 主程序的大致流程如下:主函数 调用函数Creatcomplex()调用函数Creatcomplex()调用函数Print_C()调用函数Print_C()调用函数SubComplex()与Print_C()调用函数AddComplex()与Print_C()调用函数MultiptyComplex()与Print_C(Case1Case2Case3Case4Case5Case6Case7图1函数调用关系图3、详细设计1. 定义复数的抽象数据类型#include #include typedef struct Complexfloat real;float image;Complex;void CreatComplex(Complex *c,float a,float b);void AddComplex(Complex *sum,Complex c1,Complex c2 );void Subtract_C(Complex *sub,Complex c1,Complex c2 );void Multiple_C(Complex *product,Complex c1,Complex c2 );void CreatComplex(Complex *c,float a,float b) (*c).real = a; (*c).image = b;void AddComplex(Complex *sum,Complex c1,Complex c2) (*sum).real = c1.real + c2.real; (*sum).image = c1.image + c2.image;void Subtract_C(Complex *sub,Complex c1,Complex c2 ) (*sub).real = c1.real -c2.real; (*sub).image = c1.image - c2.image;void Multiple_C(Complex *product,Complex c1,Complex c2 ) (*product).real = c1.real * c2.real - c1.image * c2.image; (*product).image = c1.real * c2.image + c1.image * c2.real;void Print_C(Complex c) if(c.real!=0.0) if(c.image = 0.0) printf(%5.2fn,c.real ); else printf(%5.2f+%5.2fin,c.real,c.image); else /* c.real=0.0 */ if(c.image!=0.0) printf(%5.2fin,c.image); else printf(0); void Subtract_C(Complex *sub,Complex c1,Complex c2 ) (*sub).real = c1.real -c2.real; (*sub).image = c1.image - c2.image;void Multiple_C(Complex *product,Complex c1,Complex c2 ) (*product).real = c1.real * c2.real - c1.image * c2.image; (*product).image = c1.real * c2.image + c1.image * c2.real;void Print_C(Complex c) if(c.real!=0.0) if(c.image = 0.0) printf(%5.2fn,c.real ); else printf(%5.2f+%5.2fin,c.real,c.image); else /* c.real=0.0 */ if(c.image!=0.0) printf(%5.2fin,c.image); else printf(0); 2. 主程序伪码算法: #include complex.h#include main() printf(用户选择界面); switch(ch)case1: scanf(复数c1的实部和虚部); case2: scanf(复数c2的实部和虚部); case3: CreatComplex(c1); printf(复数c1); case4: CreatComplex(c2); printf(复数c2); case5: AddComplex(c1,c2); Print(sum); Case6: Subtract_C(c1,c2); Print(Sub); Case7: Multiple_C(c1,c2); Print(Prod); Case0: Break; 4、调试分析(1)调试过程中出现的问题:、 编译的语句代码有粗心造成的符号不成对出现或者对变量的定义不全,造成错误,还有 文件无法找到,因为自己并未在TC环境下设置路径,通过提示认真更改,终于能运行。(2)经验和体会 努力尝试运用老师提倡的模块化的思想,多处用到函数,要及时复习C语言。(3)算法的时空分析和改进 该算法的时间复杂度和空间复杂度皆为O(1)5、用户使用说明打开可执行程序,即TC环境下,,参照用户选择界面提示即可使用本程序6、测试结果 * 1.Input c1 * 2.Input c2 * 3 print c1* 4. print c2 * 5. print c1+c2 * 6. print c1-c2 * 7. print c1*c2 * 0.exit *Input you choice:1 *Input c1,please!2.0000003.500000Input c2 please!3.000000-6.300005.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论