数据结构停车场管理系统及课程设计报告_第1页
数据结构停车场管理系统及课程设计报告_第2页
数据结构停车场管理系统及课程设计报告_第3页
数据结构停车场管理系统及课程设计报告_第4页
数据结构停车场管理系统及课程设计报告_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

课程设计课程:主题:停车场管理系统专家:类别:名称:2010年9月6日2数据结构课程设计停车场管理系统数据结构课程设计停车场管理系统一、课程设计目的1、通过课程设计,加深对数据结构这一课程所学内容的理解和强化。2、通过课程设计,加深对结构化设计思想的理解,分析系统功能,设计合理的模块化结构。3、通过课程设计,可以提高程序开发功能,采用合理的控制过程制定明确有效的程序。4、通过课程设计,可以训练c程序的调试能力,使中小型各级组织系统协同通过。5、通过课程设计,开发中小型系统,把握系统开发的全过程。6、通话课程设计培养分析问题和解决实际问题的能力。二、课程设计内容问题的说明:有可以停车n辆车的细长停车场,只有一扇可以进出车的门。 车辆按到达停车场的时间的早晚顺序从停车场的里面停在大门前(最初到达的车放在停车场的里面)。 如果停车场已经挤满了n辆车,那么之后的车只能在停车场大门外的人行道上等待,一旦停车场内出现车辆,道路上的第一辆车就会排成进入停车场的样子。 停车场里的车一出来,之后进入停车场的车必须先出停车场让路,出了停车场后这些车必须按顺序入场。 每辆车在离开停车场的时候,都应该根据停车场停留的时间长度来支付费用。 停在人行道上的车没有进入停车场的话,不收停车费,允许保持在人行道上等车的顺序。 编制模拟停车场管理的程序。基本要求:程序输出各车到达后的停车场(停车场或人行道上)、某车离开停车场应支付的费用和停车场停留的时间。实现的提示:汽车的模拟输入信息格式是(到达/出发、牌照号码、到达/出发的时刻)。 例如,(a,1,5 )表示牌照车5点到达,(d,5,20 )表示牌照车20点离开。 整个程序可以在输入信息为(“e”,0,0 )时结束。 这个主题可以通过堆栈和队列来实现。三、概要设计1 .设计思想这个停车场管理系统位于狭窄的通道上,只有一扇车可以进出的门,停车场内的车出来时,之后进入停车场的车必须先退出停车场让路。 离开停车场后,这些车具有按原先顺序入场的功能,可以设计两个堆。 一个堆模拟停车场,另一个堆模拟临时停车场,在车开出时,存放被让给原来停车场的车。 停车场已满的情况下,需要停车车辆的通道可以用一个链条排列来实现。 在停车场开车的时候,过道里有辆车进入停车场。 此时,只要改变通道车辆节点的连接方法即可。 把过道上的第一辆车开进停车场。 然后,把过道的第一辆车变成过道的第一辆车。 此时,只要将模拟通道链列的起始节点连接到原来的第二辆车上即可。2 .实现方法该停车场管理系统的实现,在停车场和停车场内的车辆向其他车辆让路时停车的临时停车场,分别用两个堆模拟。 通道上车辆的停车通过一个链条列来实现,这种情况下,通道上的车辆的退出或进入停车场只要变更该链条列上的节点即可。 要向停车场内的车辆收取与停车时间相应的停车费,可以记录车辆进入停车场的时间和离开停车场的时间,乘以相当于时间差的单价,打印最后的费用。三、主要模块该停车场管理系统主要分为以下模块首先,我们将模拟停车场的堆栈和模拟通道的链队列定义为全局变量,并描述用于调用其他模块的主函数。 在主函数中,首先调用option ()函数,显示用户使用的主界面,指示用户进入该停车场管理系统后,显示用户选择的界面,在用户选择的过程中,程序分别显示车辆的到达、车辆的退出、停车其中,在车辆远离的模块函数中调用打印远离的车辆信息的函数,在将车辆信息停放在停车场的模块函数中调用显示停车场的车辆信息的函数和显示人行道的车辆信息的函数。 最后,从四个调制函数返回主函数以终止整个程序的执行。在上述各模块中,调用的函数如下所示voidsinitstack(seckcar*s )int init queue (链接队列car * q )option ();intarrival(sequetaccar*enter,LinkQueueCar *W )voidaleave(seckcar*enter、SeqStackCar *Temp、LinkQueueCar *W )void打印(car node * p )voidlist (阵列堆叠器,LinkQueueCar W )void List1(SeqStackCar *S )void List2(LinkQueueCar *W )四.模块之间的关系开始初始化两个堆栈Enter、Temp和队列Wait。进入主菜单车到了开车退出Room前车辆进入临时码头房间费用人行道车信息场内情报判断人行道上是否有车机场是否空着列表视图堆叠Enter元素的堆叠伫列中的元素会堆叠起来队列Wait中有一个元素将元素放入堆栈Enter人行道进入车场将元素排队Wait判断堆栈是否已满结束结束列表显示是的,先生否否是的,先生否是的,先生四、调试分析(一)调试中的主要问题;该停车场管理系统是以模块化的方式设计的,因为在程序的实现过程中使用了屏幕函数,所以在执行时用户选择任务,执行任务后,返回到用户选择功能的主界面,因此程序整体的结构变得清晰,使用者能够容易地选择功能本程序的调试运行整体良好,但中间也产生了小问题。 其中有代表性的主要问题如下:虽然停车场已经达到了最大容量,但如果停车场里还有车辆,就不会出现在驾驶画面上,或者说出现了“停车场已经满了,那辆车必须在人行道上等待! 飞走了。 的双曲馀弦值。 我们的团队成员反复讨论,调查各种资料后,在那个printf语句后面追加getch ()的情况下,程序的执行结果满足了要求。本程序使用基于VC6的编译和执行!(2)测试结果的分析与探讨欢迎接口车辆到达车辆离开车辆信息(车场)车辆信息(人行道)五、用户手册该程序用于实现停车场内车辆的管理,整个操作界面为中文,符合更具人情味的标准,用户的使用方便性和操作提示,初次接触该程序的用户也能立即熟悉程序的操作。该程序操作简单,编号输入编号数字即可,进出停车场的时间也操作简单,输入当时的时刻即可,时间和分钟并不具体,但这也可能是程序的不足之处。 另外,该程序向用户提供选择的机会,当想要在点击执行了该程序之后结束该程序时,可输入n或n来结束执行程序。关于使用中的更具体的问题,可以参照该报告书对该项目的屏幕截图进行调试分析,程序整体的执行接口几乎成为上述屏幕截图的内容。六、附录1、源程序代码#include#include#include#define MAX 2 /*车库容量*/#define price 3 /*每辆车的时间费用*/类型结构节点 int num;到达时间;int leavetime;CarNode; /*车辆信息节点*/类型结构节点 car node *堆栈 max1;int top;sesequetaccar; /*模拟车站*/typedef struct car CarNode *data;结构car *下一步;QueueNode;类型结构节点 QueueNode *head;QueueNode *rear;LinkQueueCar; /*模拟通道*/*-*/*函数宣言部*/voidsinitstack (阵列堆栈车* ) /初始化堆栈*/int InitQueue(LinkQueueCar *) /*初始化人行道*/intarrival(sequetaccar*、LinkQueueCar *) /*车辆到达*/voidaleave(seckcar*、seckcar*、LinkQueueCar *) /*车辆出厂*/voidlist (数组堆栈车,LinkQueueCar) /*显示库存信息*/void打印(car node * p )/*- */voidtooption () int i;char choice;gotoxy (0,0 )for(i=1; i=240; I )system(graftabl936 );printf(004 );gotoxy (33,8,8 )printf (停车场管理系统 );gotoxy (25,12 )printf (组成员:周晓宇 );gotoxy (33,16 )printf (类别: ZK );gotoxy(1,20 )printf (n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * );printf(t1 .车辆到达-1 .车辆出发-2 .车辆信息-3 .退出程序-4 );printf (n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * );printf(nnnt是否进入系统(y/n )? 。 ;choice=getchar ();if (选项=n|选项=n )exit(0)以下称为void main ()sequetaccarenter,Temp;LinkQueueCar Wait;int ch;system(graftabl936 );option ();init堆栈(enter )/*初始化站*/init堆栈(temp )/*初始化传道临时堆栈*/InitQueue(Wait) /*初始化通道*/while(1) clrscr ();printf(nnttt1.车辆到达1 );printf(nnttt2.车辆离开后2 );printf(nnttt3 .车辆信息为3 );printf(

温馨提示

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

评论

0/150

提交评论