欢迎来到天天文库
浏览记录
ID:44540603
大小:92.76 KB
页数:16页
时间:2019-10-23
《模拟停车厂管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、模拟停车厂管理问题描述:设停车厂只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进岀。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,贝IJ排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退岀车场为它让路,待该辆车开出大门后,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走。基本要求:以栈模拟停车场,以队列模拟车场外的便道,按照从终端输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车”到达"或"离去〃信息、汽车牌照号码以及
2、到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出车辆在停车场内或便道上的停车位置;若是车辆离去,则输出车辆在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费X栈以顺序结构出现”队列以链表结构实现。(1)连续有7辆车到来,牌照号分别为JFOOl、JF002、JF003、JF004、、JF005、JF006、JF007,前5辆车应该进入停车位1・5车位,第6、7辆车应停入便道的1、2位置上。(2)(1)中的情况发生后,让牌照号为JF003的汽车从停车厂开走,应显示JF005、JF004的让路动作和JF006从便道到停车位上的动作。(3)随时检查停车位和
3、便道的状态,不应该出现停车位有空位而便道上还有车的情况。(4)程序容错性的测试,当按键输入错误的时候是否有错误提示给用户指导用户正确操作,并作出相应处理保证程序健康的运行。选作内容:(1)汽车可有不同种类,则它们的占地面积不同,消费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(2)汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。(3)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改以满足这种要求。#include#include#define
4、N5usingnamespacestd;typedefstruct〃定义停车场栈{stringnuml[N];〃车牌号inthourl[N];〃时间inttop;JSeqStack;typedefstructnode〃定义便道队列{stringnum2;inthour2;intmin2;structnode*next;}QNode;typedefstruct{QNode*front/rear;intdata;JLQueue;SeqStack*Init_SeqStack()〃初始化停车场SeqStack*s;s二newSeqStack;s->top二returns;}LQueue*Init
5、_LQueue()〃初始化便道队列{LQueue*q;QNode*p;q二newLQueue;p二newQNode;p->next=NULL;q・>front=p;q->rear=p;q・>data=O;returnq;}voidIn_LQueue(LQueue*qzstringnumijnthourijntmini)〃输入便道车辆信息{QNode*p;q->data++;p二newQNode;p・>num2=numi;p->hour2=houri;p->min2=mini;p・>next=NULL;q->rear->next=p;q->rear=p;cout<<“该车停于便道“<6、>data<<“号车位'<top==N-l){cout<<"停车位已满!"<top++;s->numl[s->top]=numi;s->hourl[s->top]=houri;s->minl[stop]=mini;cout<<"该车停于停车场"vvs・>top+lvv”号车位"vvend7、I;return(s->top);}}intPush2_SeqStack(SeqStack*s/stringnumijnthourijntmini)//输入到来车辆信{if(s->top==N-l){coutvv”停车场已满!"vvendl;return0;}else{s->top++;s->numl[s->top]二numi;s->hourl[s->top]=houri;s->minl[s・>top]=mini;return(s・
6、>data<<“号车位'<top==N-l){cout<<"停车位已满!"<top++;s->numl[s->top]=numi;s->hourl[s->top]=houri;s->minl[stop]=mini;cout<<"该车停于停车场"vvs・>top+lvv”号车位"vvend
7、I;return(s->top);}}intPush2_SeqStack(SeqStack*s/stringnumijnthourijntmini)//输入到来车辆信{if(s->top==N-l){coutvv”停车场已满!"vvendl;return0;}else{s->top++;s->numl[s->top]二numi;s->hourl[s->top]=houri;s->minl[s・>top]=mini;return(s・
此文档下载收益归作者所有