数据结构课程设计报告_第1页
数据结构课程设计报告_第2页
数据结构课程设计报告_第3页
数据结构课程设计报告_第4页
数据结构课程设计报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、数据结构课程设计报告标题停车场管理系统程序类别_ _ _ _ _ _ _ _ _ _ _ _ _ _ _。名称_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _学生证_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。停车场管理系统1问题描述停车场是一条可以停放N辆车的狭窄通道,只有一扇门可以用来进出。停车场按照到达时间从北到南排列车辆(门在最南端,第一辆先到达的车停在停车场的最北端)。如果停车场满是N辆车,后面的车只能在门外的人行道上等候。一旦一辆车离开,人行道上的第一辆车可以驶入;当停车场里的某辆车要离开时,后面进入的车辆必须离开停车场为它让路。

2、汽车离开大门后,其他车辆按原来的顺序进入停车场。每辆停在停车场的汽车必须根据它离开停车场时停留的时间支付费用。2需求分析(1)根据车辆到达停车场到车辆离开停车场的时间。(2)当车辆离开停车场时,等待的车辆进入停车场以便停车。实现停车场的调度功能。(3)停车场以序列堆栈表示,停车场外的服务道路以连锁团队表示。(4)显示停车场信息和服务道路信息。(5)程序执行的命令是:车辆进入停车场,车辆离开停车场显示停车场信息。(堆栈s用作停车场,堆栈S1用作让道的临时停车位,队列q用作等待的便道。StackMax 1是车场可容纳的车辆数量,num10是车辆所在位置的数量,车场可容纳的最大车辆数量是有限的。(2

3、)用户根据系统指定和提示的要求输入相关内容。停车场可容纳的车辆数量由收费员决定。当车辆离开时,车主还可以拿到收据,以便管理和使用收费;系统程序提供的一些信息可以通过专用硬件显示出来,这样车主就可以知道这些信息,准确有效地停车。(3)。该程序应能显示当前存储的车辆和等待车辆的信息,便于管理人员对车辆进行管理,并为等待车辆提供一些信息,以便他们能够及时停车。(4)程序执行的命令有:输入入站信息-输入出站信息-打印回执(5)修改后的程序是利用栈和队列基本知识的简单工具,在现实中是无法使用的,特别是栈的“先入后出”规则极大地限制了程序的普及,现实世界中的车站管理系统远比这个复杂。二。轮廓设计:1.将堆

4、栈的抽象数据类型设置为:ADT堆栈数据对象:d=ai | ai 字符集,I=1,2,n,n=0数据关系:R1=| AI-1,AI d,I=2.n基本操作:初始化堆栈操作结果:构造一个空堆栈.推动(南、东)初始条件:堆栈s已经存在。操作结果:在堆栈顶部插入一个新的顶部元素e.流行音乐初始条件:堆栈s已经存在。操作结果:删除s的栈顶元素,并用e返回其值。StackTraverse(S,访问()初始条件:堆栈s已经存在。操作结果:从栈底到栈顶对s中的每个元素调用函数visit()。ADT堆栈2.将队列的抽象数据类型设置为:数据对象:d=ai | ai elemset,I=1,2,n,n=0数据关系:

5、R1=| AI-1,AI d,I=2.n人们一致认为人工智能是队列头,人工智能是队列尾。基本操作:初始队列(Q)操作结果:构造空队列Q .去队列(Q)初始条件:队列Q已经存在。操作结果:队列Q被销毁,不再存在。清除队列(Q)初始条件:队列Q已经存在。操作结果:将Q清除为空队列。队列空(Q)初始条件:队列Q已经存在。如果q是空队列,操作结果:返回真,否则返回假。排队长度初始条件:队列Q已经存在。运算结果:返回Q的元素个数,即队列长度。头部(Q,e)初始条件:是一个非空队列。运算结果:返回q与e相反的元素.入队操作结果:删除队列头元素Q,并返回其值e .队列遍历(Q,访问()初始条件:Q已经存在并

6、且不是空的。操作结果:调用函数visit()从队列的头到队列的尾对Q的每个数据元素进行访问。一旦visit()失败,操作就会失败。ADT队列3.该程序包括四个模块1)主程序模块无效主()声明定义调用堆栈和队列函数主信息(输入初始操作信息)2)堆栈模块实现堆栈抽象数据类型3)队列模块实现队列的抽象数据类型4)结构模块-用于管理对象和变量每个模块之间的调用关系如下:主程序模块结构模块堆栈模块队列模块4.停车管理程序设计要求根据从终端读取的输入数据进行模拟管理。每组输入数据包括三个数据项:汽车“进站”或“出站”信息、汽车牌照号码和进站或出站时间。操作每组输入数据后的输出信息是:如果汽车到达,输出汽车

7、在停车场或人行道上的停车位置;如果车辆离开,将输出在停车场停留的时间和应付费用(在人行道上停留不收费),这将通过顺序结构实现,队列将通过链表结构实现。三。详细设计:1.时间节点类型typedef结构时间整数小时;int min时间;/*时间节点*/2.车辆进出信息的类型typedef结构节点char num10;时间到达;时间休假;卡诺德;/*车辆信息节点*/3.停车场和服务道路信息类型typedef结构NODE卡诺德*堆栈最大1;int top SeqStackCar/*模拟站*/typedef struct car卡诺德*数据;struct car * next队列节点;类型定义结构节点队

8、列节点*头;队列节点*后部; LinkQueueCar/*模拟通道*/void InitStack(SeqStackCar *,int n);/*声明堆栈*/初始化并创建两个新堆栈,S1int Initqueue(LinkQueueCar *);/*申报通道*/初始化,为便道创建队列Qint到达(SeqStackCar *、LinkQueueCar *、int n);/*进入车站的车辆*/无效休假(SeqStackCar *、SeqStackCar *、LinkQueueCar *、int n);/*车辆出站*/无效列表(SeqStackCar、LinkQueueCar);/*显示车辆存储信息

9、*/空初始化堆栈(seqstack car * s,int n)/*初始化堆栈*/4.主函数和其他函数的伪码算法void main()/主程序初始化();/初始化而(1)scanf(.);/根据提示信息输入想要的操作开关(k)/根据输入数量调用不同的函数案例1:案例2:.typedef结构*/用于创建不同结构类型的指针和变量void PRINT(CarNode *p)/调用输出函数休假(*p,n).根据解决时间值,通过收据获取并打印成本5.主要功能思想这个程序是一个简单的堆栈和队列应用程序,它的功能也是堆栈和队列的基本功能。但是,在编写函数时,我们应该特别注意它的面向对象和窗口设计,并照顾用户

10、。因此,在使用某些函数时,调用的基本语句有太多的重复,而这些函数的目的是实现其最初的基本目的。四.调试分析:1.这个工作比较简单,只是栈和队列的审查和应用,所以整体调试比较顺利,但是调用栈和队列的函数时存在一些问题。例如,我想通过键盘输入来确定停车场的停车号码,所以这些操作功能在初始化时必须有停车号码的参数。2.定义堆栈元素的最大空间时,如果使用顺序堆栈,则必须为其指定一个初始值,但如果使用链表,则可以动态分配内存并为堆栈动态打开新的空间。3.当判断键盘输入是否满足要求时,如果不满足要求,则应循环分配,直到满足要求。当此处使用的do-while循环语句与外部while语句一起应用时,break

11、语句应使用两次以跳出循环,否则将导致无限循环。4.经验:通过调试调试器和数据观察窗口,您可以快速发现程序中的缺陷。V.软件操作说明:该系统是一个停车信息管理软件,可以实现停车场和人行道停车信息的输入、输出和查询功能,并将已建立和更新的停车成本信息保存在文件输出或打印中。可以根据停车位置和车牌号码进行搜索等功能。每辆车的相关信息包括:车牌号码、进站时间、出站时间、停车位置、停车费用等。系统功能有待完善,操作简单,仅供学习,不适合现实生活。以下描述了使用该软件的说明:1.停车场。exe。2.进入演示系统后,用户和管理员首先要注意界面,进入后会出现菜单选项。1.进入车站2的车辆。离开车站3的车辆。车

12、辆存储信息4。离开系统请选择:1|2|3|4。此时,您可以按照提示做您想做的事情。3.关于1-4的具体操作和内容,请参考前面的调试分析,这样您就可以轻松地操作它了!6.摘要:经过本课程的设计,通过程序的编程、调试和运行,我更好地掌握了堆栈和队列的基本属性以及它们的使用关系相关问题的解决方案,熟悉了各种被调用的数据类型,在调试和运行过程中更熟悉了程序的运行环境,从而提高了我调试和分析程序以及纠正错误的能力。这个数据结构的程序设计对我来说是一个挑战。我对数据结构的研究也反映在程序设计中。课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题、锻炼实践能力的重要环节。这也是对学生实际工作

13、能力的具体训练和调查过程。随着科学技术的飞速发展,今天的计算机应用可以说是无处不在。因此,作为21世纪的大学,掌握计算机开发技术是非常重要的。七.附录使用的库功能:Stdio.h /*标准输入/输出头文件*/字符串. h /*包含字符串处理函数的头文件*/Stdlib.h /*包含动态存储和释放功能头文件*/Malloc.h /*包含内存分配头文件*/停车场管理系统的主要程序如下:/*停车场管理系统*/#包括#包括#包括#包括/* - */#定义最大10int getn()int n;普林特夫(“欢迎来到顺丰停车场,”);停车场管理实行24小时制,每分钟收费0.1元。 n );打印(请输入停车

14、场可容纳的:辆汽车(最多10辆);scanf(“% d”,n);ff rush(stdin);做if(n1 | n10)Printf(输入的车辆数量不在要求的范围内,请重新输入!);scanf(“% d”,n);ff rush(stdin);否则就休息。同时(n1 | | n10);返回n;typedef结构时间整数小时;int min时间;/*时间节点*/typedef结构节点char num10;时间到达;时间休假;卡诺德;/*车辆信息节点*/typedef结构NODE卡诺德*堆栈最大1;int top SeqStackCar/*模拟站*/typedef struct car卡诺德*数据;struct car * next队列节点;类型定义结构节点队列节点*头;队列节点

温馨提示

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

评论

0/150

提交评论