- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计
——停车场管理问题
姓名:
学号:
问题描述
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。
实现要求
要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。
实现提示
汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(‘A’,,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘E’,0,0)时结束。本题可用栈和队列来实现。
需求分析
停车场采用栈式结构,停车场外的便道采用队列结构(即便道就是等候队列)。停车场的管理流程如下
①当车辆要进入停车场时,检查停车场是否已满,如果未满则车辆进栈(车辆进入停车场);如果停车场已满,则车辆进入等候队列(车辆进入便道等候)。
②当车辆要求出栈时,该车到栈顶的那些车辆先弹出栈(在它之后进入的车辆必须先退出车场为它让路),再让该车出栈,其他车辆再按原次序进栈(进入车场)。当车辆出栈完毕后,检查等候队列(便道)中是否有车,有车则从队列头取出一辆车压入栈中。
流程图
详细设计
1.本程序主要包含四个模块
???? 1) 主程序模块
??? int main(){
?????? Initialization();
?????? CarNode car;
?????? SqStack Park,TempPark;
?????? LinkQueue Q;
?????? InitStack(Park);
?????? InitStack(TempPark);
?????? InitQueue(Q);
?????? while((scanf(%c%d%d,car.event,car.num,car.time))(car.event!=ecar.event!=E))
?????? {
????????????? getchar();??????????????????????????????????????? //除去输入结束时的回车
????????????? switch(car.event)
????????????? {
????????????? case A:
????????????? case a:Arrive(Park,Q,car);break;
????????????? case D:
????????????? case d:Leave(Park,TempPark,Q,car);break;
????????????? default: printf(您的第一个数据输入有误!\n);break;
????????????? }
?????? }
?????? printf(程序结束,谢谢使用!\n);
?????? return 0;
? 2)分别构造空栈和空队列
栈:Status InitStack(SqStack S){????? //构造一个空栈
?????? S.Stacksize=0;
?????? S.base=(CarNode*)malloc((MAX)*sizeof(CarNode));
?????? if(!S.base){
????????????? exit(OVERFLOW);
????????????? printf(存储空间分配失败);
?????? }
?????? S.top=S.base;
?????? return OK;
}
队列:Status InitQueue(LinkQueue Q){???????? //构造一个空队列(带头结点)
?????? ? Q.front=Q.rear=(QueueNode*)malloc(sizeof(QueueNode));
?
您可能关注的文档
- 无碳小车的转向机构设计及其仿真分析.doc
- 西方美学史课件.ppt
- 院学生会主席工作计划(共10篇).doc
- 审计(2017)第11章-生产与存货循环的审计-章节练习(后附答案).doc
- 基于8086的多路温度测控系统---微机原理课程设计.docx
- 关于大学生对化妆品调查总结报告.doc
- 2017苏教版第13课《水滴的旅行》幻灯片课件.ppt
- 2018生命至上安全发展征文6篇.docx
- 新视界大学英语综合教程第二册 课后汉译英答案.doc
- 青年志愿者协会规章制度.docx
- 高三生物一轮复习课件第8课时 酶和ATP.pptx
- 高三生物一轮复习课件 细胞中的元素和化合物,细胞中的无机物.pptx
- 2025年中考物理复习答题技巧与模板构建专题04热学必考的三个重点实验(解析版).docx
- 高三生物一轮复习课件:细胞核的结构和功能.pptx
- 高三生物一轮复习课件:光合作用的影响因素及其应用课件.pptx
- 高三生物一轮复习课件:细胞膜与细胞核.pptx
- 高三生物一轮复习课件蛋白质与核酸.pptx
- 高三一轮复习生物:细胞呼吸的原理和应用课件(1).pptx
- 高三生物一轮复习课件第8讲+酶和ATP.pptx
- 2.2基因在染色体上课件高一下学期生物人教版(2019)必修2 (2).pptx
最近下载
- 综合管廊机电施工方案(总包安装分).docx
- 精品解析:重庆市开州区2023-2024学年七年级下学期期末质量监测历史试题(原卷版).docx VIP
- 实验6二阶电路响应的仿真.pdf VIP
- 青岛版八年级数学下册知识点归纳总结.pdf VIP
- 老码头拆除方案.doc VIP
- 一阶rc电路的暂态响应实验报告.doc VIP
- 2025广东广州市教育系统招聘公办中小学体育教练员18人笔试模拟试题及答案解析.docx VIP
- 2023-2024学年安徽省合肥市高新区八年级(下)期末物理试卷+答案解析.pdf VIP
- 跨学科融合:博物馆地理研学课程设计方案.docx VIP
- 财务比率公式汇总.doc VIP
文档评论(0)