实验二停车场管理班级:A0712 学号:12 姓名:冷清淼 成绩:__________指导老师签名:__________一、问题描述设停车场是一个可停放 n 辆车的狭长通道,且只有一个大门可供汽车进出
在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)
若停车场内已停满 n 辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入
当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场
每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)
设计要求:1.模拟上述管理过程
要求以顺序栈模拟停车场,以链队列模拟便道
2.从终端读入汽车到达或离去的数据,每组数据包括三项:(1)是“到达"还是“离开”;(2)汽车牌照号码;(3)“到达"或“离开”的时刻
3.与每组输入信息相应的输出信息为:假如是到达的车辆,则输出其在停车场中或便道上的位置;假如是离去的车辆,则输出其在停车场中停留的时间和应交的费用
二、算法说明1.数据结构说明(1)用到两个堆栈:一个为车场栈;另一个为临时栈 temptypedef struct NODE{ CarNode *stack[MAX+1]; int top;}SeqStackCar; /*模拟车场*/(2)一个队列结构,存储便道车辆信息: typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟便道*/2.算法说明(1) 功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示 图 1 (2)以模块为单位分析算法 1、“到达"模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待