课程设计---停车场管理

课程设计---停车场管理

ID:11996730

大小:196.50 KB

页数:15页

时间:2018-07-15

课程设计---停车场管理_第1页
课程设计---停车场管理_第2页
课程设计---停车场管理_第3页
课程设计---停车场管理_第4页
课程设计---停车场管理_第5页
资源描述:

《课程设计---停车场管理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《数据结构》课程设计报告设计题目停车场管理系统专业XXXX班级姓名XXX学号XXXXXX完成日期XXXXXXX共15页第14页目录1.问题描述………………………………………………22.系统设计………………………………………………2-33.数据结构与算法描述…………………………………3-44.测试结果与分析………………………………………4-75.总结…………………………………………………7-86.参考文献………………………………………………8附录程序源代码…………………………………………8-14共15页第14页停车场管理系统1.问题描述设有一个可以

2、停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,(判断其是否为第n辆车,进而判断是否需要让路)在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。(此时可以另设一个辅助栈,将编号大于要离开车的编号的车按退出次序入栈,待车开走后,再将辅助栈中的车依次

3、出栈并进入停车场栈中)每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。(可以按每时刻价格缴费)如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。(在便道上的车要离开时,同样将其前面的车即编号小于它的车依次入辅助队列,待车开走后,再将辅助队列中的车依次出队并进入便道队列中)以下编制的程序为模拟该停车场的管理。2.系统设计2.1设计目标根据问题的描述,来设计一个停车场管理系统的程序。共15页第14页程序功能:输出每辆车到达后的停车位置,以及某辆车离开停车场时应交纳的费用和它在停车场内停

4、留的时间。如果不需交费,允许其离开,这时可不输出上述信息,提示其可以离开,不需交费即可。2.2设计思想类似于现实生活中的管理系统,程序运行时会显示主菜单,根据用户的选择显示不同的信息,提示用户作相应的操作。从看到该程序的要求及提示,知道本程序要用到栈和队列,这是主线,再根据编程时的具体要求,在加入其他的知识。具体参见以下数据结构及算法描述。2.3系统模块划分(要给出流程图)表2-3停车信息表列名数据类型长度可否为空停车位置标志integer1Notnull车编号intNotnull车到达时刻clock_tNotnull车离开时刻clock_tNo

5、tnull应交纳费用doubleNull备注车到达、离开时刻均为clock_t的对象,要调用其函数clock()3.数据结构与算法描述根据问题描述及实现提示,知道该程序主要用到数据结构中栈和队列的知识。这是主线,在编程的时候,首先用一个栈CarStack表示停车场,而便道则用队列RoadQueue表示。根据程序的要求,当有车从停车场中离开时,首先需要判断该车是否为停车场最后一辆车,然后根据结果判断是否需要其他车为其让路。显然在让路的时候,需要增加一个辅助栈Sf.同样便道上的车离开时,根据结果,确定是否需要增加辅助队列Qf.共15页第14页另外,由

6、于在车离开时要判断是否交费,所以需要存储每辆车的信息,我在程序中又加入了顺序表SqList.并将其元素类型elemtype定义为结构体类型,以便包含多个数据项。该停车场是按照车辆的停留时间进行收费的,所以我调用C++系统函数clock(),通过到达和离开时间差值来计算所需收取的费用。进入系统主菜单使用说明退出离开交费需要停车程序自动生成到达车编号bh产生到达时刻t1=clock()标志位flag输入离开车的编号ph调用系统时间t2=clock()交费total_money图3-1 总体结构设计框图4.测试结果与分析(可将测试过程抓图说明)在编写程

7、序时,出现了很多问题,有些都是基本问题。例如:在让程序自动生成车编号的时候,我将编号bh的初值放在了循环里,结果每进一辆车的编号都是0。另外,在程序进行测试时,我将停车场的存储量设为1,发现当停车场满时,并不提示用户,“共15页第14页停车场已满,需要停在便道上!”最后发现需要将栈、队列和顺序表的初始化操作定义在循环外。这是因为每进行一个循环就会重新初始化一次。以上都是小问题,经过自己的检查能够修改正确。而下面的问题,不知道怎么解决,不能输出离开信息。对于上述问题,不知怎么修改,我就将程序给同学看,在她的帮助下,将这个问题解决了。在便道上的车进入

8、辅助队列时,当车编号小于队列中剩余节点的编号时,while循环条件出错了。就是如下述代码(彩色部分):else{cout<<"您的车未进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。