- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
停车场原理
停车场管理系统
一、简介
1.设计目的
1.设计目的
理解线性表的逻辑结构存储结构,进一步提高使用理论知识指导解决实际问题的能力。
2.问题描述
设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序。
数据结构的设计:
有问题描述可以了解此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,所以就需要设计两个堆栈,其中一个堆栈用来模拟停车场,另一个堆栈用来模拟便道,临时停车场用来存该放当有车辆离开时,原来停车场内为其让路的车辆。至于当停车场已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点而已。对于要对停车场内的车辆根据其停放时间收取相应的停车费用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘以相应的单价并且打印出最后的费用就可以实现了。
三、功能(函数)设计:
本程序从总体上分为四个功能模块,分别为:
汽车进入停车位的管理模块
汽车离开停车位的管理模块
查看停车场状态的查询模块
又分别调用了显示停车场上车辆信息的函数以及显示便上车辆信息的函数
(4)退出程序模块
5.界面设计
打开后即进入停车场管理系统,并伴随欢迎界面。
6.程序设计
函数介绍
int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*车辆到达*/
7.运行与测试
(1)连续有7辆汽车到来,牌照号分别为CF001、CF002、CF003、CF004、CF005、CF006、CF007,前5辆车应该进入停车位1-5车位,第6、7辆车应停入便道的1、2位置上。
(2)上面(1)中的情况发生后,让牌照CF003的汽车从停车场开走,应显示CF005、CF004的让路动作和CF006从便道到停车位的动作。
(3)随时检查停车位和便道的状态,不应该出现有空位而便道上还有车的情况。
(4)其它正常操作的一般情况。
8.设计完成后的思考
1、编程时要认真,出现的错误要及时找出,并分析改正。解决问题时要善于查阅相关资料,调试并分析程序。另外,要注意符号的使用。
2、通过此次课程设计我学到了好多的知识,当然以前会的知识变得更加深刻。不太清楚地知识点也有了新的理解。
9.源程序代码
#includeiostream.h
#includestdio.h
#includestdlib.h
#includestring.h
#define MAX 5 /*车库容量,可以根据实际情况改变*/
#define price 0.01 /*一辆车每分钟费用,可变*/
typedef struct time
{
int hour;
int min;
}Time; /*时间结点*/
typedef struct node
{
char num[10];
Time reach;
Time leave;
}CarNode; /*车辆信息结点*/
typedef struct NODE
{
CarNode *stack[MAX+1];
int top;
}SeqStackCar; /*模拟停车场*/
typedef struct car
{
CarNode *data;
struct car *next;
}QueueNode;
typedef struct Node
{
QueueNode *head;
QueueNode *rear;
}LinkQueueCar; /*模拟便道*/
/*方法声明*/
void InitStack(SeqStackCar *); /*初始化栈*/
int InitQueue(LinkQueueCar *); /*初始化便
文档评论(0)