《停车场管理系统的设计与实现数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《停车场管理系统的设计与实现数据结构课程设计.docx(41页珍藏版)》请在课桌文档上搜索。
1、熬据信相裸程被计题目:停车场管理系统班级:网络工程姓名:朱锦涛学号:E31314037完成日期:2015年口月15日一.需求分析1.停在便道;2 .停在车库;3 .从车库移到便道;4 .从便道移到车库;5 .从车库取车;6 .从便道取车;综上所述可知,总共有4种停车方式。1 .若始终停在便道中,须要在进入便道时以浮点数输入进入时间,当选择6取车时,须要输入在便道中停车的时间。在便道中提车时会显示进入的时间,以及是否须要发票,在计算完停车费用后退出主菜单。ECt8*等3DebugSW.1.exe了迎理到便道停卒,我们将谒诚为无原务!育输入列达利血窗嬲3膘罐盛蹄制!F面是菜单,请继续选择或者按。退
2、出择道库选里行蜀至wis库is系-S1234S60车票统!的车要道“ws本便”的H盘骨前到.4mwi.1迎黑唱选好保谢面是菜单,请继续选择或者按。退出择矍选行issrt4iiHHS*.0-1=伫.i.,1.A从从退-S1234S60fj.2 .若始终停在车库中,会在进入时检测车库是否满,若不满,允许进入,同样提示输入到达时间,当选择5取车时,须要输入在车库停车时间。提车时,会显示进入的时间,以及是否须要发票,在计算完停车费用后退到主菜单。穴艘到丰度堤丰,我们将画诚为您服务!青敏到达军库时间,t*情税3源辘馨左群车财!F面是菜单,请继续选择或者按e退出!雨即统南-3系至使出皆到车:32施匕孚.,
3、sI主主您好,您的车到达车库时间是43MW:的自开时闻5.1发票1:装不需要发票,碌示不需要发票。BB元以使府本系统.祝您一路顾风!1单.请继续选择或者按。退出,s三s道库is系1墨S5SWH3 .若先在车库停车后又转到便道停车,则会先检测车库是否满了,这是这个状况满意的放大前提,之后须要输入到达车库时间,其实这也没什么用,因为散终计算费用时,只会加上转移位置的20元费用和在便道停的费用。在提车时会显示有在本件车场转移位置的信息。-E:CeMgDebugaeS.1.exe-S!1间必IB1.停时21时Ta库.的罐靠3到达照便甯牌达更HS迎的的箱4fNt,请继续选择或者按。退出:便道系到HH讲-
4、i统质董遇库is系三4si停.I=1MMnM./Z辆1234S602,伤Jt.J理.9要耀鼎s拿H1王有离票87!.e的发.M票统的场丰要H发补逼45,毒WS本便21sn甫到s8面是菜单,请继续选择或者按。退出!HHm*请输WIB来造行选择MHW1Si三2.fi3.从车库移到便道44便道核到丰库s.A%6鹏便道班至0.温出系线4.若先在便道上停车,后又到车库停,原理同3,在此不再赘述C夏1Bta-zf4568迎,更知到壬庠停至!的爱军到达也的时军是2-1的瞪车啤寞是:4321辐入狗送车库的时间I=!喇军辆已经移动到车库!下面是菜单.请继续选择或S按。退出,择道库选傕行is41H进壹蓊8J.1r
5、tHi便出01.=-kJ2,1234560atQ7aBIQ二个5兀时乐-J-率8达惠盘器w,信衍好撵日!王有高亮物!4-击矍.221毒1本43s1思你用-到.Sn叼辅选好保谢,潘继续选抒或者按。退出,-选1.1TH道库道系6港车出UM111234-560is二.概要设计1 .由于栈的特殊出栈入栈依次,所以全部进入车库的车辆必需遵守“先进后出”的依次来停车和提车,由于栈是依次结构,所以在进入车库时须要检测车库是否饱和,在提车时也须要检测车库是否为空;2 .同时,队列须要满意“先进先出”的思想,但此次试脸用的链式结构,一般来说,不存在饱和状况,但在提车时候须要检测便道是否有车。3 .栈的数据域存放
6、进入车库的时间,车牌,队列节点数据域存放进入便道的时间车牌,设置标记是否在停车场内更改停车位置,有更改则置为1,否则为0。4 .假如一辆车车库移到便道,除了更换进入便道的时间外,车牌号从链表的数据里得到,从便道移到车库也类似。另夕卜,更改位置前停放费用不计入最终的费用。5 .除了要输入进入时间,在更换停车位置时须要揄入进入时间,在最终提车时须要输入离开时间,便利计算总费用。三.具体设计1 .主函数设置两个选择:最外层的选择显示是用户自己选择停车还是系统选择停车位置,最里层的选择为主菜单。2 .进入车库(入栈)();:进入车库时间;车牌号:显示是否更改过停车位置3 .离开车库(出栈)();将后面
7、三个形参设置为引用调用是为了得到数据域里的数据,供主函数运用4 .进入便道();5 .离开便道();将后面三个形参设置为引用调用是为了得到数据域里的数据,供主函数运用。(其实在主函数传地址给调用函数也可以,但是不知道为什么没有试脸胜利。)6 .()和。都是显示菜单函数7 .8 .();函数是计算费用函数,是在最近一个停车位置的停车时间,在主函数已经由离开时间减去进入时间计算好,为标记位,为1,须要多支付20元的管理费用,是须要发票的标记,须要为1,则最终费用为原有费用的基础上增加$15,同时用一个浮点型的返回值返回给主函数运用,同时主函数用%.2f来限制最终只显示小数点最终两位。四.源程序*2
8、015年11月15日21:21:37本次试脸主要熟识栈和队列的存储方式,同时结合依次表和链表学问具体试脸要求见代码底部*/# O# O# O# OO车库(;到达在车库时间;汽车牌照;标记位置,在车库为1,在便道为01;1便道到达便道上的时间,以小时为单位(下同)汽车牌照1*;H;依次栈*;栈顶指针*;栈底指针);此次代码形参加实参之间是引用调用,故不须要传地址链式队列(1*;队头指针1*;队尾指针(三);计算停车费用();初始化车库的依次栈!();();();();O;();();O;O;();计费函数0;在停车场的时间;到达便道上的时间,以小时为单位(下同);离开便道世间;到达在车库时间;离
9、开车库时间;汽车牌照;是否须要发票,须要为1,不须要为0(0);1;1;,0;初始化车库90;初始化便道2;0;(2);(2,Q,2,q)(2)(P:P:1;0;(1);(10)(欢迎您到便道停车,我们将竭诚为您服务!n);(请输入到达时间:n);(请输入车牌照(阿拉伯数字);(,0);(恭喜!牌照为的车主在便道停车胜利!92 :(欢迎您到车库停车,我们将竭诚为您服务!n);(O)(车道已经停满,请选择便道停车!);(请输入到达车库时间:n);(,);(请输入车牌照(阿拉伯数字);CO);(恭喜!牌照为的车主在车库停车胜利!3 :(欢迎您更换到便道停车!n);(0)(车库里没有车,你的选择有误
10、!);0;(您的爱车到达车库时间是n);(您的爱车牌照是:n);(请榆入到达便道的时间:n);(*,);GD;(恭喜!您的车辆已经移动到便道!);(欢迎您更换到车库停车!n);()(便道上没有车,您的选择有误!);(11);(您的爱车到达便道时间是n);(您的爱车牌照是:n1);(请输入到达车库的时间:n);(1,1);(恭喜!您的车辆已经移动到车库!);(欢迎您到车库取车!n);(O)(车库里没有车,你的选择有误!);0;(牌照是:的车主您好,您的车到达车库时间是n);(D(您的车在停车场中有更换停放位置!n);(请输入您的爱车的离开时间:);=-;(请选择是否须要发票1:表示须要发票,0表
11、示不须要发票);(1)(您好,请缴费外.2f元n(,1);(请保管好您的发票!n);(感谢您运用本系统,祝您一路顺风!n);(您好,请填隽%.2f元n(,0);(感谢您运用本系统,祝您一路顺风!n);6:(欢迎您到便道取车!n);()(便道上没有车,您的选择有误!);(11);(牌照是:的车主您好,您的车到达便道时间是n1);(1D(您的车在停车场中有更换停放位置!n);(请输入您的爱车的离开时间:);=-;(请选择是否须要发票1:表示须要发票,O表示不须要发票);(1)(“您好,请缴费%.2f元n(,1)2);(请保管好您的发票!n);(感谢您运用本系统,祝您一路顺风!n);(您好,请缴费%
12、2f元n(,0)2);(感谢您运用本系统,祝您一路顺风!n);结束大括号(,n);(1,n);(下面是菜单,请接着选择或者按O退出!);0;(,1);)结束大括号;自主选择菜单结束,s:,S:(您好,已经由系统为您做出了选择!n);1 =O21;(10)(欢迎您到便道停车,我们将竭诚为您服务!n);(请输入到达时间:n);(请输入车牌照(阿拉伯数字);(,0);(恭喜!牌照为的车主在便道停车胜利!92 :(欢迎您到车库停车,我们将竭诚为您服务!n);(O)(车道已经停满,请选择便道停车!);(请输入到达车库时间:n);(,);(请输入车牌照(阿拉伯数字);CO);(恭喜!牌照为的车主在车库停车
13、胜利!3 :(欢迎您更换到便道停车!n);(0)(车库里没有车,你的选择有误!);0;(您的爱车到达车库时间是n);(您的爱车牌照是:n);(请榆入到达便道的时间:n);(*,);GD;(恭喜!您的车辆已经移动到便道!);(欢迎您更换到车库停车!n);()(便道上没有车,您的选择有误!);(11);(您的爱车到达便道时间是n);(您的爱车牌照是:n1);(请输入到达车库的时间:n);(1,1);(恭喜!您的车辆已经移动到车库!);(欢迎您到车库取车!n);(O)(车库里没有车,你的选择有误!);0;(牌照是:的车主您好,您的车到达车库时间是n);(D(您的车在停车场中有更换停放位置!n);(请
14、输入您的爱车的离开时间:);=-;(请选择是否须要发票1:表示有发票,。表示不须要发票);(D(您好,请缴费外.2f元n(,1);(请保管好您的发票!n);(感谢您运用本系统,祝您一路顺风!n);(您好,请填隽%.2f元n(,0);(感谢您运用本系统,祝您一路顺风!n);6:(欢迎您到便道取车!n);()(便道上没有车,您的选择有误!);(11);(牌照是:的车主您好,您的车到达便道时间是n1);(1D(您的车在停车场中有更换停放位置!n);(请输入您的爱车的离开时间:);=-;(请选择是否须要发票1:表示有发票,O表示不须要发票);(1)(“您好,请缴费.2f元n”(,1)2);(请保管好您
15、的发票!n);(感谢您运用本系统,祝您一路顺风!n);(您好,请缴费%2f元n(,0)2);(感谢您运用本系统,祝您一路顺风!n);结束大括号(,n);(,n);(下面是菜单,请接着选择或者按O退出!);0;(,1);)结束大括号最外层结束大括号(2);0;最外层大括号0;()初始化车库的依次栈!=(*)(0*100);()(动态内存安排失败!n);(-1);栈空是返回9()(-=100)栈满是返回(O)(车库已满,请退出!);(-1);(0)(车库已空,您的选择有错误!);(-1);=;=;=;()=(1*)(1);O(-1);P=(1*)(1);O(-1);( =; =; =;) =;=p
16、;指向新进入便道的车=P;)1*P;()队列为空,无法出队(-1);=;=;=;(p)(p);C,n);*n);(”*请输入P或S来进行选择(不分大小写)*r).(t.自助选择停车地点n);(t.系统为您选择n);(t.退出系统n);”*r1);(n);(*n,)(”*请输入06来进行选择*n);(tt1.停在便道n);(tt2.停在车库n);(tt3.从车库移到便道n);(tt4.从便道移到车库n);(tt5.从车库取车n);(tt6.从便道取车n);(tt.退出系统n);(*n);()*(1)须要发票,须要在原有基础上加上$15的费用(D中途有更改停车地点(0.1)小于10分钟=(0+20
17、)*1.15;(O.5)=(5+20)*1.15;(D=(8+20)*1.15;()12)=()1)*6+8+20)*1.15;=()-12)*5+8+11*6+20)*1.15;始终停在车库中(0.1)小于10分钟=(0+20);(0.5)=(5+20);(D=(8+20);(012)=(01)*6+8+20;=(0-12)*5+8+11*6+20;不须要发票,不须要20的管理费(1)中途有更改停车地点(0.1)小于10分钟=0*1.15;(0.5)=5*1.15;(1)=8*1.15;(012)=()1)*6+8)*1.15;=()-12)*5+8+11*6)*1.15;始终停在车库中(0
18、.1)小于10分钟=0;(0.5)=5;(1)=8;()12)=(0D*6+8;=(O-12)*5+8+11*6;停车场管理系统的设计与实现问题描述:设计一个停车场管理系统,模拟停车场的运作,此程序应具备以下功能:(1) 若车辆到达,则显示汽车在停车场车库内或便道上的停车位置;(2) 若车辆离去,则显示汽车在停车场内停留的时间和应交纳的费用。总费用应为在便道上的费用加上在停车场车库内的费用。基本要求:(1)要求以栈模拟停车场车库,以队列模拟车场外的便道,依据从终端读入的输入数据序列进行模拟管理:(3) a.车主进入停车场后,若车库和便道都有空闲,则由车主选择具体停在车库还是便道上:b.在车库和
19、便道都有空闲的状况下,车辆停放位置也可应车主的要求选择更换(如原先停放在便道中的车辆,车主可以要求停在车库内);c.若车主没有特殊要求,则依据栈和队列的依次由系统自动安排位子。(4) 要求处理的数据元素包括的数据项为:汽车到达和离去的时间信息(包括在便道上和车库内的时间)、汽车牌号等;(5) 要求栈以依次结构实现,队列以链表实现。测试数据:自行设计一组在停车场车库内停车的数据和在便道上停车的数据。实现提示:(1)该停车场车库能容纳车辆的数量,便道上的停车数量。(2)车辆到达对应栈或队列的人”操作,车辆离去对应栈或队列的出操作。(3)费用计算问题:a.应分等级收取费用,对于停在车库的车辆,非常钟以内免费,半小时内5元,第一个小时8元,以后每超过一个小时6元。b.停留12小时以上者另加每小时5元的托管费(前12小时不收托管费)。d.对索要发票者,另加总费用15%的税费。e.对车主更换位置的车辆,收取20元的系统维护费。f.在便道上停留的时间依据半价收取。*/五.用户手册请依据主菜单操作,留意括号内的提示内容即可。