停车场管理的模拟系统解读Word文件下载.docx
- 文档编号:18450697
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:18
- 大小:308.50KB
停车场管理的模拟系统解读Word文件下载.docx
《停车场管理的模拟系统解读Word文件下载.docx》由会员分享,可在线阅读,更多相关《停车场管理的模拟系统解读Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
3对每一组输入数据进行操作后的输出信息为:
每当有车辆到达或离去时,动态输出停车场内、便道上以及临时停放道的车辆排队情况,若是车辆离去,还应输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停车不收费)。
.记录到达车辆:
.程序原定车位5个,当停车场车位已满时,到达车辆进入便道等候,当停车场有车离开时,在便道上的车自动进入停车场,并且以此时的时间来计算从便道进入停车场的车时间,离开的车要按停放的时间收取费用:
.查询功能,可以选择查询停车场里的停放的车,或者是查询便道上等候的车辆:
三、流程图和算法设计
.Judge_Output算法流程图
.A_cars算法流程图
.D_cars流程图
四、
源程序代码
#include<
iostream.h>
stdio.h>
stdlib.h>
#defineMAX5//车库容量
#defineprice0.01//每分钟费用
typedefstructtime
{
inthour;
intmin;
}Time;
//时间结点
typedefstructnode
charnum[10];
Timereach;
Timeleave;
}CarNode;
//车辆结点
typedefstructNODE
CarNode*stack[MAX+1];
inttop;
}SeqStackCar;
//模拟车站
typedefstructcar
CarNode*data;
structcar*next;
}QueueNode;
typedefstructNode
QueueNode*head;
QueueNode*rear;
}LinkQueueCar;
//模拟通道
voidInitStack(SeqStackCar*);
//初始化栈
intInitQueue(LinkQueueCar*);
//初始化便道
intArrival(SeqStackCar*,LinkQueueCar*);
//车辆到达
voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);
//车辆离开
voidList(SeqStackCar,LinkQueueCar);
//显示存车信息
voidmain()
system("
color00f"
);
SeqStackCarEnter,Temp;
LinkQueueCarWait;
intch;
InitStack(&
Enter);
//初始化车站
Temp);
//初始化让路的临时栈
InitQueue(&
Wait);
while
(1)
cout<
<
"
欢迎光临"
endl;
*************************"
1.车辆到达"
2.车辆离开"
3.列表显示"
4.退出系统"
请选择所需要的服务!
请注意正确输入时间,不要为非数字!
cin>
>
ch;
if(ch>
=1&
&
ch<
=4)break;
else
请选择:
1|2|3|4."
}
switch(ch)
case1:
Arrival(&
Enter,&
break;
case2:
Leave(&
Temp,&
case3:
List(Enter,Wait);
//列表打印信息
case4:
exit(0);
//退出主程序
default:
voidInitStack(SeqStackCar*s)//初始化栈
inti;
s->
top=0;
for(i=0;
i<
MAX;
i++)
stack[s->
top]=NULL;
intInitQueue(LinkQueueCar*Q)//初始化便道
Q->
head=(QueueNode*)malloc(sizeof(QueueNode));
if(Q->
head!
=NULL)
Q->
head->
next=NULL;
rear=Q->
head;
return
(1);
elsereturn(-1);
voidPRINT(CarNode*p,introom)//打印出站车的信息
intA1,A2,B1,B2;
请输入离开的时间:
/**:
**/"
p->
leave.hour;
while(p->
leave.hour<
reach.hour||p->
leave.hour>
23)
error!
请输入离开的时间的时("
reach.hour<
-23)"
B1=p->
:
"
leave.min;
endl<
离开车辆的车牌号是:
puts(p->
num);
其到达时间为:
reach.min<
离开时间为:
leave.min<
A1=p->
reach.hour;
A2=p->
reach.min;
B2=p->
应交费用为:
((B1-A1)*60+(B2-A2))*price<
元!
free(p);
intArrival(SeqStackCar*Enter,LinkQueueCar*W)//车辆到达
CarNode*p;
QueueNode*t;
p=(CarNode*)malloc(sizeof(CarNode));
flushall();
请输入车牌号(例:
A1234):
gets(p->
if(Enter->
top<
MAX)//车辆未满,车进车场
Enter->
top++;
车辆在车场第"
top<
位置!
请输入到达时间的时:
0||p->
reach.hour>
请输入到达时间的时(0-23)!
到达时间的分:
reach.min>
59)
请输入到达时间的分(0-59)!
stack[Enter->
top]=p;
return
(1);
else//车辆已满,车进入便道
该车在便道等待!
t=(QueueNode*)malloc(sizeof(QueueNode));
t->
data=p;
W->
rear->
next=t;
rear=t;
voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W)//车辆离开
introom;
CarNode*p,*t;
QueueNode*q;
//判断车场内是否有车
top>
0)//有车
while
(1)//输入离开车辆的信息
请输入车在车场的位置1--"
;
room;
if(room>
=1&
room<
=Enter->
top)break;
while(Enter->
room)//车辆离开
Temp->
stack[Temp->
top]=Enter->
top];
top--;
p=Enter->
while(Temp->
=1)
top]=Temp->
PRINT(p,room);
//判断通道上是否有车及车站是否已满
if((W->
=W->
rear)&
MAX)//便道的车辆进入车场
q=W->
next;
t=q->
data;
便道的"
num<
号车进入车场第"
请输入现在的时间如/*:
*/"
if(p->
next=q->
if(q==W->
rear)W->
rear=W->
top]=t;
free(q);
else
便道里没有车!
cout<
车场里没有车!
//没车
voidList1(SeqStackCar*S)//列表显示车场信息
inti;
if(S->
0)//判断车场内是否有车
车场:
位置到达时间车牌号"
for(i=1;
=S->
top;
S->
stack[i]->
voidList2(LinkQueueCar*W)//列表显示便道信息
QueueNode*p;
p=W->
if(W->
rear)//判断通道上是否有车
等待车辆的号码为:
while(p!
data->
p=p->
voidList(SeqStackCarS,LinkQueueCarW)
intflag,tag;
flag=1;
while(flag)
请选择1|2|3:
1.车场"
2.便道"
3.返回"
tag;
if(tag>
=1||tag<
=3)break;
switch(tag)
List1(&
S);
break;
//列表显示车场信息
List2(&
W);
//列表显示便道信息
flag=0;
五、课程设计总结
通过这次C++课程设计,我认识到课本上学到的远远不够。
本次设计使我深入的了解了C++编程的实际问题下的灵活运用,并对C++有了更深一步的认识。
虽然经过努力终于把系统完成,可是系统还是不完善,程序中的一些算法还不是很清楚,只不过把一些简单的功能实现了出来,这些缺陷归根到底都是我的C++语言和数据结构水平还不是很高,好需要经过不懈的努力才能做出比较完善的系统。
这次课程设计让我明白到要真正掌握一门汇编语言需要的不仅仅是课本上的东西,还要在实际的编程过程中慢慢掌握其中的奥妙。
同时我明白了,要成为一名优秀的编程人员必须具备坚实的编程语言基础,熟练的调试程序的技能,耐心也很重要,同时细心也是不可或缺的。
所以为了自己的梦想,在以后的学习过程中,我要不断的充实自己,努力地学习。
通过本次的课程设计让我熟悉了软件开发的基本过程,初步掌握了了软件开发过程的问题分析,系统设计,程序编码,测试等阶段的基本任务和技能方法,培养了我的算法设计和算法分析的能力,提高了综合运用所学的理论知识和方法以及独立分析问题的能力。
六、参考资料
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 模拟 系统 解读