基于栈和队列的停车场管理系统设计与实现课程设计论文(编辑修改稿)内容摘要:

基本操作: InitStack(amp。 S) 操作结果:构造一个空栈 S。 DestroyStack(amp。 S) 初始条件:栈 S已存在。 操作结果:栈 S被销毁。 ClearStack(amp。 S) 初始条件:栈 S已存在。 操作结果:将栈 S 清为空栈。 StackEmpty(S) 初始条件:栈 S已存在。 操作结果:若栈 S 为空栈,则返回 TRUE,否则 FALSE。 StackLength(s) 初始条件 :栈 S已存在。 操作结果:返回 S 的元素个数,既栈的长度。 GetTop(S,amp。 e) 初始条件:栈 S已存在且非空。 操作结果:用 e返回 S 的栈顶元素。 Push(amp。 S,e) 初始条件:栈 S已存在。 长春建筑学院《数据结构》课程设计 (论文) 4 操作结果:插入元素 e 为新的栈顶元素。 Pop(amp。 S,amp。 e) 初始 条件:栈 S已存在且非空。 操作结果:删除 S 的栈顶元素,并用 e返回其值。 StackTraverse(S,visit()) 初始条件:栈 S已存在且非空。 操作结果:从栈底到栈顶依次对 S 的每个数据元素调用函数 visit()。 一旦visit()失败,则操作失效。 }ADT Stack ( 2)队列的抽象数据类型定义 ADT Queue{ 数据对象: D={ai|ai∈ ElemSet,i=1,2,...,n,n≥0} 数据关系: R1={ai1,ai|ai1,ai∈ D,i=2,...,n} 约定其中 a1 端为队列 头, an 为队列尾。 基本操作: InitQueue(amp。 Q) 操作结果:构造一个空队列 Q。 DestroyQueue(amp。 Q) 初始条件:队列 Q 已存在。 操作结果:队列 Q 被销毁,不再存在。 ClearQueue(amp。 Q) 初始条件:队列 Q 已存在。 操作结果:将 Q清为空队列。 QueueEmpty(Q) 初始条件:队列 Q 已存在。 操作结果:若 Q为空队列,则返回 TRUE,否则 FALSE。 QueueLength(Q) 初始条件:队列 Q 已存在。 操作结果:返回 Q 的元素个数,即队列的长度。 长春建筑学院《数据结构》课程设计 (论文) 5 GetHead(Q,amp。 e) 初 始条件: Q 为非空队列。 操作结果:用 e返回的队头元素。 EnQueue(amp。 Q,e) 初始条件:队列 Q 已存在。 操作结果:插入元素 e 为 Q 的新的队尾元素。 DeQueue(amp。 Q,amp。 e) 初始条件: Q 为非空队列。 操作结果:删除 Q 的队头元素,并用 e返回其值。 QueueTraverse(Q,visit()) 初始条件: Q 已存在且非空。 操作结果:从队头到队尾,依次对 Q 的每个数据元素调用函数 visit()。 一旦visit() 失败,则操作失败。 }ADT Queue 2. 2 模块划分 本程序包括六个模块: ( 1)主 程序模块 void main() { 初始化 停车站 ; 初始化让路的临时栈; 初始化通道; 输出主菜单:车辆到达、车辆离开与计费、查看停车场信息; } ( 2)入场模块 int arrive(SqStack *In,LinkQueue *W) { 车辆进入停车场; 长春建筑学院《数据结构》课程设计 (论文) 6 计算停车费用 } ( 3)出场模块 void leave(SqStack *In,SqStack *Out,LinkQueue *W) { 车辆离开停车场; } ( 4)输出模块 void info(SqStack S,LinkQueue W) { 输 出停车场信息; } ( 5)栈模块 —— 实现栈的抽象数据类型 ( 6)队列模块 —— 实现队列的抽象数据类型 长春建筑学院《数据结构》课程设计 (论文) 7 第 3 章 详细设计 3. 1 数据类型的定义 int MAX。 /*定义一个全局变量用来存储车库最大容量 */ float price。 /* 定义一个全局变量用来存储每车每小时的费用 */ typedef struct time { int hour。 int min。 }Time。 /*时间结点 */ typedef struct node { char num[10]。 Time reach。 Time leave。 }Car。 /*车辆信息结点 */ typedef struct NODE { Car *stack[100]。 int top。 }SqStack。 /*停车站 */ typedef struct car { Car *data。 struct car *next。 }QNode。 typedef struct Node 长春建筑学院《数据结构》课程设计 (论文) 8 { QNode *head。 QNode *rear。 }LinkQueue。 /*通道 */ 3. 2 主要模块的算法描述 本程序 主要分为四部分:( 1)主函数及程序框架、( 2)车辆到达模块、( 3)车辆离开模块、( 4)显示车辆信息模块, 由梁伟明、段庆龙、丁磊和我合作编写,我主要负责 leave(车辆离开)函数部分。 ( 1)主函数 void main() { SqStack In,Out。 LinkQueue Wait。 int ch。 InitStack(amp。 In)。 /*初始化停车站 */ InitStack(amp。 Out)。 /*初始化让路的临时栈 */ InitQueue(amp。 Wait)。 /*初始化通道 */ while(1) { printf(欢迎使用停车场管理系统\n)。 printf(\t本系统由 5011工作室开发,作者 :邓春国、段庆龙、梁伟明、丁磊。 \n\n)。 printf(请输入停。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。