停车场管理 数据结构与处理课程设计

上传人:第*** 文档编号:57337081 上传时间:2018-10-21 格式:DOC 页数:30 大小:462KB
返回 下载 相关 举报
停车场管理 数据结构与处理课程设计_第1页
第1页 / 共30页
停车场管理 数据结构与处理课程设计_第2页
第2页 / 共30页
停车场管理 数据结构与处理课程设计_第3页
第3页 / 共30页
停车场管理 数据结构与处理课程设计_第4页
第4页 / 共30页
停车场管理 数据结构与处理课程设计_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《停车场管理 数据结构与处理课程设计》由会员分享,可在线阅读,更多相关《停车场管理 数据结构与处理课程设计(30页珍藏版)》请在金锄头文库上搜索。

1、课程设计(论文)任务书信息工程信息工程 学 院 14 通信通信 专 业 1 班一、课程设计(论文)题目 超市停车场管理模拟超市停车场管理模拟 二、课程设计(论文)工作自 2015 年 12 月 28 日起至 2016 年 1 月 3 日止。三、课程设计(论文) 地点: 信息机房 205 四、课程设计(论文)内容要求:1本课程设计的目的本课程设计的目的(1)熟练掌握 C 语言的基本知识和技能; (2)掌握队列和栈的顺序存储结构和链式存储结构,以便实际背景下灵活运用;(3)掌握栈和队列的特点,即先进后出和先进先出的原则;(4)掌握栈和队列的基本运算,如入栈与出栈、入队与出队等运算在顺序存储结 构和

2、链式存储结构上的实现;(5)培养分析、解决问题的能力;提高学生的科技论文写作能力。 2课程设计的任务及要求课程设计的任务及要求1)基本要求:)基本要求:(1)问题描述: 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出.汽车在 停车场内按照车辆到达时间的先后顺序,一次由南向北排列(大门在最南端,最先到达的 第一辆汽车停放在车场的最北端), 若车场内已停满 n 辆汽车,则后来的汽车只能在门外 的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内的某辆车 要开走时,在它之后进入的车辆必须退出车场为它让路,待该辆车开出大门外,其他车辆再 按照原次序进入车场,每

3、辆车停放在车场的车在它离开停车场时必须按照它停留的时间 长短交纳费用.实为停车场编制按照上述要求进行管理的模拟程序;(2)用一个队列,两个栈实现程序.其中, 一个栈(Park)表示停车场. 一个栈(Tmp)表示当停车场中的一辆车要出去时,它后面的车所进的道. 一个队列(Wait)表示停车场满后来的车所进的道.(3)要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车 场时应交纳的费用和它在停车场内停留的时间;2)创新要求:)创新要求: 提高算法效率,降低时间复杂度和空间复杂度3)课程设计论文编写要求)课程设计论文编写要求(1)要按照课程设计模板的规格书写课程设计论文(2)论

4、文包括目录、正文、心得体会、参考文献等(3)课程设计论文用 A4 纸统一打印,装订按学校的统一要求完成4)答辩与评分标准:)答辩与评分标准: (1)完成原理分析:20 分; (2)完成设计过程:40 分; (3)完成调试:20 分;(4)回答问题:20 分。5)参考文献:)参考文献:(1)严蔚敏,吴伟民.数据结构. 北京:清华大学出版社,2007. (2)严蔚敏、吴伟民、米宁.数据结构题集. 北京:清华大学出版社,2007.(3)谭浩强. C 程序设计(第 4 版) 北京:清华大学出版社,2010.(4)何钦铭、冯雁、陈越.数据结构课程设计. 杭州:浙江大学出版社,20076)课程设计进度安排

5、)课程设计进度安排内容内容 天数天数 地点地点构思及收集资料 2 图书馆编程设计与调试 5 实验室撰写论文 3 图书馆、实验室学生签名: 2015 年 12 月 28 日课程设计课程设计( (论文论文) )评审意见评审意见(1)完成原理分析(20 分):优( )、良( )、中( )、一般( )、差( ); (2)设计分析 (20 分):优( )、良( )、中( )、一般( )、差( ); (3)完成调试 (20 分):优( )、良( )、中( )、一般( )、差( );(4)翻译能力 (20 分):优( )、良( )、中( )、一般( )、差( );(5)回答问题 (20 分):优( )、良(

6、 )、中( )、一般( )、差( );(6)格式规范性及考勤是否降等级:是( )、否( )评阅人: 职称: 副教授 2016 年 1 月 3 日目目 录录一、一、问题描述问题描述.5二、二、内容简介内容简介.62.1 基本要求:基本要求:.62.2. 算法思想:算法思想:72.3. 数据结构:数据结构:8-92.4. 源程序:源程序:.10-192.5. 测试情况:测试情况:.20-28三、小结三、小结. 29四、参考文献四、参考文献.30一一. .问问题题描描述述停车场管理。设有一个可以停放 n 辆汽车的狭长停车场(先进后出),它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后依次从停

7、车场最里面向大门口处停放(最先到达的第一辆车停放在停车场的最里面)。如果停车场已放满 n 辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车离开,则排在便道上的第一辆车就可以进入停车场。停车场内如有某辆车要离开,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车再按原来的次序进停车场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车没进停车场就要离开,允许其离开,不收停车费,并且仍然保持在便道上的车辆次序。试编程模拟停车场管理。每一组数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码、以及到达或离去的时刻。对每

8、一组数据进行操作后的信息为:若是车辆到达,则输出汽车在 ,否则,输出不在。用一个队列,两个栈实现程序.其中:一个栈(Park)表示停车场。一个栈(T m p)表示当停车场中的一辆车要出去时,它后面的车所进的道。一个队列(Wait)表示停车场满后来的车所进的道。二二.内内容容简简介介2.1 基本要求:1.界面简洁,功能全,函数功能划分清楚;2.程序需添加必要注释;3.有完整的程序测试图;4.对程序运行使用进行必要说明;2.2. 算算法法思思想想:由于停车场是一个狭窄通道,而且只有一个大门可供汽车进出,问题要求汽车停车场内按车辆到达时间的先后顺序,依次由北向南排列。由此很容易联想到数据结构中的堆栈

9、模型,因此可首先设计一个堆栈,以堆栈来模拟停车场,我设计用顺序存储结构来存储停车场内的车辆信息,并给车辆按进栈顺序编号,当停车场内某辆车要离开时,在他之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场。这是个一退一进的过程,而且让道的汽车必须保持原有的先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车。当停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若停车场有汽车开走,则按排队的先后顺序依次进站,最先进入便道的汽车将会最先进入停车场,这完全是一个先进先出模型,因此可设计一个队列来模拟便道,队列中的数据元素设计成汽车的车牌号,

10、并以链表的形式存储。另外,停车场根据汽车在停车场内停放的总时长来收费的,在便道上的时间不计费,因此必须记录车辆进入停车场时的时间和车辆离开停车场时的时间,然后计算、显示费用情况。2.3. 数数据据结结构构:1.1.将车辆看成一个节点,设计一个结构体,限制停车场停放车上限,车牌号。并表示将车辆看成一个节点,设计一个结构体,限制停车场停放车上限,车牌号。并表示 便道车上。便道车上。constconst intint sizesize = = 5;5; /停车场停放车上限停车场停放车上限intint enterTop;enterTop;intint tmpTop;tmpTop; structstru

11、ct shortcutLinkedshortcutLinked /便道停车便道停车 charchar carNumber10;carNumber10; /车牌号车牌号shortcutLinkedshortcutLinked *next;*next;2.2. voidvoid InitStack(SeqStackCarInitStack(SeqStackCar *);*); /车辆节点进栈车辆节点进栈当栈未满时,就把到达的车辆进栈。当栈未满时,就把到达的车辆进栈。3.3. intint InitQueue(LinkQueueCarInitQueue(LinkQueueCar *);*); /车辆

12、节点进队列车辆节点进队列当栈满了时,车辆就进入便道上的队列中当栈满了时,车辆就进入便道上的队列中4.4. intint Arrival(SeqStackCarArrival(SeqStackCar *,LinkQueueCar*,LinkQueueCar *);*); /车辆到达登记车辆到达登记车辆到达时,先登记车辆车牌号码。然后再判断停车场有没有停满,没停满就进栈,车辆到达时,先登记车辆车牌号码。然后再判断停车场有没有停满,没停满就进栈, 停满了就停在便道上,即进队列。停满了就停在便道上,即进队列。5.5. voidvoid Leave(SeqStackCarLeave(SeqStackCa

13、r *,SeqStackCar*,SeqStackCar *,LinkQueueCar*,LinkQueueCar *);*); /车辆离开处理车辆离开处理 通过输入离开车辆的位置处理,然后调用通过输入离开车辆的位置处理,然后调用 PRINT(CarNodePRINT(CarNode *p,int*p,int room);room);函数进行收费。函数进行收费。 。然后再判断便道上有没有车,如果有,就把便道上的车进停车场内。然后再判断便道上有没有车,如果有,就把便道上的车进停车场内。6.6. voidvoid List(SeqStackCar,LinkQueueCar);List(SeqSta

14、ckCar,LinkQueueCar); /显示车场内和便道上的车辆情况显示车场内和便道上的车辆情况 用用 个个 switch();switch();函数选择显示车场内或是便道上的车辆情况。函数选择显示车场内或是便道上的车辆情况。包括对下面两个子函数的调用包括对下面两个子函数的调用: : voidvoid List1(SeqStackCarList1(SeqStackCar *S);*S);voidvoid List2(LinkQueueCarList2(LinkQueueCar *W);*W); /分别为显示车场分别为显示车场和便道上的车辆情况和便道上的车辆情况7.7. voidvoid P

15、RINT(CarNodePRINT(CarNode *p,int*p,int room);room); / 车辆离开是的收费车辆离开是的收费8.8.车辆到达:车辆到达:intint Arrival(SeqStackCarArrival(SeqStackCar *Enter,LinkQueueCar*Enter,LinkQueueCar *W)*W) 首先定义一个栈和队列的结构体指针为:首先定义一个栈和队列的结构体指针为:*p*p , , *t*t 。 然后申请一个车辆信息的内存然后申请一个车辆信息的内存 空间,并把它赋给栈指针。空间,并把它赋给栈指针。车辆到达时就输入车牌号,并通过车辆到达时就输入车牌号,并通过 if(Enter-toptoptop0)if(Enter-top0) 确保栈不空,然后用个确保栈不空,然后用个 while(1)while(1) 确保输入的车辆离开位置确保输入的车辆离开位置 的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号