学位论文基于栈和队列的停车场管理系统设计与实现课程设计.docx
- 文档编号:370718
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:23
- 大小:388.12KB
学位论文基于栈和队列的停车场管理系统设计与实现课程设计.docx
《学位论文基于栈和队列的停车场管理系统设计与实现课程设计.docx》由会员分享,可在线阅读,更多相关《学位论文基于栈和队列的停车场管理系统设计与实现课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
学位论文基于栈和队列的停车场管理系统设计与实现课程设计
长春建筑学院《数据结构》课程设计(论文)
基于栈和队列的停车场管理系统设计与实现
Stackandqueue-basedparkingmanagementsystemdesignandImplementation
年级:
学号:
姓名:
专业:
指导老师:
二零一三年十二月
摘要
计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。
因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。
如今,高等教育的计算机教育发展十分迅速。
十多年前,只有部分理工科专业开设计算机课程。
今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。
人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。
而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。
计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。
一般来说,计算机课程学习可以分为两部分:
一部分是理论课程学习,一部分是上机应用实习。
根据我们专业的性质和要求,则应侧重于上机操作运用。
关键字:
计算机上机应用实习
Abstract
Developmentofcomputerscienceandtechnology,notonlygreatlypromotedthedevelopmentofthescienceandtechnology,butalsosignificantlyacceleratetheeconomicandsocialinformatizationprocessofinformation.Therefore,thecountryhasattractedincreasingattentionincomputereducation,computerknowledgeandabilityhasbecomeoneofthebasicelementsofthe21stcentury,thequalityoftalent.
Today,thecomputerisveryfastdevelopmentofhighereducation.Tenyearsago,onlyapartofthecreationofcomputerscienceandengineeringcourses.Today,almostallprofessionalcollegesanduniversitieshavesetupallthedifferentlevelsofcomputercourses.Ithasbeenrecognized,computerknowledgehasbecomethecontemporaryintellectualsimportantpartoftheknowledgestructureindispensable.Andinadditiontomasterthebasicsofcomputeroperationandbasicabilitytomasterahigh-levelprogramminglanguage,andcanskillfullyuseit,hasbecomeanessentialcomponentofcontemporarycollegestudents'comprehensiveability.
Computertechnologyisgrowingsofast,computerapplicationsoextensive,moreandmorethingstolearn,andourtotalhoursarelimited.Generally,computerlearningcoursescanbedividedintotwoparts:
oneisthetheoreticalcourses,practicalapplicationpartofthemachine.Accordingtothenatureandrequirementsofourprofessional,youshouldfocusontheuseofmachineoperation.
Keywords:
comptuerComputerapplicationpractice
目录
摘要I
AbstractII
第1章绪论-1-
1.1设计目的-1-
1.2设计内容-1-
1.3设计要求-2-
1.4设计思想-2-
第2章概要设计-3-
2.1抽象数据类型定义-3-
2.2模块划分-5-
第3章详细设计-7-
3.1数据类型的定义-7-
3.2主要模块的算法描述-8-
第4章系统测试-12-
第4章系统测试-13-
4.1调试分析-13-
第5章测试结果-14-
5.1测试数据及结果-14-
5.2结果分析-17-
第6章课程设计总结-18-
第1章绪论
引言:
课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。
《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
1.1设计目的
1、掌握栈和队列的建立。
2、掌握栈和队列的基本操作。
3、深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。
4、加深对栈和队列的理解和认识。
1.2设计内容
停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
停车场内已停了n辆汽车,后来的汽车只能在门外的便道上等候,一旦有车开走,排在通道上的第一辆车即可开入;当停车场内每辆车要离开时,在它之后进入的车辆必须先退出停车场为其让路,待该辆车开出大门,其他车辆再按原次序进入停车场。
为停车场编写按上述要求进行管理的模拟程序。
1.3设计要求
(1)根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收费。
(2)当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。
实现停车场的调度功能。
(3)用顺序栈来表示停车场,链队表示停车场外的便道。
(4)显示停车场信息和便道信息。
(5)程序执行的命令为:
车辆进入停车场
车辆离开停车场
显示停车场的信息。
1.4设计思想
1.当车辆要进入停车场时,检查停车场是否已满,如果未满则车辆进入停车场;如果停车场已满,则车辆进入便道等候。
2.当车辆要求出栈时,先让在它之后进入停车场的车辆退出停车场为它让路,再让该车退出停车场,让路的所有车辆再按其原来进入停车场的次序进入停车场。
之后,再检查在便道上是否有车
等候,有车则让最先等待的那辆车进入停车场。
3.用顺序结构实现栈,用链表实现队列。
第2章概要设计
2.1抽象数据类型定义
(1)栈的抽象数据类型定义
ASTStack{
数据对象:
D={ai|ai∈ElemSet,i=1,2,...,n,n≥0}
数据关系:
R1={
约定an端为栈顶,a1端为栈底。
基本操作:
InitStack(&S)
操作结果:
构造一个空栈S。
DestroyStack(&S)
初始条件:
栈S已存在。
操作结果:
栈S被销毁。
ClearStack(&S)
初始条件:
栈S已存在。
操作结果:
将栈S清为空栈。
StackEmpty(S)
初始条件:
栈S已存在。
操作结果:
若栈S为空栈,则返回TRUE,否则FALSE。
StackLength(s)
初始条件:
栈S已存在。
操作结果:
返回S的元素个数,既栈的长度。
GetTop(S,&e)
初始条件:
栈S已存在且非空。
操作结果:
用e返回S的栈顶元素。
Push(&S,e)
初始条件:
栈S已存在。
操作结果:
插入元素e为新的栈顶元素。
Pop(&S,&e)
初始条件:
栈S已存在且非空。
操作结果:
删除S的栈顶元素,并用e返回其值。
StackTraverse(S,visit())
初始条件:
栈S已存在且非空。
操作结果:
从栈底到栈顶依次对S的每个数据元素调用函数visit()。
一旦visit()失败,则操作失效。
}ADTStack
(2)队列的抽象数据类型定义
ADTQueue{
数据对象:
D={ai|ai∈ElemSet,i=1,2,...,n,n≥0}
数据关系:
R1={
约定其中a1端为队列头,an为队列尾。
基本操作:
InitQueue(&Q)
操作结果:
构造一个空队列Q。
DestroyQueue(&Q)
初始条件:
队列Q已存在。
操作结果:
队列Q被销毁,不再存在。
ClearQueue(&Q)
初始条件:
队列Q已存在。
操作结果:
将Q清为空队列。
QueueEmpty(Q)
初始条件:
队列Q已存在。
操作结果:
若Q为空队列,则返回TRUE,否则FALSE。
QueueLength(Q)
初始条件:
队列Q已存在。
操作结果:
返回Q的元素个数,即队列的长度。
GetHead(Q,&e)
初始条件:
Q为非空队列。
操作结果:
用e返回的队头元素。
EnQueue(&Q,e)
初始条件:
队列Q已存在。
操作结果:
插入元素e为Q的新的队尾元素。
DeQueue(&Q,&e)
初始条件:
Q为非空队列。
操作结果:
删除Q的队头元素,并用e返回其值。
QueueTraverse(Q,visit())
初始条件:
Q已存在且非空。
操作结果:
从队头到队尾,依次对Q的每个数据元素调用函数visit()。
一旦visit() 失败,则操作失败。
}ADTQueue
2.2模块划分
本程序包括六个模块:
(1)主程序模块
voidmain()
{
初始化停车站;
初始化让路的临时栈;
初始化通道;
输出主菜单:
车辆到达、车辆离开与计费、查看停车场信息;
}
(2)入场模块
intarrive(SqStack*In,LinkQueue*W)
{
车辆进入停车场;
计算停车费用
}
(3)出场模块
voidleave(SqStack*In,SqStack*Out,LinkQueue*W)
{
车辆离开停车场;
}
(4)输出模块
voidinfo(SqStackS,LinkQueueW)
{
输出停车场信息;
}
(5)栈模块——实现栈的抽象数据类型
(6)队列模块——实现队列
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学位 论文 基于 队列 停车场 管理 系统 设计 实现 课程设计