停车场管理数据结构设计报告.docx
- 文档编号:26589706
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:13
- 大小:129.22KB
停车场管理数据结构设计报告.docx
《停车场管理数据结构设计报告.docx》由会员分享,可在线阅读,更多相关《停车场管理数据结构设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
停车场管理数据结构设计报告
题目:
停车场管理
1需求和规格说明1
1.1用栈模拟停车场,队列模拟临时便道。
2
1.2建立停车场和临时便道,若栈慢则进入临时便道等待2
2设计2
2.1设计思想2
2.2设计表示3
2.2.1存储结构3
2.2.2涉及操作20
2.3实现注释23
2.4详细解释23
2.4.1功能示意图23
2.4.2流程示意图24
3用户手册28
4调试报告28
5源代码及运行结构截图29
5.1源代码29
5.2运行截图30
6课程设计总结
1需求和规格说明
1.1用栈模拟停车场,队列模拟临时便道。
1.2建立停车场和临时便道,若栈慢则进入临时便道等待
2设计
2.1设计思想
汽车在停车场内进出是按照栈的运算方式来实现的,先到的先进停车场;停车场的汽车离开停车场时,汽车场内其它汽车为该辆汽车让路,也是按栈的方式进行;汽车在便道上等候是按队列的方式进行的。
因此,将停车场设计成一个栈,汽车让路也需要另一个栈来协助完成,汽车进出便道用队列来实现。
2.2设计表示
2.2.1存储结构
#definestacksize10
usingnamespacestd;
typedefstructsqstack
{
intdata[stacksize];
inttop;
}SqStackTp,*SqStack;
typedefstructlinked_queue
{
intdata;
structlinked_queue*next;
}LqueueTp,*Lqueue;
typedefstruct
{
Lqueuefront,rear;
}QueptrTp,*Queptr;
2.2.2涉及操作
voidWait(Queptrq,intdata)//停车场已满,进入需等待
intStopwait(Queptrq)//便道中得车辆停止等待
voidOutp(SqStacks,intdata)//车辆出停车场
voidIn(SqStacks,Queptrq,intdata)//车辆进停车场
voidOut(SqStacks,Queptrq,intdata)//车辆出停车场情况2.3实现注释
此部分内容详细参见源代码。
2.4详细解释
2.4.1功能示意图
图表总功能示意图
2.4.2流程示意图
3.用户手册
(1)用户首先选择进入或驶出停车场。
(2)进入停车场,判断停车场是否已满,如果已满则车辆进去便道等候,若不满,直接进入停车场。
(3)出停车场,用一个临时栈存要出栈之前的数据,找到将要出去的车号,将临时栈的元素进入原栈,若便道有车排队,则队列头的车辆停止等候,进入停车场
4调试报告
将13台车停入停车场,车号为11,12,13的车辆在便道依次等候,1号车出停车场,11号进入,2号出停车场,12号进入,3号车出停车场,13号进入,
5源代码及运行结构截图
5.1源代码
#include
#definestacksize10
usingnamespacestd;
typedefstructsqstack
{
intdata[stacksize];
inttop;
}SqStackTp,*SqStack;
typedefstructlinked_queue
{
intdata;
structlinked_queue*next;
}LqueueTp,*Lqueue;
typedefstruct
{
Lqueuefront,rear;
}QueptrTp,*Queptr;
voidWait(Queptrq,intdata)//停车场已满,进入需等待
{
cout<<"车号"< Lqueuep=newLqueueTp(); p->next=NULL; p->data=data; q->rear->next=p; q->rear=p; } intStopwait(Queptrq)//便道中得车辆停止等待 { Lqueuep; if(q->front! =q->rear) { p=q->front->next; cout<<"车号"< q->front=p; } else { return-1; } returnp->data; } voidOutp(SqStacks,intdata)//车辆出停车场 { intt[10],x=0; while(s->data[s->top]! =data) { t[x]=s->data[s->top]; s->top--; x++; } cout<<"车号"< s->data[s->top]=t[x-1];x--; while(x>0) { s->top++; s->data[s->top]=t[x-1]; x--; } } voidIn(SqStacks,Queptrq,intdata)//车辆进停车场 { if(s->top! =stacksize) { cout<<"车号"< s->data[s->top]=data; s->top++; } else { cout<<"停车场已满,请等待。 。 。 "< Wait(q,data); } } voidOut(SqStacks,Queptrq,intdata)//车辆出停车场 { if(s->top==stacksize) { Outp(s,data); intsw=Stopwait(q); if(sw>=0) { In(s,q,sw); } } else { Outp(s,data); } } intmain() { SqStacks=newSqStackTp(); s->top=0; Queptrq=newQueptrTp(); q->front=q->rear=newLqueueTp(); q->front->next=NULL; while (1) { cout<<"停车请输入1"< cout<<"取车请输入2"< intn,data; cin>>n; cout<<"请输入车号"< cin>>data; if(n==1) { In(s,q,data); } else { Out(s,q,data); } cout<<"+++++--------+++++"< } return0; } 5.2运行截图 6课程设计总结 (1)用栈实现停车场,先进后出,进入时判断是否满 (2)便道用队列存储,实现先等待的车辆先进入 (3)当车辆出停车场时,用临时栈存储指定车辆之前的车辆,指定车辆出停车场后将临时栈的数据重新存入原栈,等待的车辆可以进入停车场
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 数据 结构设计 报告