文档详情

停车场管理系统的设计与实现数据结构课程设计 .pdf

发布:2025-04-17约1.83万字共39页下载文档
文本预览下载声明

《数据结构》课程设计

题目:停车场管理系统

班级:网络工程

姓名:***

学号:E********

完成日期:2015年11月15日

1/39

一.需求分析

1.停在便道;

2.停在车库;

3.从车库移到便道;

4.从便道移到车库;

5.从车库取车;

6.从便道取车;

综上所述可知,总共有4种停车方式。

1.若一直停在便道中,需要在进入便道时以浮点数输入进入时间,

当选择6取车时,需要输入在便道中停车的时间。在便道中提车

时会显示进入的时间,以及是否需要发票,在计算完停车费用后

退出主菜单。

2/39

2.若一直停在车库中,会在进入时检测车库是否满,若不满,允许

进入,同样提示输入到达时间,当选择5取车时,需要输入在车

库停车时间。提车时,会显示进入的时间,以及是否需要发票,

在计算完停车费用后退到主菜单。

3/39

3.若先在车库停车后又转到便道停车,则会先检测车库是否满了,

这是这个情况满足的最大前提,之后需要输入到达车库时间,其

实这也没什么用,因为最后计算费用时,只会加上转移位置的20

元费用和在便道停的费用。在提车时会显示有在本停车场转移位

置的信息。

4/39

5/39

4.若先在便道上停车,后又到车库停,原理同3,在此不再赘述。

6/39

二.概要设计

1.由于栈的特殊出栈入栈顺序,所以所有进入车库的车辆必

须遵守“先进后出”的顺序来停车和提车,由于栈是顺序结

构,所以在进入车库时需要检测车库是否饱和,在提车时也

需要检测车库是否为空;

2.同时,队列需要满足“先进先出”的思想,但此次试验用

的链式结构,一般来说,不存在饱和情况,但在提车时候需

要检测便道是否有车。

3.栈的数据域存放进入车库的时间,车牌,队列节点数据域

存放进入便道的时间车牌,设置标记是否在停车场内更改停

车位置,有更改则置为1,否则为0。

4.如果一辆车车库移到便道,除了更换进入便道的时间外,

车牌号从链表的数据里得到,从便道移到车库也类似。另

外,更改位置前停放费用不计入最后的费用。

5.除了要输入进入时间,在更换停车位置时需要输入进入时

间,在最后提车时需要输入离开时间,方便计算总费用。

三.详细设计

1.主函数设置两个选择:最外层的选择显示是用户自己选择

停车还是系统选择停车位置,最里层的选择为主菜单。

2.进入车库(入栈)

();

:进入车库时间

;车牌号

7/39

:显示是否更改过停车位置

3.离开车库(出栈)

();

将后面三个形参设置为引用调用是为了得到数据域里的数

据,供主函数使用

4.进入便道

();

5.离开便道

();

将后面三个形参设置为引用调用是为了得到数据域里的数

据,供主函数使用。(其实在主函数传地址给调用函数也可

以,但是不知道为什么没有试验成功。)

6.()和()都是显示菜单函数

7.

8.();

函数是计算费用函数,是在最近一个停车位置的停车时

间,在主函数已经由离开时间减去进入时间计算好,为标

志位,为1,需要多支付20元的管理费用,是需要发票

的标志,需要为1,则最后费用为原有费用的基础上增

加%15,同时用一个浮点型的返回值返回给主函数使用,

同时主函数用%.2f来控制最后只显示小数点最后两位。

四.源程序

8/39

/*

2015年11月15日21:21:37

本次试验主要熟悉栈和队列的存储方式,同时结合顺序表和

链表知识

具体试验要求见代码底部

*/

#

#

#

#

车库

{

;到达在车库时间

;

显示全部
相似文档