抽象数据类型的实现.doc_第1页
抽象数据类型的实现.doc_第2页
抽象数据类型的实现.doc_第3页
抽象数据类型的实现.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

数据结构与算法分析实验报告实验0:抽象数据类型的实现1、实验目的 了解抽象数据类型的表示和实现方法 会用C语言中已存在的数据类型来说明新的结构。 能用已实现的操作来组合新的操作。 熟悉C语言的程序设计2、实验内容输入圆的半径,输出圆的面积和周长。设计一个圆的抽象数据类型,并定义求圆的面积和周长的两个操作,输入数据是圆的半径r,圆的面积S=r2,圆的周长L=2r。圆的类型定义:struct circle float r;float area;float perimeter;typedef struct circle *Circle;操作:Circle createCircle(float r)创建半径为r的圆float getArea(Circle c)求圆的面积float getPerimeter (Circle c)求圆的周长具体操作如下:首先启动启动visual c+新建一个工程命名为circle,紧接着分别新建头文件circle.h和源文件circle.cpp、以及主函数main.cpp。1) 其中文件中的定义为:struct circle;typedef struct circle *Circle;Circle createCircle(float r);float getArea(Circle c);float getPerimeter (Circle c);2) 主函数main.cpp中的程序算法为:#include#includecircle.hvoid main()float r;Circle acircle;printf(please input a radius to r);scanf(%f,&r);acircle=createCircle(r);printf(the areas=%fn,getArea(acircle);printf(the perimeter=%fn,getPerimeter(acircle);3) 源文件circle.cpp中的调用函数及其主要算法:#include#include#includecircle.hstruct circlefloat r;float area;float perimeter;Circle createCircle( float r) /* 创建半径为r的圆 */Circle newcircle=(Circle)malloc(sizeof(struct circle);if(newcircle!=NULL)newcircle -r=r;newcircle -area=3.14f*r*r;newcircle -perimeter=2*3.14f*r;return newcircle;else free(newcircle);printf(Out of space!n); /* 存储分配失败 */return NULL;float getArea(Circle c)return c-area;float getPerimeter (Circle c)return c- perimeter;3、实验结果4、实验分析结构体是抽象的数据类型,在头文件中定义该数据之时不必注明过程。同时在主函数中必须在函数之前表明相关的调用函数以及库函数名,否则连最简单的Printf到最后都不能识别。最值得注意的是scanf(%f,&r);如果其中取地址符号“&”漏写,即使编译和组件程序都没有错误,但是到输入数据之时则会出现无可预知的错误,假如是大型的程序代码,要回过头来检验该错误时是相当的困难,所以在格式化输入时也是相当值得小心和注意的。还有就是定义数据类型的时候不能重复定义同一个变量,这样会出现相应的错误,而且定义的变量不能在使用之时而使用不同的基类型的数据进行运算,解决措施则是在数据后加相应强制性后缀,通过改变数据的类型使得数据前后有统一性。最后则是不管用任何语言编写程序代码的过程中,逻辑性和函数性问题解决后,还有就是像“;”和用中文输入法输入的符号都会最终使得编译器无法识别,以致程序无法正常的运行。5、实验总结通过本次抽象数据类型的实现试验以及书本的相关内容,另我认识到了抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。一旦定义了一个抽象数据类型及具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用抽象数据类型。由此可知在定义或使用大量不同含义的数据之时,无需使用繁琐且难操作的数组等类型数据,使用结构体以及配合相应的逻辑思维,可以简单易操作的使用和管理大量不同含义的数据类型。同时也认识到了抽象数据类型的描述包括给出抽象数据类型的名称、数据的集合、数据之间的关系和操作的集合等方面的描述。抽象数据类型的设计者根据这些描述给出操作的具体实现,抽象数据类型的使用者依据这些描述使用抽象数据类型。从基本上认

温馨提示

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

评论

0/150

提交评论