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

下载本文档

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

文档简介

停车场管理专业课: XXXXXXX学位: XXXXXXX姓名: XXXXXXX指导教官: XXXXXXX课程设计时间: XXXXXXX计算机专业数据结构课程设计担当书学生姓名XXXXXX专业班XXXXXX学号XXXXXX主题停车场管理系统课题的性质工程设计课题的来源XXXXXX指导教师XXXXXX同一组的名称XXXXXX主要内容一、设计任务和主要技术参数1建立停车场管理系统。2关键技术: c语言中模块化编程数据结构的堆栈、队列二、设计任务1各组成员合作完成课程设计,每人任务不同要求利用二结构化程序的设计方法和c的编程思想完成系统的设计3要求欢迎接口、菜单、文件操作,数据可以使用排列、结构、链接表等,键盘操作也可以鼠标操作4在设计过程中,要求按功能定义函数,写多个文件,进行模块设计,各功能模块以函数的形式实现5可以要求每个功能模块的算法设计,并且可以以流程图形式表示算法思想6要求通过编程实现系统功能,进行调试和测试,使系统正常运行7要求在源程序中写入格式规范,进行可读性好、必要的注释,采用缩进格式编写八门课程设计书三、设计工作量1根据问题描述,分析系统功能,划分功能模块,完成程序数据设计,确定各模块的函数名称双程序的函数设计三函数代码和调试4整个程序的调试5完成设计文件和课程设计书任务要求1 .系统应具备的功能:(一)停车场的停车场管理;(二)停车场停车管理;(三)停车场记录费管理;2 .数据结构设计3 .主要算法设计4、编程和升级机的实现5 .编写课程设计报告参考文献1. 数据结构(C语言版)、严蔚敏、吴伟民、清华大学出版社、19972 .谭浩强. c语言编程(第3版) M .北京:清华大学出版社,2005廖雷,罗代忠. c语言编程基础实验课程M .北京:高等教育出版社,20054 .谭浩强. c程序设计问题与高级指导(第三版) M .北京:清华大学出版社,2005.审查意见指导教师签字:教室主任签字:年月日实验主题:停车场管理系统一、需要解决的问题停车场是可以停车n辆车的狭窄通道,只有玄关车在到达时间前后从北向南排列(玄关是最南端,第一辆到达的车停在最北端)停车场已经停在n辆车上的情况下,之后的车在人行道上等,有车出来后人行道上排列的第一辆车可以进入的停车场的车出来之后其他车按照原来的顺序进入停车场,每辆车停在停车场的车需要时间。 要求:在码头模拟停车场,在行列列车外的人行道上,按照从终端输入的数据序列进行模拟管理。 每组数据包括三个数据项:汽车“到达”或“离开”信息、车牌号和到达或离开时间。 各组数据操作后的信息,车辆到达时输出停车场和人行道上的车位:车辆离开时输出停车场内的停车时间和应缴纳的费用(人行道上的停车时间不计费)。 栈通过顺序结构实现,队列通过链表结构实现。二、基本要求(1)接口友好,必须分开函数的功能;(2)整体设计应画流程图(3)对程序附上必要的评论(四)提供程序测试方案。三、算法的基本思想描述停车场是狭窄的通道,而且只有一扇车可以进出的门,所以问题要求车辆在停车场内按到达时间的优先顺序从北到南按顺序排列。 这很容易联想到数据结构的堆栈模型,首先可以设计堆栈来模拟停车场,我设计了按顺序存储停车场车辆信息的结构,当停车场内的某辆离开时,进入他后面的车辆必须先离开停车场让路,等待该车辆出门这是下降一步的过程,让路的车必须维持原先的优先顺序,所以还可以再堆积一个,暂时把出站车暂时的道路作为让路的车来保管。 停车场满了之后,接着进来的车必须在停车场旁边的人行道上等待,如果停车场有车,按照排列顺序进入,最先进入人行道的车首先进入停车场。 因为这是一种完全先进的先进先出模型,可以设计模拟人行道的列,列的数据元素被设计成车辆号码,以链表的形式被存储。 另外,停车场根据汽车停在停车场的时间合计收取费用,人行道上的时间不收取费用,因此必须记录车辆进入停车场的时间和车辆离开停车场的时间,计算费用状况并显示。四、详细设计1 .数据结构的设计(1)车辆信息的显示车辆可以被认为是节点,设计为结构,其中车辆信息包括车牌号,车辆进入时间和离开停车的时间,其定义如下typedef struct nodechar num10; /车牌号码Time reach; /到达时间Time leave; /出发时间CarNode;(2)定义时间、堆栈和队列时间用时间和分钟来表示,并且由于存在两种数据,因此与多个表示相同,两个变量的设计为分别存储时间和分钟。 例如typedef struct timeint hour;int min;Time;停车场内有堆栈显示: typedef struct NODEcar node *堆叠 max1; /堆栈按顺序排列int top;sesequetaccar;人行道上的车辆显示: typedef struct carCarNode *data; /人行道上的车辆路段表显示结构car *下一步;QueueNode;typedef struct NodeQueueNode *head; /设置起始指针、结束指针。 的双曲馀弦值。QueueNode *rear;LinkQueueCar;2 .算法的设计思想和流程图(1)主要函数的功能说明1、voidsinitstack(sequetaccar*) /车辆节点进入堆栈码头未满时,将到达的车辆放入码头。2、int InitQueue(LinkQueueCar *) /车辆节点进入队列码头一满,车辆就进入人行道的排列3、intarrival(sequetaccar*、LinkQueueCar * ),即/车辆到达登记车辆到达后,首先登记车辆牌照号码。 然后判断停车场是否满员,如果不满员就进入栈桥,如果满员就停在人行道上,进入行列。 的双曲馀弦值。4、voidaleave(sequetaccar*、seckcar*、LinkQueueCar *) /车辆脱离处理输入远离车辆的处理,调用PRINT(CarNode *p,int room )的函数收取费用。 的双曲馀弦值。 判断人行道上是否有车辆,如果有,将人行道上的车辆放入停车场。5、voidlist (排列栈车,LinkQueueCar) /显示车场和人行道的车辆状况switch (); 函数选择显示车场或人行道上的车辆状况。包括对以下两个子函数的调用: void List1(SeqStackCar *S )void List2(LinkQueueCar *W) /分别显示车场和人行道上的车辆状况6、void PRINT(CarNode *p,int room) /出车是收费的这个函数从车辆离开的函数中调用,自己计算费用,但只能计算到当天为止的费用,到了第二天费用会变为负或减少。 即日停止,即日出发。 的双曲馀弦值。(2)模块结构及流程图下图是程序的主流程图,清楚地表示了程序的执行过程整体。 例如,图120开始初始化两个堆栈Enter、Temp和队列Wait。进入主菜单车到了开车退出Room前车辆进入临时码头房间费用人行道车信息场内情报判断人行道上是否有车机场是否空着列表视图堆叠Enter元素的堆叠伫列中的元素会堆叠起来队列Wait中有一个元素将元素放入堆栈Enter人行道进入车场将元素排队Wait判断堆栈是否已满结束结束列表显示是的,先生否否是的,先生否是的,先生(3)主要模块的算法描述本程序最主要的算法是车辆到达登记和车辆离开。车辆到达: intarrival(sequetaccar*enter,LinkQueueCar *W )首先定义堆栈和队列的结构指针是: *p,*t。然后,申请车辆信息的存储空间,分配给堆栈指针。车辆到达后输入车牌号码,在if(Enter-toptop0)中确保堆栈不空闲,在while(1)中输入的车辆确保离开位置的正当性。 如果没有和谐,就显示输入错误,重新输入。在while(Enter-toproom )中判断远离车辆的位置,如果是中间位置,则在另一个栈前暂时出现的车辆上等待出现的车辆,然后将暂时栈的车辆看作车场来调用PRINT(p,room ),该函数计算显示费用。然后if(W-head!=W-rear)Enter-top#include#include#define MAX 3 /停车场的最大容量为3台,容易观察#define price 0.05定义typedef struct time /时间结构int hour;int min;Time;typedef struct node /定义车辆信息结构体char num10;Time reach;Time leave;CarNode;typedef struct NODEcar node *堆叠 max1;int top;sesequetaccar;typedef struct carCarNode *data;结构car *下一步;QueueNode;typedef struct NodeQueueNode *head;QueueNode *rear;LinkQueueCar;voidsinitstack (阵列堆栈车* )int InitQueue(LinkQueueCar * )intarrival(sequetaccar*、LinkQueueCar * )voidaleave(seckcar*、seckcar*、LinkQueueCar * )voidlist (阵列堆叠器,LinkQueueCar )void main ()装模作样sequetaccarenter,Temp;LinkQueueCar Wait;int ch;system(color 4A );init stack

温馨提示

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

评论

0/150

提交评论