欢迎来到天天文库
浏览记录
ID:55550168
大小:28.00 KB
页数:7页
时间:2020-05-16
《C++,数据结构,停车场管理系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、哈尔滨华德学院,11级计算机系吴林原创问题描述:设停车场是一个可以停放n辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求
2、进行管理的模拟程序。要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应缴纳的费用和它在停车场内停留的时间。程序提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。#include#includ
3、eusingnamespacestd;//#include#defineMAX5//停车场车位数#defineprint0.05//每分钟收取的费用typedefstructtime{inthour,min;}Time;//定义时间结点typedefstructnode{stringnum;Timereach,leave;}CarNode;//定义每辆车的牌号,进入时刻,离开时刻typedefstructNODE{CarNode*stack[MAX+1];inttop;}SeqStackCar;//用栈定义
4、,构造停车场typedefstructcar{CarNode*data;structcar*next;}QueueNode;//用队列结点定义,构造停车场外的单个等候车辆typedefstructNode{QueueNode*head,*rear;}LinkQueueCar;//用队列定义,构造停车场外的等候便道voidInitStack(SeqStackCar*);//初始化堆栈函数声明intInitQueue(LinkQueueCar*);//初始化队列头结点函数声明intReach(SeqStackCar*,LinkQueueCar*);
5、//车辆进入时登记函数声明voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);//车辆离开时函数声明voidList(SeqStackCar,LinkQueueCar);//查看停车场内车辆情况及便道上车辆情况的函数声明voidPRINT(CarNode*p,introom);//输出离开停车场的车辆情况voidmain(){SeqStackCarEnter,Temp;//初始栈,中转栈LinkQueueCarWait;//便道队列inta;InitStack(&Enter);InitStack
6、(&Temp);InitQueue(&Wait);//初始化while(1){cout<<"欢迎光临停车场!"<>a;if(a>=1&&a<=4)break;elsecout<7、数case2:Leave(&Enter,&Temp,&Wait);break;//调用离开停车场函数case3:List(Enter,Wait);break;//调用查看函数case4:exit(0);default:break;}//system("cls");}}voidInitStack(SeqStackCar*s)//堆栈初始化{s->top=0;s->stack[s->top]=NULL;}intInitQueue(LinkQueueCar*Q)//队列初始化{Q->head=newQueueNode;if(Q->head!=NULL8、){Q->head->next=NULL;Q->rear=Q->head;return1;}elsereturn-1;}voidPRINT(CarNo
7、数case2:Leave(&Enter,&Temp,&Wait);break;//调用离开停车场函数case3:List(Enter,Wait);break;//调用查看函数case4:exit(0);default:break;}//system("cls");}}voidInitStack(SeqStackCar*s)//堆栈初始化{s->top=0;s->stack[s->top]=NULL;}intInitQueue(LinkQueueCar*Q)//队列初始化{Q->head=newQueueNode;if(Q->head!=NULL
8、){Q->head->next=NULL;Q->rear=Q->head;return1;}elsereturn-1;}voidPRINT(CarNo
此文档下载收益归作者所有