您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 数据结构课程设计_停车场模拟管理系统报告
计算机科学技术学院《数据结构课程设计》报告专业:计算机科学与技术班级:计13-1学号:24、25姓名:王莹、肖林英课设题目:停车场模拟管理系统指导教师:姜卓2014-12-23目录一、设计题目............................................................................................1二、设计目的............................................................................................1三、总体设计............................................................................................1(一)问题描述.....................................................................................1(二)设计要求.....................................................................................1(三)数据结构.....................................................................................1四、详细设计............................................................................................2(一)分析与实现.................................................................................2(二)系统模块设计.............................................................................2(三)界面设计.....................................................................................3五、设计结果与分析................................................................................6六、总结(收获和不足)........................................................................6(一)课设的不足.................................................................................6(二)课设的收获.................................................................................6附录程序源码..........................................................................................7参考文献:..............................................................................................15指导教师意见..........................................................................................16第1页共18页一、设计题目停车场模拟管理系统。二、设计目的利用所学的知识,模拟设计一个停车场管理系统。通过程序设计,了解停车场的工作情况以及是怎么实现停车的,模拟车辆的进入停车场、离开停车场的情况,和收费情况。三、总体设计(一)问题描述假设停车场可以停放n辆车的狭长通道,而且只有一个入口出口,汽车进入停车场的停放按照先进先放的顺序,依次排满车道。当停车场已经停满时(已存放了n辆汽车),想进入停车场的车就只能在便道上等待,等到停车有车离开时,便道上的第一辆车进入停车场。当停车场内的某辆车要离开时,在它后面的车必须离开让出一条道路来,待车开走后,让路的车依次进入停车场,车辆离开时,按时间缴纳费用。(二)设计要求用栈模拟停车场,用队列模拟停车场外面的等车便道,按照终端输入数据的方式进行模拟管理。输入1,表示车辆到达;输入2,表示车辆离开;输入3,表示列表显示停车场内外情况;输入4,表示系统帮助;输入5,表示查询车辆;输入0,表示退出程序。车辆进入停车时,要输入车牌号码和到达时间;车辆离开时,要输入停车场车位号和离开时间,并显示应收费额;车辆查询时,要输入车牌号码;系统帮助,则是一些关于本系统的操作介绍。(三)数据结构本课程设计使用的数据结构有:顺序栈和链式队列。第2页共18页四、详细设计(一)分析与实现1、模拟停车场的车辆进出需要输入车辆的信息,比如车辆的车牌号码、到达时间、离开时间,因此,可以定义一个车辆信息结点类型和一个时间节点类型,在顺序栈和链式队列中定义结点类型为车辆信息结点类型。2、车辆离开时,需要打印输出车辆的车位号、到达时间、离开时间以及应缴纳的费用。定义print()函数实现。3、车辆到达时要输入车辆的信息,并以此存放在停车场内;没进入一辆车,要判断停车场(顺序栈)是否已经停满,若已满,则提示该车要在便道上等待;若未满,则进行进栈操作。4、车辆的离开,要另外设计一个栈,当一辆汽车要离开时,在其后的车辆要给其让路,让路的汽车就暂时停放在这个栈中。车辆离开后,要判断便道上是否有车辆在等待,若有则进行入栈操作,即将车辆的信息结点进行入栈操作,这时要输入当前时间,今儿进行出队操作,表示车辆已经离开便道进入停车场。5、系统帮助则只需设计一个函数,将要说明的东西写进去,可以直接调用。6、车辆的查询,既可以查询停车场内的车辆,也可以查询便道上等待的车辆,查询时要输入正确的车牌号码,并显示车辆的当前情况。(二)系统模块设计主函数车辆到达车辆离开车辆停靠退出程序用户操作界面第3页共18页(三)界面设计1、主菜单界面第4页共18页2、车辆到达界面3、车辆离开界面4、车辆停靠界面停车场情况第5页共18页便道停车情况5、退出系统第6页共18页五、设计结果与分析测试结果已达到我们预期的结果,可以模拟实现车辆的进入、离开停车场,可以大体上让人了解到停车场的工作情况。六、总结(收获和不足)(一)课设的不足本次课程设计完成的系统,只能简单的模拟停车场的车辆进出、收费情况和查询功能,没有将进入停车场的车辆信息进行存盘保存。而且功能单一,有车离开时,还有可能要其他的车退出停车场让车(不够人性化);模拟的停车场只是一个狭长的通道,存放的车辆只能是一种类型的,即占地面积是一样的;按道理停车场可以存放各种类型的车,各种车的收费标准也应该不一样,这都应该是要完善的。(二)课设的收获本次课设,我们组选了停车场模拟管理系统来做,在这个题目里,只用到了两个数据结构:顺序栈和链式队列。顺序栈模拟停车场,队列模拟便道。通过这次课设,确实对我们的水平提高了很多,至少再次熟悉了本学期所学的栈和队列的使用和应用。记得在刚开始的时候,看到课设指导书上面的题目,感觉自己什么都做不出来,所以迟迟不敢动手。当时间一天天逼近时,不能再拖了,就只能开工了。抱着试一试的心态,我们参考着资料上面的指示,一步一步地做,居然做出了一个简单的系统;最后,对系统做了些完善(虽然还不是很完善),在此对同组的小伙伴表示感谢!通过这次课设,我们再次强烈的感受到:只要敢于尝试,很多我们自己认为做不到的事情都是可能做到的。勇于尝试,定有收获!第7页共18页附录程序源码#includeiostream#includestring#includestdlib.h#includestdio.h#includegraphics.h#includeconio.husingnamespacestd;#defineMAX3//停车场车位数#defineprice0.05//每分钟收取的费用typedefstructtime{inthour;intmin;}Time;//定义时间结点typedefstructnode{stringnum;Timereach;Timeleave;}CarNode;//定义每辆车的牌号,进入时刻,开出时刻typedefstructNODE{CarNode*stack[MAX+1];inttop;}SeqStackCar;//用栈定义,构造停车场typedefstructcar{CarNode*data;structcar*next;}QueueNode;//用队列结点定义,构造停车场外的单个等候车辆typedefstructNode{第8页共18页QueueNode*head;QueueNode*rear;}LinkQueueCar;//用队列定义,构造停车场外的等候便道voidInitStack(SeqStackCar*);//初始化堆栈函数声明intInitQueue(LinkQueueCar*);//初始化队列头结点函数声明intArrival(SeqStackCar*,LinkQueueCar*);//车辆进入时登记函数声明voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);//车辆离开时函数声明voidList(SeqStackCar,LinkQueueCar);//查看停车场内车辆情况及便道上车辆情况的函数声明voidmyouttextxy(intx,inty,LPCTSTRs);//绘制滚动文字voidmyouttextxy(intx,inty,LPCTSTRs){staticIMAGEtmp;//用来保存被文字覆盖的区域背景if(s==NULL){//恢复区域putimage(x,y,&tmp);}else{intw=textwidth(s);//获取字符串占用的宽度inth=textheight(s);//获取字符串占用的高度//保存区域getimage(&tmp,x,y,w,h);//文字输出outtextxy(x,y,s);}}//车辆进入intArrival(SeqStackCar*Enter,LinkQueueCar*W){CarNode*p;QueueNode*t;p=newCarNode;cout--------------------------------------------------------------------endl;cout车辆到达登记开始:endl;coutendl请输入车牌号:;cinp-num;第9页共18页if(Enter-topMAX)//如果车位未满则进停车场内{Enter-top++;coutendl车辆在车场第Enter-top位置.endl;coutendl车辆到达时间:;cout(例:1111)endl;cinp-reach.hourp-reach.min;coutendl车辆到达登记完毕!endl;cout--------------------------------------------------------------------endl;Enter-stack[Enter-top]=p;return1;}e
本文标题:数据结构课程设计_停车场模拟管理系统报告
链接地址:https://www.777doc.com/doc-2334320 .html