ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:269.96KB ,
资源ID:24563398      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24563398.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《数据结构》实验报告.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《数据结构》实验报告.docx

1、数据结构实验报告 数据结构课程设计报告系 别:管理信息系 班 级:B070503班学 号:B07050310姓 名:田坤实训日期2009.06.292009.07.03数据结构课程设计实验报告 开课实验室: K机房 2009年 6 月 29 日班级B070503学号B07050310姓名田坤成绩课程名称数据结构实验项目名 称停车场管理指导教师赵亚军教师评语教师签名: 年 月 日一、实验目的1、 通过课程设计,加深对数据结构这一课程所学内容的进一步理解与巩固。2、 通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。3、 通过课程设计,提高程序开发功能,能运用

2、合理的控制流程编写清晰高效的程序。4、 通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。5、 通过课程设计,开发一个中小型系统,掌握系统研发全过程。6、 通话课程设计,培养分析问题、解决实际问题的能力。二、功能要求 设计一个停车场管理系统,模拟停车场的运作,通过此程序具备以下功能:1、要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的数据序列进行模拟管理2、要求处理的数据元素包括三个数据项:汽车“到达”或“离去”信息,汽车牌照号码及到达或离去的时间3、该系统完成以下功能:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是离去,则输出汽车在停车场内停留的时

3、间和应缴纳的费用(在便道上停留的时间不收费)4、要求栈以顺序结构实现,队列以链表实现三、设计要求1、独立完成全部代码的设计、编写、调试与部署,运行正确无误2、编写设计报告书 设计报告书应包括:(1) 问题描述和系统要求(2) 系统主要功能模块设计(3) 设计中遇到的问题及其解决方法(4) 系统运行报告(5) 总结1 问题描述:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排以便道上的

4、第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。2 基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。3 实现提示:汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(A,1,5)表示1号牌照车在5这个时刻到达,

5、而(D,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(E,0,0)时结束。本题可用栈和队列来实现。四、运行环境1 Turbo C2 Windows操作系统五、实验步骤(绘制相应的流程图)六、实验过程原始代码#includestdio.h#define N 5 /*定义停车场长度*/#define M 10typedef struct /*定义栈元素的类型*/int num;jint arrtime;elemtype;typedef struct /*定义栈*/elemtype stackN;int top;stack;typedef struct node /*定义队列

6、节点类型*/int num;struct node*next;queneptr;typedef struct /* 定义队列*/queneptr *front,*rear;quene;void initstck(stack*s) /*初始化栈*/s-top=-1;int push(stack *s,eletype x) /*数据元素X进入指针S所指的栈*/if(s-top=N-1)return(0);elemtype pop(stack *s) elemtype x; if(s-topstacks-top; s-top-; return x; /*如果栈不空,返回栈顶元素*/ void ini

7、tquene(quene*s) /*初始化队列*/s-front=(queneptr*)malloc(sizeof(queneptr); /*产生一个新结点,作为头结点*/s-rear=s-front;s-front-next=NULL;s-front-num=0; /*头结点的NUM保存队列元素的个数*/void enquene(quene *s,int num) /*数据入队列*/queneptr *p;p=(queneptr*)malloc(sizeof(queneptr);p-num=num;p-next=NULL;s-rear-next=p;s-rear=p;s-front-num+

8、;int delquene(quene*s)queneptr*p;int n;if(s-front=s-rear) return(0); /*如果对列空*/ else p=s-front-next; s-front-next=p-next; if(p-next=NULL) s-rear=s-front; n=p-num; free(p); s-front-num-; return(n); void arrive (stack *s1,quene *p,elemtype x) int f; f=push(s1,x); /*新到达的车辆入停车栈*/ if(f=0) enquene(p,x.num)

9、; /*如果停车场满,就进入队列*/ printf(the %d car stops the %d seat of the quenen,x.num,p-front-num); else printf(the %d car stops the %d seat of the stackn,x.num,s1-top+1); void leave (stack *s1,stack *s2,quene *p,elemtype x) /*处理车辆离去函数*/ int n,f=0; elemtype y; queneptr *q; while(s1-top-1)&(!f) y=pop(s1); if(y.

10、num!=x.num) n=push(s2,y); else f=1; if(y.num=x.num) /*如果栈顶元素不是要离开的车辆,就将其放入车辆避所*/ printf(the money of the %d is %d yuann,y.num,(x.arrtime-y.arrtime)*M); while(s2-top-1) y=pop(s2); f=push(s1,y); n=delquene(p); if(n) /*在停车场中找到要离开的车辆*/ y.arrtime=x.arrtime; f=push(s1,y); printf(the %d car stops the %d se

11、at of the stackn,y.num,s1-top+1); else while(s2-top-1) /*车辆规避所不空,将其全放回停车场*/ y=pop(s2); f=push(s1,y); q=p-front; f=0; while(f=0&q-next!=NULL) if(q-next-num!=x.num) q=q-next; else q-next=q-next-next; p-front-num-; if(q-next=NULL) p-rear=p-front; printf(the %d car leave the quenen,x.num); f=1; if(f=0)

12、/*在便道上没有找到要离开的车辆,输出数据错误*/ printf(error! the stack and the quene have no the %d carn,x.num); void main() /*停车场模拟管理程序*/ char ch; stack *s1,*s2; quene *p; elemtype x; int i=1; clrscr(); s1=(stack *)malloc(sizeof(stack); s2=(stack *)malloc(sizeof(stack); p=(quene*)malloc(sizeof(quene); initstack(s1);ini

13、tstack(s2); /*初始化停车规避所栈*/ initquene(p); /*初始化便道队列*/ while(i) printf(what do you want to do?n); printf(input-(Add/Del/Exit):); scanf(%c,&ch); switch (ch) casea:printf(input the number:n); scanf(%d,&x.num); printf(input the time:n); scanf(%d,&x.arrtime); arrive(s1,p,x); /*车辆到达*/ break; cased:printf(in

14、put the number:n); scanf(%d,&x.num); printf(input the time:n); scanf(%d,&x.arrtime); leave(s1,s2,p,x); /*车辆离开*/ break; casee:printf(the end!); i=0; break; default:printf(input error!-please input again:n);break; ch=getchar();七、实验结果及分析1、欢迎界面2、车辆到达3、车辆离开4、车辆信息(停车场)5、车辆信息(便道)八、实验体会与收获 数据结构课程设计现在已经结束了,可

15、是我的动手操作能力练习好像还刚刚开始。以前也注意到了理论要与实践相结合,只是平时说说而已,没有真正的去做,通过这次数据结构的实践性操作,我感觉:学习实质性的东西要以实验为基础,只有在试验和实践中才能知道自己的真实能力。 试验课只是短短的一周时间,很多东西只是很肤浅的了解了一下,为了能够顺利的完成实验,赵老师在刚上课时就详细的讲解了实验的流程和实验的科目。他让我们先从理论上了解了具体的操作步骤,听的时候感觉挺简单的,为了加深我们的印象,赵老师还专门为我们实际的操作了一遍。可是当我们自己动手时,问题很多了,几乎没有一步能够顺利完成的,做的都有些磕磕绊绊。很珍惜这次试验的几乎,所以,只要有时间,我还是经常在课后查阅资料,加深对理论知识的理解,只有真正的理解了所学的东西才能够把知识应用于实践。这次的数据结构课程设计,使我看到了我在学习中的许多偏差,只注重理论不注重实践是学习的一大弊端。我的学习只是一个能用笔杆子写写,不能把知识应用于实践的纸上谈兵似的学习,这也是我所担心的问题,过于重视理论的学习!在以后的学习中我会重视对动手能力的培养。 B07050310 田坤 2009年7月3日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1