停车场模拟管理程序的设计与实现.doc
上传人:王子****青蛙 上传时间:2024-09-10 格式:DOC 页数:7 大小:50KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

停车场模拟管理程序的设计与实现.doc

停车场模拟管理程序的设计与实现.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

停车场模拟管理程序的设计与实现停车场模拟管理程序的设计与实现停车场模拟管理程序的设计与实现试验三停车场模拟管理程序的设计与实现本实验的目的是进一步理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。问题描述设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内停满几辆车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长通道,在它之后开入的车辆必须先退出停车场为它让路,待该车辆开出大门,计算其停放时间并收费,为他让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计一个这样的停车场模拟管理程序。为了以下描述的方便,停车场用“停车位”进行叙述,停车场的便道用“便道”进行叙述。数据结构设计1、为了便于区分每辆汽车,需要记录汽车的车牌号和历史编号,并且记录其入场、出场时间,所以为汽车定义一个新的类型CAR,具体定义如下:typedefstruct{//汽车信息stringlicense_plate;//车牌号码inth;time_ttimei;time_ttimeo;}CAR;2、由于车位是一个狭长通道,所以不允许两辆汽车同时出入停车位,当有车来到要进入停车位时也要顺次停放,当某辆车要离开时,比他后到的车要暂时离开停车位,而且越后到的车越先离开停车位,显然这和栈的“先出后进"特点吻合,所以可以使用一个栈来描述停车位。由于停车位只能停放有限的几辆车,而且为了便于停车场的管理,要为每个车分配一个固定的编号,不妨设1、2、3、4和5(可利用数组下标),分别表示停车位的1车位、2车位、3车位、4车位和5车位,针对这种使用一个顺序栈比较方便,具体定义如下:typedefstruct{//停车位intSTOP[MAX_STOP];//每个停车位汽车的信息inttop;//用来指示栈顶空间的静态指针}STOPPING;3、当停车场的停车位上都已经停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的顺序顺次存放在便道上,为便道上的每一个位置也分配一个固定的编号,当有车从停车位上离开后,便道上的第一辆汽车就立即进入停车位上的某一个车位,由于问题描述中限制了便道上的汽车不能从便道上开走,即便道上的汽车只有在停车位上停放过之后才能离开停车场,这样越早进入便道的汽车越早进入停车位,而且每次进入停车位的汽车都是处于便道“最前面”的汽车,显然,这和队列的“先进先出”的特点相吻合,所以,这里使用一个顺序队列来描述便道,可以利用数组的下标表示便道的位置,具体定义如下:typedefstruct{//便道intPAVE[MAX_PAVE];//各个汽车信息的村存储intfront,rear;//头指针和尾指针}PAVEMENT;4、当某辆车要离开停车场的时候,比他后进停车场的车要为它让路,而且当它开走之后让路的车还要按照原来的的停放顺序再次进入停车位的某个车位上,为了完成这项功能,再定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出开走请求的车开走后再从辅助栈的栈顶依次“弹出”到停车位中。对辅助栈也采用顺序栈,具体定义与停车位栈类似,如下:typedefstruct{//临时位置intBUFF[MAX_STOP];inttop;}BUFFER;当然,辅助栈直接利用在2中定义的类型STOPPING也可以的。由于程序的各种函数要对这些数据进行操作,而且每次操作的结果都要动态地反映到以上数据结构中,所以在程序设计时使用以上新类型定义的变量都采用全局变量的形式。函数(功能)设计1、本程序从总体上分为4个大的功能模块,分别为程序功能介绍和操作提示模块、汽车进入停车位的管理模块、汽车离开停车位的管理模块和查看停车场停车状态的查询模块。具体功能描述如下:(1)程序功能介绍和操作提示模块:此模块给出程序欢迎信息,介绍本程序的功能,并给出程序功能所对应的键盘操作提示,具体屏幕显示如下所示:●●●●●●●●●欢迎使用本程序●●●●●●●●●●本程序为停车场的模拟管理程序,有车到来时请按【C】键;然后根据屏幕提示进行相关操作,有车要走时请按【L】键;然后根据屏幕提示进行相关操作,要查看车位请按【V】键.本程序为停车场的模拟管理程序,要退出程序请按【Q】键;函数原型为:voidwelcome();(2)汽车进入停车位的管理模块:此模块用来登记停车位的汽车的车牌号和对该车的调度过程并修改汽车的状态,其中调度过程要以屏幕信息的形式反映给用户来指导用户对车辆的调度。例如,当前停