首页 实验报告停车场管理

实验报告停车场管理

举报
开通vip

实验报告停车场管理-进入停车场的时间)实验停车场管理姓名:曹国君梁辰唐琪皓黄悦班级:信息1班学号:09125676091256750912567209125673实验时间:第5周问题描述设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入得车辆必须先退出车场为它...

实验报告停车场管理
-进入停车场的时间)实验停车场管理姓名:曹国君梁辰唐琪皓黄悦班级:信息1班学号:09125676091256750912567209125673实验时间:第5周问题描述设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入得车辆必须先退出车场为它让路,待该车辆开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按照它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。数据结构设计由于停车场的停车位有限,只有一个入口,且通道狭长,当停车场内某辆车要离开时,在它之后开入得车辆必须先退出车场为它让路,顺序栈的结构符合停车场的需求。若车场内已停满,车辆再外排队等候,队伍不限长度,可以使用链式队列进行模拟。输入:停车位数,停车费单价,进入或离去,车牌号,进入或离去时间输出:进入:输出停在停车场或者便道上的位置离去:输出停留在停车场上的时间(离开时间及费用为了满足以上的要求,至少需要记录进入时间以及车牌号templateclassSqStack{protected:顺序栈的数据成员:inttop;//栈顶指针intmaxSize;structSet//定义一个结构体,可以存放两个数据{ElemTypenum;ElemTypetime;};//栈最大容量Set*elems;}templatestructNode{//数据成员:ElemTypedata1,data2;//两个数据域Node*next;//指针域//构造函数:Node();Node(ElemTypeitem1,ElemTypeitem2NULL);//已知数数据元素值和指针建立结构};3.程序设计//无参数的构造函数,Node*link=头文件由于数据域的改变,创建,插入,删除等函数都需要增加一个数据域的处理。顺序栈:public://抽象数据类型方法声明及重载编译系统默认方法声明:SqStack(intsize=DEFAULT_SIZE);//构造函数virtual~SqStack();//析构函数intLength()const;//求栈长度boolEmpty()const;//判断栈是否为空voidClear();//将栈清空voidTraverse(void(*Visit)(constElemType&))const;//遍历栈&t);StatusStatusPush(constElemType//入栈Top(ElemType&e,const&e,ElemTypeElemType&t)const;//取顶元素StatusPop(ElemType&e,ElemType&e);//出栈SqStack(constSqStack©);//复制构造函数SqStack&operator=(constSqStack©);赋值语句重载链式队列:public:LinkQueue();无参数的构造函数virtual~LinkQueue();//析构函数intLength()const;//求队列长度boolEmpty()const;//判断队列是否为空voidClear();//将队列清空voidTraverse(void(*Visit)(constElemType&))const;//遍历队列StatusDelQueue(ElemType&e,ElemType&t);//出队操作StatusGetHead(ElemType&e,ElemType&t)const;//取队头操作StatusEnQueue(constElemType&e,constElemType&t);//入队操作LinkQueue(constLinkQueue©);//复制构造函数LinkQueue&operator=(constLinkQueue©);//赋值语句重载2)辅助函数当车辆离开时,输入车牌号与离开时间,如果该车辆在停车场中,则在其之后的车辆需要暂时离开停车场为其让路,返回其进入停车场的时间,并判别为真;如果该车辆不存在停车场中,则判别为假。intdepart(constint&a,constint&n,SqStack&p,bool&dans)//返回进入时间{SqStackpark1(n);//建立一个临时栈inttmpn,tmpt,count=0,atime,i;do{p.Pop(tmpn,tmpt);park1.Push(tmpn,tmpt);count++;}//计数器用来记录让开的车数while(tmpn!=a&&!p.Empty());//如果栈顶车牌不符合条件,而且栈不为空,把栈顶元素弹出后放入临时栈中{if(tmpn==a)dans=1;//如果找到了该车//判别为真park1.Pop(tmpn,tmpt);//该车辆离开count--;}else{dans=0;}//如果遍历仍找不到车,则判别为假atime=tmpt;for(inti=0;ivoidSqStack::Traverse(void(*Visit)(constElemType&))const//操作结果:从栈顶到栈底依次对栈的每个元素调用函数(*visit){for(intPos=top-1;Pos>=0;Pos--)栈的每个元素调用函数(*visit){cout<<"车牌:";(*Visit)(elems[Pos].num);cout<<"到达时间:";(*Visit)(elems[Pos].time);//从栈底到栈顶对cout<&p,bool&dans){SqStackpark1(n);inttmpn,tmpt,count=0,atime,i;do{p.Pop(tmpn,tmpt);park1.Push(tmpn,tmpt);count++;}while(tmpn!=a&&!p.Empty());if(tmpn==a){dans=1;park1.Pop(tmpn,tmpt);count--;}else{dans=0;}atime=tmpt;for(inti=0;i>n;}LinkQueuehallway;SqStackpark(n);cout<<"请输入每分钟停车费:"<>prix;while(jug!='E')//选择界面{cout<<"A.车辆到达"<>jug;switch(jug){case'A'://进入{cout<<"请输入车牌号与达到时间:"<>num>>time;if(park.Length()!=n)//停车场没满{park.Push(num,time);cout<<"车牌号为"<>num>>time;oldtime=depart(num,n,park,si);//记录进入时间,判定其存在if(si){cout<<"车牌号为"<);//遍历停车场占用的车位cout<
本文档为【实验报告停车场管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
is_090279
暂无简介~
格式:doc
大小:108KB
软件:Word
页数:0
分类:
上传时间:2021-09-14
浏览量:2