- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
万达停车场管理系统设计
一、项目描述
某公司有一个地下停车场,此停车场是一条可以停放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-topn) //车场未满,车进车场
{
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.hour0||p-reach.hour=24||p-reach.min0|| p-reach.min=60)
{
printf(输入的时间格式有错,请重新输入!);
scanf(%d:%d,(p-reach.hour),(p-reach.min));
fflush
您可能关注的文档
- 数据结构与算法设计教案05-06-2数据结构教案首页(40541P、40543D、40531P).doc
- 数据结构-资源试题库及解析《数据结构》期末考试试卷A卷-简答题1-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷A卷-简答题3-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷A卷-简答题4-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷A卷-简答题5-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷A卷-简答题6-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷A卷-简答题7-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷A卷-简答题8-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷B卷-简答题1-配套说课稿.docx
- 数据结构-资源试题库及解析《数据结构》期末考试试卷B卷-简答题2-配套说课稿.docx
文档评论(0)