模拟停车场管理实验报告1Word文档下载推荐.docx
- 文档编号:20333688
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:12
- 大小:116.83KB
模拟停车场管理实验报告1Word文档下载推荐.docx
《模拟停车场管理实验报告1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《模拟停车场管理实验报告1Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
structcinfo
{
intcnum;
intatime;
};
structstack
cinfocstack[100];
inttop;
intsize;
structnode
node*next;
intnnum;
structqueue
{
node*front,*rear;
voidinitstack(stack*s)
{s->
top=-1;
}
intinstack(stack*s,cinfox)//元素进站
if(s->
top==N-1)
{
cout<
<
"
停车位已满!
endl;
return0;
}
else
s->
cstack[++s->
top]=x;
return1;
cinfooutstack(stack*s)//元素出栈
cinfoy;
top<
0)
um=NULL;
y.atime=NULL;
returny;
s->
top--;
returns->
cstack[s->
top+1];
voidinitqueue(queue*q)//初始化队列
q->
front=newnode;
rear=q->
front;
front->
next=NULL;
nnum=0;
voidinqueue(queue*q,intnum1)//元素进队列
node*p;
p=newnode;
p->
nnum=num1;
rear->
next=p;
rear=p;
nnum++;
intoutqueue(queue*q)
intn;
if(q->
front==q->
rear)
p=q->
next;
next=p->
if(p->
next==NULL)
n=p->
nnum;
deletep;
nnum--;
returnn;
voidcarrival(stack*s,queue*q,cinfox)
intf;
f=instack(s,x);
if(f==0)
inqueue(q,um);
车牌号为"
um<
"
的车成功停在停车场"
q->
nnum<
号便道"
cout<
s->
top+1<
号车位"
voidcarleave(stack*s1,stack*s2,queue*q,cinfox)
inta,n=0;
while((s1->
top>
-1)&
&
(n==0))
y=outstack(s1);
if(um!
=um)
a=instack(s2,y);
n=1;
if(um==um)
if(x.atime-y.atime<
100)
的车想要离开,收费金额为"
(x.atime-y.atime)*m/60/60<
元!
10000&
x.atime-y.atime>
100||x.atime-y.atime==100)
(x.atime-y.atime)*m/60/60/10*6<
if(x.atime-y.atime>
10000||x.atime-y.atime==10000)
(x.atime-y.atime)*m/60/60/100*36<
while(s2->
-1)
y=outstack(s2);
n=instack(s1,y);
a=outqueue(q);
if(a!
=0)
um=a;
y.atime=x.atime;
s1->
号车位."
}
n=0;
while(p->
next!
=NULL&
n==0)
next->
nnum!
p=p->
{
next=NULL)
想要从便道上离开"
}
if(n==0)
很抱歉的告诉您,输入有误,请重新输入!
voidmain()
请输入一个整数作为停车场停车位的数量:
cin>
>
N;
//这里N将作为栈能存放元素的数量
while(N<
很抱歉的告诉您,您的输入有误,请重新输入一个大于零的数:
charchoice;
stack*s1,*s2;
queue*q;
cinfox;
intflag;
s1=newstack;
s2=newstack;
q=newqueue;
initstack(s1);
initstack(s2);
initqueue(q);
flag=1;
for(;
;
)
请输入登记信息:
'
A'
/'
B'
车牌号码;
汽车进出停车场的时间."
while(choice)
A/a汽车进停车场"
B/b汽车出停车场"
choice>
um>
x.atime;
switch(choice)
{
case'
:
case'
a'
carrival(s1,q,x);
break;
b'
carleave(s1,s2,q,x);
default:
cout<
输入有误!
!
4、调试分析
遇到的问题
、车辆进出时间需要精确到秒,并且时间的格式并不方便计算,尝试了很多种的方法;
、车辆离开后便道上的车辆要进入停车位;
解决的办法
、采用数字的方式记下时间,精确到秒,计算应付金额的时候进行时间与数字之间的转换;
5、使用说明及测试结果
1、设置停车位为四个
2、按照提示依次输入。
输入四辆进入的车辆的信息,占满停车位。
3、若再输入进入车辆的信息,则会停在便道上,显示停车位已满。
4、当停在一号和三号停车位的车辆离开停车场时车位变动,停在便道上的车辆进入停车位。
6、反思及总结
1、通过本程序熟练掌握了栈和队列的定义和使用方法,对使用C++语言编码来验证数据结构的理论知识有了更深层次的理解,达到了实验目的。
2、通过在设计过程中的讨论和思考,对使用现有知识利用计算机来解决现实生活中的实际问题确立了信心,对软件工程思想和模块化程序思想有了比较清晰的理解,为今后的程序设计奠定了一定的心理和技术上的准备。
3、由于时间仓促和个人能力有限,程序中还有一些需要完善的地方,例如:
对停放到停车厂的汽车按时间的收费管理,程序界面可以使用图形方式使之更美观,使用鼠标或菜单方式使之能够适应更多人的使用习惯。
在今后的实验中要多多练习这方面的能力。
4、由于该程序的使用次数还尚少,容错性能还有待改善。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 停车场 管理 实验 报告