停车场管理系统(二)

第四章 算法详细设计

 

4.1 程序描述

使用栈和队列来模拟现实生活中的停车场管理是有缺陷的,因为现实中的停车场管理面对的车辆并不是有序的离开或者进入的,既不遵循先进后出的原则也不遵循先进先出的原则。

所以本停车场管理系统在对数据进行处理的时候并没有将数据进行出栈或者出队的处理,而是在车辆离开的时候将数据初始化,被初始化的数据空位则有下一个车辆进入时自动更新,用这样的方式实现车辆信息的联动与更新。

同时为了更加贴近实际,特别添加了便道和停车场两个相对独立的部分的自由联通,车辆可以自由的在两部分进行停靠,数据会及时更新。

 

4.2 功能

   1.数据流程图:

《停车场管理系统(二)》

    2.可以把各个模块分解为输入,处理,输出三个功能模块,得到总体IPO图:

《停车场管理系统(二)》

 

   3.绘制低层主要模块的IPO图,作为程序模块结构设计的依据(图中涉及的特定名词可在3.2.1逻辑结构设计中找到):

   《停车场管理系统(二)》《停车场管理系统(二)》

《停车场管理系统(二)》《停车场管理系统(二)》

4.3 算法

 

4.3.1 停车场车辆管理算法

1、停车场的车辆管理采用了栈的数据结构对车辆的信息进行处理和存储。该数据结构采用的是顺序存储,通过对栈内数据的遍历查找到相应的信息位置进行数据更新,从而达到将车辆信息修改和存储的目的,实现对停车场车辆的模拟管理。

2、对栈内数据进行遍历查找到的时候,为了确保查询的信息位置不出错,使用了自增的标记符号,在完成一个信息表单的循环之后,标志会重置。

3、由于采用的是自增的区别标志,每次数据遍历的时候可以通过标志的值的不同来区分栈内数据代表的信息含义。

4、用户通过输入车牌号,由系统判断其的有效性和重复性(车牌号无效时会自动退出,车牌号重复时系统会提示无法登记,会在将当前停车场内的车辆信息打印出来之后退出),如果车牌号不为0即为有效,如果停车场内不存在该车牌号即为不重复,这个时候系统才会将该车牌号的车辆登记,在停车场内为其分配车位,并相应的更新停车场内的车辆信息。

5、在用户输入要离开停车场的车辆的车牌号的时候,首先由系统判断停车场内是否存在该车牌号的车辆,如果存在栈内的数据不会进行出栈处理,系统会将该停车位上的车辆信息全部初始化(即:

车牌号:空

停车位:location

到达:否

到达时间:空

离开:否

离开时间:空

停车费用:0元

停车位是否为空:是)。

随后系统会询问用户是否将离开的车辆驶入便道(1代表是,0代表否),选择是系统将会把当前车辆登记进入停车场,自动分配空位,并更新停车场的车辆信息。反之,则会提示用户是否继续将停车场的车辆离开。

6、车辆在进站登记的时候,系统会自动优先分配车辆信息被全部初始化的停车空位。因为在车辆登记的时候,系统会首先判断停车场内是否存在被完全初始化

的停车位置,如果存在则将该车辆的信息更新到被初始化的停车位上,然后返回主菜单。

    原文作者:停车场模拟问题
    原文地址: https://blog.csdn.net/jianyuling199/article/details/17175507
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞