C++数据结构停车场管理C++数据结构停车场管理.docVIP

C++数据结构停车场管理C++数据结构停车场管理.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C数据结构停车场管理C数据结构停车场管理

数据结构实验报告 实验题目: 停车场管理 学生姓名: 班 级: 学 号: 问题描述 设有一个停车场,它是利用一个南北向的狭窄通道建成,北端封闭,大门在最南端。最先到达的汽车停放在最北端,后面到达的汽车从北至南依次顺序停放。停车场只能停放n辆汽车。当停车场停满n辆车后,后面到达的汽车只能在门外的便道上等候。一旦有汽车开走,便道上等候的第一辆车就可以开入停车场停放。当停车场内某辆汽车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该车开出大门外,其他汽车再按原次序返回车场。每辆停放在车场内的汽车在离开时必须按它停放时间的长短交纳费用。 例题分析 每到达一辆汽车,先检查停车场栈是否已满,若未满则该车进入停车场停放(入栈操作),并将该车的车号和停放时刻记录在停车场栈的相应元素中,同时显示该车在停车场内的停放位置。反之,若停车场已满,则该车排到便道上等候的汽车队列最后(入队列操作),并将该车的车号信息记录在汽车队列的相应结点内,同时显示该车在便道上的停放位置。 若要取一辆汽车,则需依次进行下述操作:将阻挡在它后面的汽车退出(停车场栈的出栈操作),并将这些汽车临时存放在另一个辅助栈中(辅助栈的入栈操作);开走要取的汽车(停车场栈的出栈操作),并显示该车应交纳的费用;依次从辅助栈中开出汽车(辅助栈出栈操作),开回停车场中(停车场栈的入栈操作);这时停车场已有一个空车位,便道上等候的第一辆汽车则可以开进停车场内停放(汽车队列的出队列操作和停车场栈的入栈操作)。 程序源代码 #includeiostream #includeconio.h #includeiomanip #includefstream #includestring #include stdlib.h #include windows.h using namespace std; #define Max_Size 2//停车的最大容量 #define HourFare 2 //每小时的停车费用 int CountForStack=0; //栈里现有的车数 int CountForQueue=0; //排队等候的车数 typedef struct { char Condition;//到达或者离开的状态 int Arrivetime;//到达时间,默认为-1,表示没有到达 int Leavetime;//离开时间,默认为-1,表示没有???开 int License;//车牌号 } CarNode;//保存每辆车的信息 typedef struct//栈的定义 { CarNode *base;//栈底指针 CarNode *top;//栈顶指针 int Stacksize;//栈的最大容量 } CarStack; typedef struct QNode { char Condition;//到达或者离开的状态 int Arrivetime;//到达时间,默认为-1,表示没有到达 int Leavetime;//离开时间,默认为-1,表示没有离开 int License;//车牌号 QNode *next; } QNode; typedef struct//队列的定义 { QNode *front;//对头指针 QNode * rear;//队尾指针 } Queue; bool InitStack(CarStack S1)//初始化栈 S1 { S1.base=(CarNode*)malloc(Max_Size*sizeof(CarNode)); if(!S1.base) { cout栈 S1 内存分配失败endl; return false; } S1.top=S1.base; S1.Stacksize=Max_Size; return true; } bool InitQueue(Queue Q) { Q.front=(QNode*)malloc(sizeof(QNode)); if(!Q.front) { cout队列 Q 内存分配失败!endl; return false; } Q.rear=Q.front; Q.front-next=NULL; return true; } bool EnQueue(Queue Q,QNode e)//插入元素 e 为 Q 的新的队尾元素 { QNode *p=(QNode *)malloc(sizeof(QNode)); if(!p) { coutp 内存分配失败endl; return fal

您可能关注的文档

文档评论(0)

zyongwxiaj8 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档