课程设计—停车场模拟管理程序的设计与实现_第1页
课程设计—停车场模拟管理程序的设计与实现_第2页
课程设计—停车场模拟管理程序的设计与实现_第3页
课程设计—停车场模拟管理程序的设计与实现_第4页
课程设计—停车场模拟管理程序的设计与实现_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、停车场模拟管理程序的设计与实现一、简介1设计目的:理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。2问题的描述:设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序。二、数据结构的设计:对车的信息的定义,只有一个车牌

2、号定义栈,用于表示车位定义一个队列,并定义头尾指针栈s1,s2分别用于表示车位和辅助站,队列p用于表示便道创建队列,并初始化队列中元素的输入与删除,表示了有车进入便道和离开便道 有车进入停车场:如果有空车位,进入车位;否则,进入便道等候有车离开车位:1进行查找,从栈的最后一位开始找起,不符合的辅助栈;2查找成功,将其出栈,辅助栈汽车重新回到车位中;并使便道上的车进入车位,将车位补满;3查找失败,进行下方else,将进入辅助站的车重新返回车位上,并显示没有此车显示停车位信息:1如果车位为空,显示没有车2车位上有车,显示第几号车位及停放车辆的车牌号数据出栈,表示有车离开车位,top和z相应减一,并

3、返回栈内数据的数量创建栈,数据进栈,并有判满和数据计数器相应加一用的是一个switch语句实现输入不同操作选项,调用不同的函数,进入不同的操作板块三、功能(函数)设计: 停车场模拟管理程序的设计与实现车辆进入停车场模块车辆离开停车场模块停车场信息显示模块退出停车场信息模块1车辆进入停车场模块:arrive函数s-top=maxsize-1 ?push函数enlinkqueue函数f = 1f = 0arrive函数:有车进入停车厂;s-top=maxsize-1:对栈进行判满,f=0,栈满,调用enlinkqueue函数;f=1,栈不满,调用push函数;push函数:使车进入车位;enlin

4、kqueue函数:车位已满,使车停入便道,等候进入车位;2车辆离开停车场模块:leave函数n=push(s2,y)y=pop(s1)y.num!=x.num ?f=1f = 0y=pop(s1)y=pop(s2)f=push(s1,y)q-front=q-rear ?y.num=nf=push(s1,y)retune 0n!=0n=0leave函数:有车要离开车位;y.num!=x.num:查找车位上是否存在要离开的车,是f=0,不是,f=1;n=push(s2,y);y=pop(s1):f=1,不是要离开的车辆,进行此重复循环,从栈顶依次查找要离开的车辆;y=pop(s1);y=pop(s

5、2);f=push(s1,y):f=0,找到了要离开的车辆,出栈,并将进入到辅助栈的车返回车位; q-front=q-rear:有空车位,将便道上的车开进车位,n!=0,便道上有车;n=0,便道上没有车了,用返回值0表示;y.num=n;f=push(s1,y):将便道上的车开进车位;3停车场信息显示模块:pp(seqstackcar *s1)函数z=0?进行for(i=0;iz;i+)循环,输出车位上所有车辆输出“没车了”z =0z !=0四、界面设计: 用的是一个switch语句实现输入不同操作选项,调用不同的函数,进入不同的操作板块。五、程序设计:mainarriveleavepppus

6、henlinkqueueprintfpushdelinkqueueifpopif whileprintfprintfif主要函数:arrive函数:有车辆进入停车场的实现;leave函数:对有车辆要离开停车场的实现;pp函数:显示停车场车位信息;push函数:对元素进栈的操作,即有车辆进入车位的实现;pop函数:对元素出栈的操作,即有车辆从车位里出来的实现;enlinkqeueu函数:对数据进入队列的操作,即有车辆进入便道的实现;delinkqeueu函数:对数据出队列的操作,即有车辆离开便道的实现; 编写代码期间遇到的问题:1在定义函数时,定义了多个不同形式的指针,但在使用时发生那个了错误,

7、出现了指针所指信息错误;2在车辆进出停车场的实现中,要不断调用查找,出栈出栈,队列上元素的出栈函数;表示车位的栈和辅助栈之间的数据转存,队列中的元素进入便道等操作比较麻烦,需要设置不同标志量和判断函数进行出栈进栈函数的不断调用,常会出现错误。解决办法:查找资料对指针的使用以及各种操作的实现进行了深入了解,先把各部分的函数保证准确;在函数调用过程中,画出大致流程图,对照路程图进行判断条件的编写和函数的调用。六、运行与测试:1、测试的数据及其结果:(1)点击a进行输入,分别输入车牌号1,2,3,4,5;(2)输入车牌号6,7,8,车位已满,多余的车进入便道等待进入车位;(3)显示此时停车场的信息;

8、(4)将车位上的车牌号为2和4的车就开除车位;2、运行与测试期间遇到的问题及其解决办法。(1)、问题1:在进行进场出场信息的输入时,只能进行一次; 解决办法:设置一个标志量flag和swith循环,在每一次操作后返回到操作步骤;(2)、问题2:在进行了车辆开出停车场操作后,不能正确显示变化后的车位信息; 解决方法:求助同学,添加变量n等,重新调整显示信息模块的函数;七、结论:此停车场管理系统,可以进行车辆进入停车场和退出停车场以及停车厂内部车位停车信息的显示三个步骤的操作。在车辆进入停车场进入模块中,如果进入停车场的车辆大于5,即车位里停放的车辆已满,后面的车自动进入便道等候;在车辆离开停车场

9、模块中,在查找车辆过程中如果没有对应车辆能够显示出“没有此车”,并有辅助栈保证从车位上出来的车不会改变顺序;车位出现空位时,便道上的车能自动进入车位,同时,便道上的车也可以直接离开停车场;停车场信息显示模块,能够显示停车场车位的信息。并有错误操作的信息提示。同样此程序存在很多,界面不直观,不能很直观,清楚地了解停车场管理系统;在显示模块,没有显示出开出停车场车辆的信息,以及便道上的信息。在进一步的开展工作方面,可以添加车辆开出停车场的显示模块和便道上车辆信息的显示,车辆的信息过于简单,只有一个车牌,可以添加更加详细的车辆信息以及添加收费操作等功能。八、设计后的思考:不管简单还是复杂的程序设计,都要求扎实的基础知识,因为各种程序都是由简单的一块块的函数结构组成的,并加强实践,从程序的编写中进一步加强对书本知识的掌握。而且,需要耐心,做程序的编写时比较枯燥的,会出现许多错误,需要我们细心并耐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论