数据结构 停车场管理系统文档格式.docx
《数据结构 停车场管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构 停车场管理系统文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
![数据结构 停车场管理系统文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/27/3923f2f2-2357-480e-922e-34140f57aa5c/3923f2f2-2357-480e-922e-34140f57aa5c1.gif)
2、算法描述与实现
(1)时间结点类型
typedefstructtime{
inthour;
intmin;
}Time;
/*时间结点*/
(2)车辆进出站信息类型
typedefstructnode{
charnum[10];
Timereach;
Timeleave;
}CarNode;
/*车辆信息结点*/
(3)停车场和便道信息类型
typedefstructNODE{
CarNode*stack[Max+1];
inttop;
}SeqStackCar;
/*模拟车站*/
typedefstructcar{
CarNode*data;
structcar*next;
}QueueNode;
typedefstructNode{
QueueNode*head;
QueueNode*rear;
}LinkQueueCar;
/*模拟通道*/
voidInitStack(SeqStackCar*,intn);
/*声明栈*/
//初始化,创建一个新栈S用于停车场
intInitQueue(LinkQueueCar*);
/*声明便道*/
//初始化,创建一个队列Q用于便道
intArrival(SeqStackCar*,LinkQueueCar*,intn);
/*车辆进站*/
{
CarNode*p;
QueueNode*t;
p=(CarNode*)malloc(sizeof(CarNode));
flushall();
printf("
\n请输入车牌号(例如:
吉A1234):
"
);
gets(p->
num);
if(Enter->
top<
MAX)/*车场未满,车进车场*/
{
Enter->
top++;
printf("
\n车辆在车场第%d位置."
Enter->
top);
\n请输入到达时间:
/**:
**/"
scanf("
%d:
%d"
&
(p->
reach.hour),&
reach.min));
stack[Enter->
top]=p;
return
(1);
}
else/*车场已满,车进便道等待*/
\n该车须在便道等待!
t=(QueueNode*)malloc(sizeof(QueueNode));
t->
data=p;
next=NULL;
W->
rear->
next=t;
rear=t;
}
voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*,intn);
/*车辆出站*/
(4)主函数和其它函数的伪码算法
voidmain()
SeqStackCarEnter,Temp;
LinkQueueCarWait;
intch;
intn;
n=getn();
InitStack(&
Enter,n);
/*初始化车场*/
Temp,n);
/*初始化让路的临时栈*/
InitQueue(&
Wait);
/*初始化便道*/
while
(1)
\n1.车辆进站"
2.车辆出站"
3.存车信息"
4.退出系统\n"
while
(1)
{
printf("
请选择:
1|2|3|4.\n"
scanf("
ch);
fflush(stdin);
do
{
if(ch>
4||ch<
1){
printf("
输入有误,请重新输入!
scanf("
fflush(stdin);
}
else
break;
}
while(ch>
1);
break;
}
switch(ch)
{
case1:
Arrival(&
Enter,&
Wait,n);
break;
case2:
Leave(&
Temp,&
/*车辆出站*/\
case3:
List(Enter,Wait);
/*存车信息*/
case4:
exit(0);
/*退出系统*/
default:
}
系统测试
程序初始界面:
车辆进站:
停车场存车信息:
车辆进入便道:
车辆出站:
便道上的车出站:
五、设计总结
参考文献:
《数据结构程序设计题典》
李春葆等编清华大学出版社
《数据结构(C语言版)》
黄国瑜叶乃菁编清华大学出版社
《数据结构课程设计》
苏仕华等编机械工业出版社
附录:
#include<
stdio.h>
stdlib.h>
string.h>
malloc.h>
/*------------------------------------------------------------------------------*/
#defineMax10
intgetn()
{
欢迎您光临吉吉停车场,"
本停车场管理实行24小时制,停车每分钟0.1元.\n"
请输入停车场可容纳的车(最多10辆):
scanf("
n);
fflush(stdin);
do
if(n<
1||n>
10)
{
输入的车辆数不在要求范围内,请重新输入!
fflush(stdin);
}
elsebreak;
while(n<
10);
returnn;
typedefstructtime
inthour;
intmin;
typedefstructnode
charnum[10];
Timereach;
Timeleave;
typedefstructNODE
CarNode*stack[Max+1];
inttop;
typedefstructcar
CarNode*data;
structcar*next;
typedefstructNode
QueueNode*head;
QueueNode*rear;
voidList(SeqStackCar,LinkQueueCar);
/*显示存车信息*/
voidInitStack(SeqStackCar*s,intn)/*初始化栈*/
inti;
s->
top=0;
for(i=0;
i<
=n;
i++)
s->
stack[s->
top]=NULL;
}
intInitQueue(LinkQueueCar*Q)/*初始化便道*/
Q->
head=(QueueNode*)malloc(sizeof(QueueNode));
if(Q->
head!
=NULL)
Q->
head->
rear=Q->
head;
elsereturn(-1);
v