数据结构课程设计报告停车场管理系统Word文档下载推荐.docx

上传人:b****6 文档编号:20243414 上传时间:2023-01-21 格式:DOCX 页数:16 大小:170.06KB
下载 相关 举报
数据结构课程设计报告停车场管理系统Word文档下载推荐.docx_第1页
第1页 / 共16页
数据结构课程设计报告停车场管理系统Word文档下载推荐.docx_第2页
第2页 / 共16页
数据结构课程设计报告停车场管理系统Word文档下载推荐.docx_第3页
第3页 / 共16页
数据结构课程设计报告停车场管理系统Word文档下载推荐.docx_第4页
第4页 / 共16页
数据结构课程设计报告停车场管理系统Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据结构课程设计报告停车场管理系统Word文档下载推荐.docx

《数据结构课程设计报告停车场管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告停车场管理系统Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

数据结构课程设计报告停车场管理系统Word文档下载推荐.docx

(2)以模块为单位分析算法

1、“到达”模块:

到达时有两种情况,即车场是否满,未满则直接进入停车场;

满时,到便道等待。

如图2。

图2

2.“离开”模块:

离开时,当车库为空时,提示没有车,结束;

否则车辆离开。

如图3。

图3

3.“显示”模块:

显示模块有两个显示选项,即:

车场与便道。

如图4。

图4

 

三、测试结果

(一)测试用例(说明:

测试用例要合理并且足够,既要有正确用例,也要有错误用例,同时检验程序的正确性和强壮性)

1.第一组测试用例

(1)测试输入:

停车场的车辆离开,如下表:

服务选择

车牌号/车位

到达/离开时间

1

QH058

15:

25

AB123

18:

45

EA642

23:

15

2

0:

30

65(错误)

(2)测试目的:

测试离开方法时间格式控制以及费用计算是否正确。

(3)正确输出:

第一次离开的是AB123,应交费3.45元。

第二次时,当在输入65时,应该提示输入错误,重输。

(4)实际输出:

(5)错误原因:

第一个错误是在计算时,一个数字错了;

第二个是没有对时间格式控制。

(6)当前状态:

已改正

2.第二组测试用例

连续6辆车到达,如下表:

服务选择

车牌号

到达时间

A8828

7:

56

S2296

8:

WW666

HK456

50

GH999

12:

DD555

13:

40

(2)测试目的:

测试到达方法与列表显示方法能否正确完成。

先到达的五辆车先进入停车场,最后到达的一辆在便道等候。

没有作出时间先后的判断,而是先输入先进入。

待修改

3.第三组测试用例

接上一步输入离开信息,下表:

离开车位

离开时间

便道车进入时间

3

测试离开方法功能是否成功以及便道进入车场是否正确。

输出3号车位的车辆离开信息清单,便道1号车进入停车场。

没有错误。

(6)当前状态:

通过

(二)测试结果分析

此停车管理系统基本可能实现一个小的停车场的管理,其“到达”与“离开”方法都相对比较完整,以及结算清单明了。

尽管在时间先后上有出现混乱,但当其用到实际应用时,那个时间先后就可以避免了。

但在输入数据时,要按照严格的格式输入,否则有可能出现死去或崩溃。

若本系统能加上保存功能就更好了,因为一个系统在使用过程中总会关机等,而此系统的缺点却是没有保存功能,关闭之后就要重新建立了。

会慢慢完善。

附录:

源代码

///系统说明:

本系统适应于小型停车场,且停车时间在一天之的短期停放停车场。

//在此系统中,车库容量设置为5,便于测试。

在实际使用中可以对容量大小按实际情况设置。

#include<

iostream.h>

stdio.h>

stdlib.h>

string.h>

#defineMAX5/*车库容量,可以根据实际情况改变*/

#defineprice0.01/*一辆车每分钟费用,可变*/

typedefstructtime

{

inthour;

intmin;

}Time;

/*时间结点*/

typedefstructnode

charnum[10];

Timereach;

Timeleave;

}CarNode;

/*车辆信息结点*/

typedefstructNODE

/*模拟停车场*/

typedefstructcar

CarNode*data;

structcar*next;

}QueueNode;

typedefstructNode

}LinkQueueCar;

/*方法声明*/

voidInitStack(SeqStackCar*);

/*初始化栈*/

intInitQueue(LinkQueueCar*);

/*初始化便道*/

intArrival(SeqStackCar*,LinkQueueCar*);

/*车辆到达*/

voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);

/*车辆离开*/

voidList(SeqStackCar,LinkQueueCar);

/*显示信息*/

voidPRINT(CarNode*p,introom);

/*输出离开车辆的信息清单*/

voidmain()

system("

colorF2"

);

/*设置系统颜色,本系统为白底绿字f2*/

SeqStackCarEnter,Temp;

LinkQueueCarWait;

intch;

InitStack(&

Enter);

/*初始化车站*/

Temp);

/*初始化让路的临时栈*/

InitQueue(&

Wait);

/*初始化通道*/

while

(1)

{

cout<

<

"

※※※※@欢迎使用本停车管理系统@※※※※"

endl;

********************************************************"

※--※1.车辆到达※--※"

cout<

※--※2.车辆离开※--※"

※--※3.列表显示※--※"

※--※4.退出系统※--※"

!

说明:

请注意正确输入时间,在输入“时”后,按“ENTER”或者“空格”,再输入“分”。

不要为非数字!

请选择所需要的服务!

(1-4)."

{

cin>

>

ch;

if(ch>

=1&

&

ch<

=4)break;

elsecout<

输入错误!

请选择:

(1-4)."

}

switch(ch)

{

case1:

Arrival(&

Enter,&

break;

/*车辆到达*/

case2:

Leave(&

Temp,&

case3:

List(Enter,Wait);

/*列表显示信息*/

case4:

exit(0);

/*退出主程序*/

default:

break;

}

}

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);

intArrival(SeqStackCar*Enter,LinkQueueCar*W)/*车辆到达*/

CarNode*p;

QueueNode*t;

p=(CarNode*)malloc(sizeof(CarNode));

flushall();

请输入车牌号(例:

A1234):

gets(p->

num);

if(Enter->

top<

MAX)/*车场未满,车进车场*/

Enter->

top++;

车辆在车场第"

Enter->

top<

位置!

请输入到达时间:

(小时:

分钟)"

cin>

p->

reach.hour;

while(p->

reach.hour<

0||p->

reach.hour>

23)//控制时间格式正确

请重输入到达时间的时(0-23)!

reach.min;

reach.min<

reach.min>

59)//控制分钟输入正确

请重输入到达时间的分(0-59)!

Enter->

stack[Enter->

top]=p;

else/*车场已满,车进便道*/

车场已满,请在便道等待!

t=(QueueNode*)malloc(sizeof(QueueNode));

t->

data=p;

W->

rear->

next=t;

rear=t;

voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W)/*车辆离开*/

introom;

QueueNode*q;

/*判断车场是否有车*/

top>

0)/*有车*/

while

(1)/*输入离开车辆的信息*/

cout<

请输入车在车场的位置1--"

:

;

cin>

room;

if(room>

room<

=Enter->

top)break;

while(Enter->

room)/*车辆离开*/

Temp->

/*临时通道栈顶指针*/

Temp->

stack[Temp->

top]=Enter->

top];

top--;

}

p=Enter->

while(Temp->

=1)/*判断临时通道上是否有车*/

Enter->

top]=Temp->

PRINT(p,room);

if((W->

=W->

rear)&

MAX)/*车站是未满*/

{/*便道的车辆进入车场*/

q=W->

next;

p=q->

data;

/*p指向链队头*/

便道的"

num<

号车进入车场第"

请输入现在的时间如(小时:

分钟):

cin>

if(p->

23)

{

}

59)

next=q->

if(q==W->

rear)W->

rear=W->

free(q);

/*释放q地址*/

便道里没有车!

/*便道没车*/

车场里没有车!

/*车场没车*/

voidPRINT(CarNode*p,introom)/*输出离开车辆的信息清单*/

intA1,A2,B1,B2;

请输入离开的时间:

leave.hour;

leave.hour<

leave.hour>

请重输入离开的时间的时(0-23)"

B1=p->

}

leave.min;

leave.min<

leave.min>

endl<

离开车辆的车牌号为:

puts(p->

其到达时间为:

"

离开时间为:

A1=p->

A2=p->

B1=p->

B2=p->

应交费用为:

(((B1-A1)*60+(B2-A2))+1440)%1440*price<

元!

free(p);

voidList1(SeqStackCar*S)/*列表显示车场信息*/

您选择的是车场停车情况!

if(S->

0)/*判断车站是否有车*/

位置到达时间车牌号"

for(i=1;

=S->

top;

S->

stack[i]->

voidList2(LinkQueueCar*W)/*列表显示便道信息*/

您选择的是便道停车情况!

intj=1;

QueueNode*p;

p=W->

if(W->

rear)/*判断通道上是否有车*/

等待车辆的车牌为:

while(p!

//cout<

j;

//puts(p->

data->

j<

p=p->

j++;

}//开始时显示不正确,没有按照正常输出

voidList(SeqStackCarS,LinkQueueCarW)/*列表界面*/

intflag,tag;

flag=1;

while(flag)/*列表显示循环控制*/

请选择您要显示信息!

(1-3):

※--1.车场--※"

※--2.便道--※"

※--3.返回--※"

tag;

if(tag>

=1||tag<

=3)break;

请选择(1-3):

switch(tag)

List1(&

S);

/*列表显示车场信息*/

List2(&

W);

/*列表显示便道信息*/

flag=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1