停车场模拟实验报告

停车场模拟实验报告

ID:8826813

大小:267.55 KB

页数:16页

时间:2018-04-08

停车场模拟实验报告_第1页
停车场模拟实验报告_第2页
停车场模拟实验报告_第3页
停车场模拟实验报告_第4页
停车场模拟实验报告_第5页
资源描述:

《停车场模拟实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数学与计算机学院数据结构实验报告年级大二学号**********姓名******成绩专业电气信息类(计算机)实验地点主楼402指导教师实验项目停车场模拟管理程序的设计与实现实验日期2010年10月21日一、实验目的和要求  通过实验进一步理解栈和队列的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。二、问题描述设停车厂只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车

2、开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门后,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走。三、数据结构设计1、为了便于区分每辆汽车并了解每辆汽车当前所处的位置,需要记录汽车的牌照号码和汽车的当前状态,所以为汽车定义一个新的类型car,具体定义如下:  structcar //汽车信息类{stringlicense_plate;//汽车牌照号码charstate;//汽车当前状态,字符s表示停

3、放在停车位上,    //字符p表示停放在便道上,每辆车的初始状态用字符i表示};2、由于车位是一个狭长的通道,所以不允许两辆车同时出入停车场,当有车来到要进入停车位时也要顺序停放,当某辆车要离开时,比它后到的车要先暂时离开停车位,而且越后到的车就越先离开停车位,显然,这和栈的“后进先出”特点相吻合,所以可以用一个栈来描述停车位。由于停车塑钢只能停放有限的几辆车,而且为了便于停车场的管理,要为每个车位分配一个固定的编号,不妨设为1、2、3、4和5(此程序利用数组下标实现),分别表示停车位的1车位、2车位、3车位、4

4、车位和5车位,针对这种情况使用一个顺序栈比较方便,具体定义如下:structstopping//停车位栈{carstop[MAX_STOP];//各汽车信息存储空间inttop;//用来指示栈顶位置的静态指针};3、当停车场的车位上都已经停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的先后顺序顺次存放在便道上,为便道上的每个车位也分配一个固定的编号,当有车从停车位上离开后,便道上的第一辆汽车就立即进入停车位,由于问题限制了汽车不能从便道上开走,即便道上的汽车只有在停车位上停放过之后才能

5、离开停车场,这样越早进入便道的汽车就越早进入停车位,而且每次进入停车位的汽车都是处于便道“最前面”的汽车,显然,这和队列的“先进先出”的特点相吻合,所以,用一个顺序队来描述便道,用数组的下标表示便道的位置,具体定义如下:  structpavement//便道队{carpave[MAX_PAVE];//各汽车信息存储空间intfront,rear;//用来指示队头和队尾的静态指针};3、当某汽车离开停车场时,比它后来的汽车要为它让路,而且当它开走之后让路的车还要按照原来的停放次序再次进入停车位,为了完成这项功能,再

6、定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出开走请求的车开走后再从辅助栈中依次“弹出”到停车位中。对辅助栈也采用顺序栈,具体定义与停车位栈类似,如下:  structbuffer //辅助栈{carbuff[MAX_STOP];//各汽车信息存储空间inttop;//用来指示栈顶位置的静态指针};由于程序的各函数要对这些数据结构中的数据进行操作,而且每次操作的结果都要动态地反应到以上数据结构中,所以在程序设计时以上新类型定义的变量都采用全局变量的形式。四、功能设计1、本程序从总体上分为四个大的功能模块

7、,分别为程序功能介绍和操作提示模块、汽车进入停车位的管理模块、汽车离开停车位的管理模块和查询停车场停车状态的查询模块。具体功能描述如下:(1)程序功能介绍和操作提示模块此模块给出程序欢迎信息,介绍本程序的功能,并给出具体功能所对应的键盘操作提示。  函数原型为voidwelcome();(2)汽车进入停车位的管理模块此模块用来登记停车场的汽车的车牌号和对该车的调度过程并修改该车的状态,其中调度过程以屏幕信息的形式反馈给用户来指导用户对车辆的调度。函数原型为voidcome();(3)汽车离开停车位的管理模块此模块用

8、来为提出离开停车场的车辆做调度处理,并修改相关车辆的状态,其中调度过程以屏幕信息的形式反馈给用户来指导用户对车辆进行调度,当有车离开停车场后应立即检查便道上是否有车,如果有车的话立即让便道上的第一辆车进入停车位。函数原型为voidleave();(2)查看停车场停车状态的查询模块此模块用来显示停车位和便道上的停车状态。函数原型为voiddisply();2、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。