没有合适的资源?快使用搜索试试~ 我知道了~
数据结构-3期(KC002) 万达停车场管理系统设计.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 110 浏览量
2022-07-14
02:02:42
上传
评论
收藏 326KB DOCX 举报
温馨提示
试读
20页
数据结构-3期(KC002) 万达停车场管理系统设计.docx 学习资料 复习资料 教学资源
资源推荐
资源详情
资源评论
万达停车场管理系统设计
一、项目描述
某公司有一个地下停车场,此停车场是一条可以停放 n 辆汽车的狭长通道,且只有一个
大门可以供车辆进出,如图 11-6 所示。车辆按到达停车场时间的早晚依次从停车场最里向
大门口处停放(最先到达的第一辆车放在停车场的最里面)。停车场内如果有某辆车要开走,
在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依
原来的次序进场。如果停车场满,则后来的车只能在停车场大门外的便道上等待。每辆车在
离开停车场时,都应根据它在停车场内停留的时间长短收费。如果停留在便道上的车未进停
车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。此案例
利用数据结构的相关知识,采用 C 语言实现新生报到注册系统设计。为了达到较好的教学效
果,部分功能简化,知识易理解,算法易实现。源程序见数字化资源。
图 11-6 停车场示意图
二、项目需求分析
本系统实现的功能及其具体描述如下。
(1)以栈 S 作为停车场,栈 S1 作为让路的临时停车点,队列 Q 作为车等待时用的便道。
stack[Max+1]作为车场能够容纳的车辆数,num[10]作为车所在位置的编号,并且限定车场
最多能够容纳 10 辆车。
(2)用户根据系统所规定并提示的要求输入有关内容,车场所能容纳的车辆数由收费
人员来确定,车辆离开时,车主还可以得到收据,便于收费的管理使用;并且系统程序所提
供的一些信息可通过特殊硬件显示出来,供车主了解信息,准确有效的停车。
(3)程序应该能够显示当前存车信息以及等待车的信息,便于管理人员对车辆进行管
理,并且能够给等待的车提供一些信息,便于他们能够及时的停车。
(4)程序执行的命令为:输入进站信息->输入出站信息->打印收据。
系统具体功能模块图如图 11-7 所示,流程图分为车辆到达如图 11-8 所示、车辆离开如
图 11-9 所示和存车信息如图 11-10 所示。
车位
车位
车位
车位
便道
图 11-7 系统功能模块图
图 11-8 车辆到达流程图
图 11-9 车辆离开流程图
图 11-10 存车信息流程图
三、项目知识目标
该案例设计过程中涉及 C 语言程序设计课程相关知识点,并涉及数据结构课程相关知识
点,各个知识点的具体应用如下。
(1)掌握栈和队列的存储结构,栈和队列的存储结构包括顺序结构和链式结构,考虑
到功能易于实现,该案例中栈以顺序结构实现,队列以链表结构实现。
(2)掌握结构体定义方法,该案例应用到结构体的知识,时间信息结构体成员包括时、
分,车辆信息结构体成员包括车牌号、到达时间、离开时间。
四、项目核心算法及实现
(1)车辆进站功能实现,停车场可以设置车位个数,不能超过 10 个。车辆进站时输入
车牌号,如果车位未满,进入停车位,开始计时,如果车位已满,进入等待区。案例演示如
图 11-11 和图 11-12 所示。
int Arrival(SeqStackCar *Enter,LinkQueueCar *W,int n) //车辆到达
{
CarNode *p;
QueueNode *t;
int a,b;
p=(CarNode *)malloc(sizeof(CarNode));
flushall();
printf("\n 请输入车牌号(七位,例:陕 A12345):\n");
printf("请严格按照要求输入车牌号,否则系统会出错!\n");
do{
a=strlen("陕 A12345");
b=strlen(gets(p->num));
fflush(stdin);
源程序:万达停车场
管理系统
if(a!=b)
{
printf("输入车牌号格式错误,请重新输入(七位)!\n");
gets(p->num);
fflush(stdin);
}
else break;
if(a!=b) printf("输入车牌号格式错误,请重新输入(七位)!\n");
}while(a!=b);
if(Enter->top<n) //车场未满,车进车场
{
Enter->top++;
printf("\n 车辆在车场第%d 位置.",Enter->top);
fflush(stdin);
printf("\n 请输入到达时间:/**:**/");
scanf("%d:%d",&(p->reach.hour),&(p->reach.min));
fflush(stdin);
do{
if(p->reach.hour<0||p->reach.hour>=24||p->reach.min<0||
p->reach.min>=60)
{
printf("输入的时间格式有错,请重新输入!");
scanf("%d:%d",&(p->reach.hour),&(p->reach.min));
fflush(stdin);
}
else break;
}while(p->reach.hour<0||p->reach.hour>=24||p->reach.min<0||
p->reach.min>=60);
Enter->stack[Enter->top]=p;
return(1);
}
else //车场已满,车进便道
{
printf("\n 请该车在便道稍作等待!\n");
剩余19页未读,继续阅读
资源评论
努力搬砖的小王
- 粉丝: 16
- 资源: 7706
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功