您的位置: 主页 > 资讯中心 > 公司动态 >

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

发布日期: 2020-11-12 03:01

  停车场管理系统的设计与实现数据结构课程设计_计算机软件及应用_IT/计算机_专业资料。《数据结构》课程设计 题目:停车场管理系统 班级:网络工程 姓名:朱 学号:E31314037 完成日期:2015 年 11 月 15 日 1 / 39 一.需求分析 1.停在便道; 2.停在

  《数据结构》课程设计 题目:停车场管理系统 班级:网络工程 姓名:朱 学号:E31314037 完成日期: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 本次试验主要熟悉栈和队列的存储方式,同时结合顺序表和 链表知识 具体试验要求见代码底部 */ # # # # 车库 { ; 到达在车库时间 ; 汽车牌照 ; 标记位置,在车库为 1,在便道为 0 }; 1 { ; 便道 到达便道上的时间,以小时为单位(下同) 9 / 39 ; ; 1*; }1; 汽车牌照 顺序栈 { *; 栈顶指针 *; 栈底指针 }; 此次代码形参与实参之间是引用调用,故不需要传地址 链式队列 { 1 * ; 队头指针 1 * ; 队尾指针 }; ( z); 计算停车费用 ( ); 初始化车库的顺序栈! ( ); ( ); 10 / 39 ( ); ( ); ( ); ( ); ( ); (); (); ( ); 计费函数 () { ; 在停车场的时间 ; 到达便道上的时间,以小时为单位(下同) ; 离开便道世间 ; 到达在车库时间 ; 离开车库时间 ; 汽车牌照 ; 是否需要发票,需要为 1,不需要为 0 ((0)); ; ; ; 11 / 39 ; 1; 1; ; (); 初始化车库 ; (); 初始化便道 2; (); (2); (2 Q 2 q) { (2) { p: P: 1; (); (1); (1 0) { (1) 12 / 39 { 1: 服务!\n); (欢迎您到便道停车,我们将竭诚为您 (请输入到达时间:\n); (); (请输入车牌照(阿拉伯数字)); (); (,0); (恭喜!牌照为的车主在便道停车成功! ); ; 2: 务!\n); (欢迎您到车库停车,我们将竭诚为您服 (()) { (车道已经停满,请选择便道停车!); } { (请输入到达车库时间:\n); 13 / 39 (); (请输入车牌照(阿拉伯数字)); (); (,0); (恭喜!牌照为的车主在车库停车成功! ); } ; 3: (欢迎您更换到便道停车!\n); (()) { (车库里没有车,你的选择有误!); } { (); (您的爱车到达车库时间是\n); (您的爱车牌照是:\n); (请输入到达便道的时间:\n); (); (,1); 14 / 39 (恭喜!您的车辆已经移动到便道!); } ; 4: (欢迎您更换到车库停车!\n); () { (便道上没有车,您的选择有误!); } { (11)

咨询热线

400-690-123455