《《实验四停车场》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《实验四停车场》PPT课件.ppt(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【问题描述】见【问题描述】见“题集题集”P96。【基本要求】以【基本要求】以栈模拟停车场栈模拟停车场,以,以队列模拟队列模拟车场外的车场外的便道便道,按照从终端读入的输入数据序列进行模拟管理。按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车每一组输入数据包括三个数据项:汽车“到达到达”或或“离去离去”信息、汽车牌照号码以及到达或离去的时刻;信息、汽车牌照号码以及到达或离去的时刻;对每一组输入数据进行操作后输出信息为:若是车辆到达,对每一组输入数据进行操作后输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场或便道上的停车位
2、置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用则输出汽车在停车场内停留的时间和应交纳的费用(在便在便道上停留的时间不收费道上停留的时间不收费);栈以顺序结构实现,队列以链表结构实现。栈以顺序结构实现,队列以链表结构实现。程序结构:程序结构:其中,其中,InitStack(SeqStackCar*s):初始化栈初始化栈(顺序栈顺序栈)停车场。停车场。int InitQueue(LinkQueueCar*Q):初始化通道初始化通道(用用链队列链队列结构结构)。int Arrival(SeqStackCar*Enter,LinkQueueCar*W):车辆到达。如果,车辆到达。如果,
3、车位不满,则进栈,并输入到达车场的时间车位不满,则进栈,并输入到达车场的时间(以以hh:mm的格式给出的格式给出);否则进入通道等待。否则进入通道等待。Leave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W):车车辆离开。离开时,需辅助一个临时栈辆离开。离开时,需辅助一个临时栈Temp,并输入离开车场的时间,并输入离开车场的时间(以以hh:mm的格式给出的格式给出),此时,需要计算停车费用,此时,需要计算停车费用;当一辆车离开后,;当一辆车离开后,要判断通道上是否有车等待,如果有,则需从通道进入车场。要判断通道上是否有车等待,如果有,则需
4、从通道进入车场。List(SeqStackCar S,LinkQueueCar W):显示车辆信息。包括:车牌号、显示车辆信息。包括:车牌号、到达时间、停车位、在通道上等待的位置、离开时间、停车费用等。到达时间、停车位、在通道上等待的位置、离开时间、停车费用等。mainInitStackInitQueueArrivalLeaveListn数据结构定义:数据结构定义:#define MAX 3 /*车库容量车库容量*/#define price 0.05 /*每车每分钟费用每车每分钟费用*/typedef struct timeint hour;int min;Time;/*时间结点时间结点*/
5、typedef struct nodechar num10;/车牌号车牌号Time reach;Time leave;CarNode;/*车辆信息结点车辆信息结点*/typedef struct NODECarNode*stackMAX+1;int top;SeqStackCar;/*模拟车场模拟车场*/typedef struct car CarNode*data;struct car*next;QueueNode;typedef struct Node QueueNode*head;QueueNode*rear;LinkQueueCar;/*模拟通道模拟通道*/【实现提示】【实现提示】设置另一个栈,临时停放为给要离去的汽车让路而设置另一个栈,临时停放为给要离去的汽车让路而从停车场退出的汽车,用顺序结构实现;从停车场退出的汽车,用顺序结构实现;注意:注意:n输入数据按到达或离去的时刻有序。输入数据按到达或离去的时刻有序。