停车场管理Word格式文档下载.docx
- 文档编号:8395992
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:18
- 大小:196.47KB
停车场管理Word格式文档下载.docx
《停车场管理Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《停车场管理Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。
输出信息:
若是车辆到达,则输出汽车在停车场内或便道上的停车
位置;
若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费
用(在便道上停留的时间不收费)。
【测试数据】
设n=2,输入数据为:
(’A’,1,5),(’A’,2,10),(’D’,1,15),
(’A’,3,20),(’A’,4,25),(’A’,5,30),(’D’,2,35),(’D’,4,40),
(’E’,0,0)。
其中:
’A’表示到达;
’D’表示离去;
’E’表示输入结束。
【实现提示】
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来
的汽车,也可用顺序存储结构实现。
输入数据按到达或离去的时刻有序。
栈中每个元素表示一辆汽车,包含两个数据项:
汽车的牌照号码和进入
停车场的时刻。
【选作内容】
(1)两个栈共享空间,思考应开辟数组的空间是多少?
(2)汽车可有不同种类,则它们的占地面积不同,收费标准也不同,
如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3
辆小汽车的占地面积。
(3)停放在便道上的汽车也收费,收费标准比停放在停车场的车低。
二.设计
1.设计思想
(1).储存结构:
以栈模拟停车场,以队列模拟车场外的便道。
(2).主要算法基本思想
2.设计表示
(1)函数调用关系图
main->
InitStack()->
InitStack()->
InitQueue()
(2)函数规格接口说明
StatusInitStack(Park&
P)//初始化停车场/P为停车场对象
StatusPush(Park&
P,CarNodee)//车进入停车场*/P为停车场对象,e为车
StatusPop(Park&
P,CarNode&
e)//车离开停车场
StatusInitQueue(Shortcut&
S)//初始化便道,S为便道对象
StatusEnQueue(Shortcut&
S,intnumber,intar_time)//车进入便道
StatusDeQueue(Shortcut&
S,CarPtr&
w)//车离开便道
StatusArrival(Park&
P,Shortcut&
S)//对进站车辆的处理
StatusLeave(Park&
P,Park&
P1,Shortcut&
S)//对离站车辆的处理
3.实现注释
每一组输入数据包括:
汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻。
若是车辆到达,则输出汽车在停车场内或便道上的停车位置;
若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用
(在便道上停留的时间不收费)。
4.详细设计(主要算法的细化)
P)//初始化停车场
P.base=(CarNode*)malloc(SIZE*sizeof(Car1));
if(!
P.base)exit(OVERFLOW);
P.top=P.base;
P.stacksize=0;
returnOK;
}
P,CarNodee){//车进入停车场
*P.top++=e;
++P.stacksize;
e){//车离开停车场
if(P.top==P.base)
printf("
停车场为空。
"
);
else
{
e=*--P.top;
--P.stacksize;
}
S){//初始化便道
S.front=S.rear=(CarPtr)malloc(sizeof(Car2));
S.front||!
S.rear)exit(OVERFLOW);
S.front->
next=NULL;
S.length=0;
S,intnumber,intar_time){//车进入便道
CarPtrp;
p=(CarPtr)malloc(sizeof(Car2));
p)exit(OVERFLOW);
p->
number=number;
ar_time=ar_time;
S.rear->
next=p;
S.rear=p;
++S.length;
w){//车离开便道
if(S.length==0)
通道为空。
w=S.front->
next;
next=S.front->
next->
--S.length;
S){//对进站车辆的处理
intnumber,ar_time;
请输入车牌号:
scanf("
%d"
&
number);
进场的时刻:
ar_time);
if(P.stacksize<
SIZE)
CarNodec;
c.number=number;
c.ar_time=ar_time;
Push(P,c);
该车应停在第%d号车道。
\n"
P.stacksize);
EnQueue(S,number,ar_time);
停车场已满,请暂时停在便道的第%d个位置。
S.length);
S){//对离站车辆的处理
intnumber,le_time,flag=1,money,ar_time;
出场的时刻:
le_time);
CarNodee,m;
CarPtrw;
while(P.stacksize)
Pop(P,e);
if(e.number==number)
flag=0;
money=(le_time-e.ar_time)*2;
ar_time=e.ar_time;
break;
Push(P1,e);
while(P1.stacksize)
Pop(P1,e);
Push(P,e);
//车从停车场中出
if(flag==0)
if(S.length!
=0)
DeQueue(S,w);
m.ar_time=le_time;
m.number=w->
number;
Push(P,m);
free(w);
车牌号为%d的车已由便道进入停车场\n"
m.number);
停车费为%d,占用车位数为%d\n"
money,P.stacksize);
停车场不存在牌号为%d的车\n"
number);
主函数如下:
voidmain()
{
intm=1;
charflag;
//选项
ParkP,Q;
ShortcutS;
InitStack(P);
InitStack(Q);
InitQueue(S);
while(m)
\n停车场管理程序\n"
===============================================\n"
**A汽车进车场**\n"
****\n"
**D汽车出车场**\n"
**E退出程序**\n"
请选择(A,D,E):
"
%c"
flag);
switch(flag)
case'
A'
:
a'
Arrival(P,S);
break;
//车进入停车场
D'
d'
Leave(P,Q,S);
//车离开停车场
E'
e'
m=0;
default:
Inputerror!
while(flag!
='
\n'
)
三.调试分析
1.调试遇到的主要问题以及解决方案:
1静态调试:
按求解算法和C语言的语法规则进行检查:
语法上出现一些小的问题,但也是程序无法运行,经修改后可以了。
2动态调试:
将设计题给出的路径进行运行,程序可以运行
3.由于此停车场管理系统是分模块设计的,整体看来结构较为清晰,使用方便,易读易懂,本程序的运行,总体上情况良好。
【用户手册】
1.本程序在VC环境下可以运行。
2.根据提示的命令输入需要的服务进行选择。
四.经验体会
一直都知道C语言学的很差,但是最基本的编程还是可以完成的,但是这次实习让我知道我的编程能力是如此之差,它让我深刻意识到我的基本功还不够扎实,以后还要多下功夫。
五.运行结果
设n=2,输入数据为:
(’E’,0,0)。
六.源程序清单
#include<
stdio.h>
stdlib.h>
malloc.h>
//函数返回状态代码
#defineOK1
#defineERROR0
#defineTRUE1
#defineFALSE0
#defineINFEASIBLE-1
#defineOVERFLOW-2
#defineSIZE5//停车场位置数
typedefintStatus;
//栈,模拟停车场
typedefstructCar1
{//车
intnumber;
//汽车车号
intar_time;
//汽车到达时间
}CarNode;
typedefstruct
{//停车场
CarNode*base;
//停车场的堆栈底
CarNode*top;
//停车场的堆栈顶
intstacksize;
}Park;
//队列,模拟便道
typedefstructCar2
structCar2*next;
}*CarPtr;
{//便道
CarPtrfront;
//便道的队列的对头
CarPtrrear;
//便道的队列的队尾
intlength;
}Shortcut;
P)
{//初始化停车场
P,CarNodee)
{//车进入停车场
e)
{//车离开停车场
S)
{//初始化便道
S,intnumber,intar_time)
{//车进入便道
w)
{//车离开便道
{//对进站车辆的处理
{//对离站车辆的处理
**A汽车进入停车场**\n"
**D汽车离开停车场**\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理