数据结构停车场管理实验报告C

数据结构停车场管理实验报告C
数据结构停车场管理实验报告C

停车场数据结构实验报告附代码

数据结构实验报告 ——实验三停车场模拟管理程序的设计与实现 本实验的目的是进一步理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 一、【问题描述】 设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。为了以下描述的方便,停车场的停车场用“停车位”进行叙述,停车场的便道用“便道”进行叙述。 二、【数据结构设计】 1、为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码和汽车的当前状态,所以为汽车定义一个新的类型CAR,具体定义如下: typedef struct { char *license //汽车牌照号码,定义为一个字符指针类型 char state; //汽车当前状态,字符s表示停放在停车位上,//字符p表示停放在便道上,每辆车的初始状态用字符i来进行表示 } 2、①由于车位是一个狭长的通道,所以不允许两辆车同时出入停车位,当有车到来要进入停车位的时候也要顺次停放,当某辆车要离开时,比它后到的车要先暂时离开停车位,而且越后到的车就越先离开停车位,显然这和栈的“后进先出”特点相吻合,所以可以使用一个栈来描述停车位。 由于停车位只能停放有限的几辆车,而且为了便于停车场的管理,为每个车位要分配一个固定的编号,不妨设为1、2、3、4、5(可利用数组的下标),分别表示停车位的1车位、2车位、3车位、4车位。5车位,针对这种情况使用一个顺序栈比较方便。 ②当某辆车要离开停车场的时候,比它后进停车位的车要为它让路,而且当它开走之后让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为了完成这项功能,再定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出开走请求的车开走后再从辅助栈的栈顶依次“弹出”到停车位中。对辅助栈也采用顺序栈。

数据结构课程设计停车场管理系统

实验二停车场管理 班级:A0712 学号:12 姓名:冷清淼成绩:__________ 指导教师签名:__________ 一、问题描述 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。 设计要求: 1.模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。 2.从终端读入汽车到达或离去的数据,每组数据包括三项: (1)是“到达”还是“离开”; (2)汽车牌照号码; (3)“到达”或“离开”的时刻。 3.与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。 二、算法说明 1.数据结构说明 (1)用到两个堆栈:一个为车场栈;另一个为临时栈temp typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar; /*模拟车场*/ (2)一个队列结构,存储便道车辆信息:

typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟便道*/ 2.算法说明 (1) 功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示 停车场系统车辆到达 车辆离开列表显示 3 2 1 图1 (2)以模块为单位分析算法 1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待。如图2。 车辆到达 停车场是否满 结束 进入停车场 进入便道 是 否 图2

数据结构停车场问题实验报告汇总

数据结构课程设计 ——停车场管理问题 姓名: 学号: 问题描述 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的

车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 二、实现要求 要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。 三、实现提示 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(‘A',,1,5)表示1号牌照车在5这个时刻到达,而(‘ D ',,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘ E ',0,0)时结束。本题可用栈和队列来实现。 四、需求分析 停车场采用栈式结构,停车场外的便道采用队列结构(即便道就是等候队列)。停车场的管理流程如 下 ①当车辆要进入停车场时,检查停车场是否已满,如果未满则车辆进栈(车辆进入停车场);如果停车场已满,则车辆进入等候队列(车辆进入便道等候)。 ②当车辆要求出栈时,该车到栈顶的那些车辆先弹出栈(在它之后进入的车辆必须先退出车场为它让路),再让该车出栈,其他车辆再按原次序进栈(进入车场)。当车辆出栈完毕后,检查等候队列(便道) 中是否有车,有车则从队列头取出一辆车压入栈中。

停车场管理系统实验报告汇总

华北水利水电学院数据结构实验报告 2011~2012学年第二学期2011级计算机专业 班级:**** 学号:***** 姓名:**** - 实验二栈和队列及其应用 一、实验目的: 1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。 2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。 二、实验内容: 1.链栈的建立、入栈、出栈操作。 2.环形队列的建立、入队、出队操作。 3.停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。 三、实验要求: 1.C/ C++完成算法设计和程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.写出算法设计小结和心得。 四、程序源代码: 1.#include #include typedef struct stnode { int data; stnode *next;

C++数据结构停车场管理

数据结构实验报告 实验题目:停车场管理 学生姓名: 班级: 学号: 问题描述 设有一个停车场,它是利用一个南北向的狭窄通道建成,北端封闭,大门在最南端。最先到达的汽车停放在最北端,后面到达的汽车从北至南依次顺序停放。停车场只能停放n 辆汽车。当停车场停满n辆车后,后面到达的汽车只能在门外的便道上等候。一旦有汽车开走,便道上等候的第一辆车就可以开入停车场停放。当停车场内某辆汽车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该车开出大门外,其他汽车再按原次序返回车场。每辆停放在车场内的汽车在离开时必须按它停放时间的长短交纳费用。 例题分析 每到达一辆汽车,先检查停车场栈是否已满,若未满则该车进入停车场停放(入栈操作),并将该车的车号和停放时刻记录在停车场栈的相应元素中,同时显示该车在停车场内的停放位置。反之,若停车场已满,则该车排到便道上等候的汽车队列最后(入队列操作),并将该车的车号信息记录在汽车队列的相应结点内,同时显示该车在便道上的停放位置。 若要取一辆汽车,则需依次进行下述操作:将阻挡在它后面的汽车退出(停车场栈的出栈操作),并将这些汽车临时存放在另一个辅助栈中(辅助栈的入栈操作);开走要取的汽车(停车场栈的出栈操作),并显示该车应交纳的费用;依次从辅助栈中开出汽车(辅助栈出栈操作),开回停车场中(停车场栈的入栈操作);这时停车场已有一个空车位,便道上等候的第一辆汽车则可以开进停车场内停放(汽车队列的出队列操作和停车场栈的入栈操作)。 程序源代码 #include #include #include #include #include #include #include

数据结构实验报告—停车场问题

《计算机软件技术基础》实验报告I—数据结构 实验二:停车场管理问题 一、问题描述 1.实验题目: 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端)。若停车场内已经停满 n辆车,那么后来的车只能在门外的便道上等候。一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。试为停车场编制按上述要求进行管理的模拟程序。 2.基本要求: 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入数据的序列进行模拟管理。每一组输入数据包括三个数据项:汽车的“到达”(‘A’表示)或“离去”(‘D’表示)信息、汽车标识(牌照号)以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或者便道上的停车位置;若是车辆离去,则输出汽车在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 3.测试数据: 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3, 20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。其中:(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,1,15)表示1号牌照车在15这个时刻离去。 二、需求分析

数据结构课程设计报告停车场管理系统

课程设计报告 课程名称数据结构课程设计 课题名称停车场管理系统 专业信息管理与信息系统 班级 09级1班 学号 200903110112 姓名洪俊斌 指导教师赵锦元、李峰、罗敬 2011年 1 月 9 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题停车场管理系统 专业班级信息管理0901班 学生姓名洪俊斌 学号200903110112 指导老师赵锦元、李峰、罗敬 审批 任务书下达日期2011 年1 月 3 日任务完成日期2011 年1 月20 日

一、设计内容与设计要求 1.设计内容: [问题描述] 设停车场只是一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出,还有一个等停的的狭长通道。汽车在停车场内按车辆的先后顺序依次排列,若车站内已停满汽车,则后来的汽车只能在门外的通道上等停,一旦停车场内有车开走,则排在通道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车站为它让路,待该车辆开出大门,为它让路的车辆再按原来次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。 [基本功能] (1)车辆成批入站。 当一个停车场刚开始投入运行的时候,会有很多车进来,因此,要设计一个函数来实现车辆批量进站。并要检测车辆的数目是否超过规定的最大容量,给出相关提示信息。 (2)单个车辆入站。 当系统正常投入运行后,会有零散的车辆进进出出,因此,设计一个函数实现单个车辆入站。 (3)车站内信息实时显示。 车站内信息包括两个部分:停车场内停放的车辆以及在外面通道上等停的车辆。 (4)车辆出站。 当停车场内车辆出站后,检查通道上是否有车等停,如果有,则要把排在最前面的车调入停车场内。

C语言停车场管理实验报告

设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 功能描述 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现 系统设计及实现 1.头文件及宏定义 #include #include #include #include #include #define ClearScreen() system( "cls" ) // 清空当前屏幕 #define setcolor() system("color 2f")//设置背景前景颜色 #define Pause( szPrompt ) printf( "%s", szPrompt ),getch() 2.时间和汽车信息结构体的定义(部分代码) typedef struct carinformation // 车辆信息 { char szRegistrationMark[64]; // 车牌号 char szArrivalTime[16]; // 到达时间 char szEntranceTime[16]; // 进入停车场(开始计费)时间 char szDepartureTime[16]; // 离开时间 } TCARINFORMATION, *LPTCARINFORMATION;

数据结构 停车场管理

实习报告 题目:停车场管理姓名:袁韬博学号:16030120021完成日期:2017.10.23 一、需求分析 1.本题目要求建立一个可指定长度的栈,和长度可变化的队列,以当作停车场和便道 的车的存放。 2.本题目要求在停车场的车离开时,便道的车按照先后顺序进入一辆,并开始于此时 记录时间。 3.在本题目之中在便道的停车不计费用,在此题中应判断在停车场还是在便道的信息。 4.本题目要求根据数据的第一位数据判断进入还是离开,根据要求输出信息。 5.程序执行命令为:1.存入车辆时输出停车信息2.车辆离开时输出停车时间和应缴纳 费用 3.输入‘E’时表示结束。 6.测试数据: n=2,m(每小时停车费用)=3,(A,1,5)(A,2,10)(D,1,15)(A,3,20)(A,4,25)(A,5,30) (D,2,35)(D,4,40)(E,0,0)其中A表示为Arrival(到达),D表示为Departure(离 开),E表示为End(结束)。 二、概要设计 1.设定栈的抽象数据类型定义 数据对象:D={a i|a i∈SStop,i=1,2,3,······,n} 数据关系:R={|a i∈D,i=1,2,3,······,n } 基本操作: initStack(&S,d) 操作结果:建立一个长度为d的空栈 Push(&S, &e, &d) 初始条件:栈已存在,长度为d 操作结果:如栈已满返回false,否则将e,压入栈中,返回true Pop(&S,e) 初始条件:栈已存在 操作结果:如栈为空返回false,否则弹栈入e,返回true 2.设定队列的抽象数据类型定义 数据对象:D={a i|a i∈SStop,i=1,2,3,······,n} 数据关系:R={|a i∈D,i=1,2,3,······,n } *SQTypeInit() 操作结果:建立一个空队列 InSQType(*q, &data) 初始条件:队列已存在 操作结果:将data压入队列之中 *OutSQType( *q) 初始条件:队列已存在 操作结果:弹出队列,返回其指针。 3.程序包含6个模块 1)主程序模块:包含栈与队列的对象建立,输入值的判断以及函数的实现 2)栈模块:实现停车场抽象数据类型 3)队列模块:实现便道抽象数据类型

停车场管理实验报告

HUNAN UNIVERSITY 课程实验报告 题目:停车场管理 学生姓名: 学生学号: 专业班级: 指导老师: 完成日期: 一.需求分析 1.输入形式 第一次输入一个正整数,代表停车场容量大小。然后输入三个值,分别为字符、正整数、正整数,中间用空格隔开,分别代表车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。其中字符必须为“A,D,E”三者之一。输入格式为:“A 1 5”、“D 1 15”和“E 0 0“。 当用户输入的字符不是ADE或者输入的不是正整数时,提示用户输入错误并重新输入 2.输出形式 若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 (注:本程序中默认停车一小时收费10元) 3.程序功能 本程序可通过用户输入的车辆信息,输出该车的停车位置或者停车时间及应缴费用 4.测试数据 请输入停车场容量:5 A 1 1 车停在停车场第 1 个位置 A 2 2 车停在停车场第 2 个位置 A 6 6 车停在停车场第 3 个位置

D 1 4 停车时间:3 缴纳费用:¥30 D 2 6 停车时间:3 缴纳费用:¥30 F C 19.5 输入有误,请重新输入 E 0 0 二.概要设计 1.抽象数据类型 将每辆车模拟成一个对象,每个对象具有车牌号时间等属性,所以定义一个Car类存储这些信息 class Car { public: int CarNumber;//车牌号码 int ArriveTime;//到达时间 int LeaveTime;//离开时间 } 使用栈模拟停车场,其ADT设计: ADT stack 数据对象:Car类 数据关系:线性关系 基本操作: void clear();//栈的初始化 bool push(const Car& item);//栈的插入操作 bool pop(Car& it);//栈的删除操作 bool topValue(Car& it)//栈的顶层元素 int length() const {return size};//栈的实际长度 使用队列模拟场外通道,其ADT设计如下: ADT Queue 数据对象:Car类 数据关系:线性关系 基本操作: void clear();//队列的初始化

数据结构实验二:停车场管理问题.doc

HUNAN UNIVERSITY 课程实习报告 题目:停车场管理问题 学生姓名 学生学号 专业班级 指导老师李晓鸿 完成日期2015年 11月 25日

一、需求分析 1.输入的形式的输入的范围: ①.选择功能: 1 停车 2 离开停车场 3 离开过道 ②.若输入1(停车),输入当前车牌号和当前的时间; 若输入 2(离开停车场),输入车票号和当前时间; 若输入 3(离开过道),输入车牌号。 2.输出的形式: ①.提示选择功能“ 1. 停车 2 离开停车场 3 离开过道”。 ②.若输入1(停车),并且输入当前车牌号和当前的时间后, 停入停车场,停车场内有n 辆车,过道上有m辆车等候” 车场已满,请在过道等候”。 若停车场未满,输出“成功; 若停车场满,输出“停 若输入 2(离开停车场),输入车票号和当前时间,输出“存车总计时间,收费 q 元,停车场内有 n 辆车,过道上有 m辆车等候”;如果进停车场和出停车场时间错误,输出“时间输入有误,请重新输入”;如果停车场没有此车,输出“车牌号有误,请重新输入”。 若输入 3(离开过道),输入车牌号,输出“此车已成功离开过道”; “停车过道为空”。 若无此车,输出若输入其他,则提示选择功能“ 1. 停车2 离开停车场 3 离开过道”。 3.程序所能达到的功能: 有一个可以停放n 辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放( 最先到达的第一辆车放在停车场的 最里面 ) 。如果停车场已放满n 辆车,则后来的车辆只能在停车场大门外的便道上等待,一 旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走, 在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道 上等待的车辆的次序。

数据结构课程设计停车场管理系统

停车场管理 专业班级: XXXXXXX 学号: XXXXXXX 姓名: XXXXXXX 指导教师: XXXXXXX 课程设计时间: XXXXXXX

计算机专业数据结构课程设计任务书 学生姓名XXXXXX专业班级XXXXXX学号XXXXXX 题目停车场管理系统 课题性质工程设计课题来源XXXXXX 指导教师XXXXXX同组姓名XXXXXX 主要内容一、设计的任务及主要技术参数 1编写停车场管理系统。 2主要技术:C语言中的模块化程序设计;数据结构中的栈、队列 二、设计任务 1每组成员分工合作完成一个课程设计,每个人的任务不同; 2要求利用结构化程序设计方法以及C的编程思想来完成系统的设计; 3要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可; 4要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现; 5要求对各个功能模块进行算法设计,可用流程图表示算法思想; 6要求编程实现系统功能,并进行调试与测试,使系统能正常运行; 7要求源程序书写格式规范,可读性好,进行必要的注释,采用缩进格式; 8撰写课程设计说明书 三、设计工作量 1根据问题描述,分析系统功能,划分功能模块,完成程序的数据设计,确定各模块函数名称; 2程序的函数设计 3函数编码及调试 4程序整体调试 5完成设计文档和课程设计说明书

任务要求 1、系统应具备的功能:(1)停车场的车位管理(2)停车场的停车管理(3)停车场的记费管理 2、数据结构设计 3、主要算法设计 4、编程及上机实现 5、撰写课程设计报告 参考文献 1.《数据结构(C语言版)》,严蔚敏、吴伟民,清华大学出版社,1997. 2.谭浩强. C语言程序设计(第三版)[M]. 北京:清华大学出版社,2005 3.廖雷、罗代忠. C语言程序设计基础实验教程[M]. 北京:高等教育出版社,2005 4.谭浩强. C程序设计解题与上机指导(第三版) [M]. 北京:清华大学出版社,2005 . 审查意见指导教师签字: 教研室主任签字:年月日实验题目:停车场管理系统 一、要解决的问题 停车场是一条可以停放n辆车的狭窄通道,且只有一个大门汽车停放安到达时间的先后依次由北向南排列(大门在最南端,最先到达的第一辆车停在最北端)若停车场已经停满n辆车,后来的汽车在便道上等候,一旦有车开走,排在便道上的第一辆车可以开入;当停车场的某辆车要离开时,停在他后面的车要先后退为他让路,等它开出后其他车在按照原次序开入车场,每两停在车场的车要安时间长短缴费。要求:以栈模拟停车场,以队列车场外的便道,按照从终端输入的数据序列进行模拟管理。每一组数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码、以及到达或离去

数据结构c语言版课程设计停车场管理系统

课程设计:停车场 c语言版本的数据结构课程设计,要求用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统

停车场停满车后车会停在便道上面 下面附上源码,vc:(下编译 #include //#include //malloc #include //获取系统时间所用函数#include //getch() #include //设置光标信息 mallco #define MaxSize 5 /*定义停车场栈长度*/ #define PRICE 0.05 /*每车每分钟收费值*/

#define BASEPRICE 0.5 //基础停车费 #define Esc 27 //退出系统 #define Exit 3 //结束对话 #define Stop 1 //停车 #define Drive 2 //取车 int jx=0,jy=32; //全局变量日志打印位置 typedef struct {int hour; int minute; }Time,*PTime; /*时间结点*/ typedef struct /*定义栈元素的类型即车辆信息结点*/ {int num ; /*车牌号*/ Time arrtime; /*到达时刻或离区时刻*/ }CarNode; typedef struct /*定义栈,模拟停车场*/ {CarNode stack[MaxSize]; int top; }SqStackCar; typedef struct node /*定义队列结点的类型*/ {int num; /*车牌号*/ struct node *next; }QueueNode; typedef struct /*定义队列,模拟便道*/ {QueueNode *front,*rear; }LinkQueueCar; /*函数声明*/ PTime get_time(); CarNode getcarInfo(); void qingping(int a); void gotoxy(int x,int y); void printlog(Time t,int n,int io,char ab,int po,double f); void printstop(int a,int num,int x0,int y0); void printleave(int a,int po,int num); /*初始化栈*/ void InitSeqStack(SqStackCar *s) { s->top=-1; } /* push入站函数 */ int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈

数据结构—停车场管理系统

理工大学华夏学院 课程设计报告书 课程名称:《数据结构与算法分析》 课程设计 实训名称:停车场管理系统 姓名:航 院(系):信息工程系 专业班级:软件1141 学号:10212814127 指导教师:云华 成绩:

时间:2015年6月29日至2015年7月3日 实训任务书 一、题目 1.停车场管理 二、实训的性质和任务 数据结构实训是在完成理论课程学习之后安排的综合实践训练,要求学生能根据数据结构中所讲到的各种数据类型以及它们顺序和链式存储,在具体的应用中能运用并实现各种数据的各种不同操作。通过一的综合实训,使学生加深对如将逻辑关系的数据按一定的存储式存储在计算机。并为以后的编程打好基础。 三、实训的基本要求 1、熟悉各种数据类型及它们在计算机中的存储式; 2、熟悉各种数据类型的基本操作,各基本操作的实现。 3、能综合运用各种数据类型实现一些具体的问题。 四、考核指标及成绩评定 实训成绩由下面构成: 平时成绩(10%)+作品(70%)+实训报告(20%)=总评成绩 作品成绩评定标准: 1、全部完成90-100 2、主要功能完成70-90 3、部分功能完成60-70 4、少部分完成40-60 5、几乎没做0-40 完成期限:年月日 指导教师签章: 专业负责人签章: 教学院长签章

年月日 一、需求说明 仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;同时还将巩固这两种结构的构造法,接触较复杂问题的递归算法设计。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车离去;则输出汽车在停车场停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。 设停车场只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

数据结构实验报告模拟停车场管理(含代码)

模拟停车场管理 班级:物联网姓名:XXX 学号:XXXXXXX 日期:4月9日 一、需求分析 1、程序的功能描述 按照从终端输入的数据序列进行模拟管理。 1)狭道停车用栈来实现,并且用的顺序栈,等车位的便道用队列来实现,并用链式存储。 2)每一组输入信息包含三个数据项,汽车的“到达”和“离去”的信息,汽车牌照号码,汽车“到达”或“离去”的时刻。 3)对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出车辆在停车场内或便道上的停车位置;若是车子离去,则输出车辆在停车场内停留的时间和缴纳的费用。(假设在便道等车的时间不收费) 4)选作内容:(1)便道也是要收费的,仅仅比狭道收费便宜点。 (2)狭道上的车可以直接开走。 2、输入/输出的要求 首先选择操作的模块,根据提示输入车牌和到达时间,程序会告知是否停满或者停车车位。车牌为10个字符以内的字符串,时间的输入中间有冒号把时分隔开。 3、测试数据 1 苏D543 1:10 1 苏Q123 1:20 1 苏D145 1:30 二、概要设计 1、本程序所用的抽象数据类型的定义 typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar;//狭道的堆栈顺序存储

typedef struct car{ CarNode *data; struct car *next; }QueueNode;//队列的链式存储 typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar;//便道上等候的队列定义 2、主模块的流程及各子模块的主要功能 ○1车辆到达:int Arrival(SeqStackCar *Enter,LinkQueueCar *W)首先定义一个栈和队列的结构体指针为:*p , *t 。然后申请一个车辆信息的内存空间,并把它赋给栈指针。车辆到达时就输入车牌号,并通过if(Enter->toptop>0) 确保栈不空,然后用个while(1) 确保输入的车辆离开位置的合法性。如果不和法,显示输入有误,要重新输入。通过while(Enter->top>room) 判断离开车辆的位置,如果是中间位置,就要再用一个栈前面临时开出来的车,等要开出的车开出后,再把临时栈的车看进车场内,并要调用PRINT(p,room); 这个函数计算显示费用。然后还要用if((W->head!=W->rear)&&Enter->top

数据结构上机--停车场管理问题

实习指导 [实习题目]: 停车场管理。 [实习内容]: 首先,实现栈和队列的基本操作,在此基础上,实现停车场管理。 停车场管理问题描述:设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其它车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。 试编写程序,模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。 从终端读入汽车到达或离去的数据,每组数据包括三项: ①是“到达”还是“离去”; ②汽车牌照号码; ③“到达”或“离去”的时刻。 与每组输入信息相应的输出信息为: 如果是到达的车辆,则输出其在停车场中或便道上的位置; 如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。 (提示:需另设一个栈,临时停放为让路而从车场退出的车。) [实习目的]: 通过实习,熟悉栈和队列的基本特点,掌握利用栈和队列解决具体问题的方法。 [实习步骤]: 1.实现顺序栈的基本操作 ●基本思路 首先实现一个整型顺序栈的初始化、判栈空、进栈、出栈等基本操作,并在主程序中调用这些操作。 ●基本框架 #include #define TRUE 1 #define FALSE 0 #define Stack_Size 50 typedef int StackElementType; typedef struct

停车场管理实验报告

HUNAN UNIVERSITY 课程实验报告 题目:停车场管理 学生姓名: 学生学号: 专业班级: 指导老师: 完成日期:

一.需求分析 1.输入形式 第一次输入一个正整数,代表停车场容量大小。然后输入三个值,分别为字符、正整数、正整数,中间用空格隔开,分别代表车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。其中字符必须为“A,D,E”三者之一。输入格式为:“A 1 5”、“D 1 15”和“E 0 0“。 当用户输入的字符不是ADE或者输入的不是正整数时,提示用户输入错误并重新输入 2.输出形式 若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 (注:本程序中默认停车一小时收费10元) 3.程序功能 本程序可通过用户输入的车辆信息,输出该车的停车位置或者停车时间及应缴费用 4.测试数据 请输入停车场容量:5 A 1 1 车停在停车场第 1 个位置 A 2 2 车停在停车场第 2 个位置 A 6 6 车停在停车场第 3 个位置 D 1 4 停车时间:3 缴纳费用:¥30 D 2 6 停车时间:3 缴纳费用:¥30 F C 19.5 输入有误,请重新输入 E 0 0 二.概要设计 1.抽象数据类型 将每辆车模拟成一个对象,每个对象具有车牌号时间等属性,所以定义一个Car类存储这些信息 class Car { public: int CarNumber;//车牌号码

int ArriveTime;//到达时间 int LeaveTime;//离开时间 } 使用栈模拟停车场,其ADT设计: ADT stack 数据对象:Car类 数据关系:线性关系 基本操作: void clear();//栈的初始化 bool push(const Car& item);//栈的插入操作 bool pop(Car& it);//栈的删除操作 bool topValue(Car& it)//栈的顶层元素 int length() const {return size};//栈的实际长度 使用队列模拟场外通道,其ADT设计如下: ADT Queue 数据对象:Car类 数据关系:线性关系 基本操作: void clear();//队列的初始化 bool enqueue(const Car& it);//入队 bool dequeue(Car& it);//出队 int length() const {return size;};//队列的长度 2.算法基本思想 ①在该程序中,对停车场和场外通中每辆车停车的编号而言,他们有 唯一的第一个元素和最后一个元素,而且除第一个元素以外的每个元素都有唯一的后继,除最后一个元素以外的每个元素都有唯一的前驱。因此这些元素具有线性关系。而且,对于停车场里面的汽车,他们逻辑次序是“先进后出,后进先出“的,且只在表头作插入和删除,所以可以使用栈来模拟停车场。而在场外通道中的汽车,他们是”先进先出”的,在一端插入另一端删除操作,所以可以用队列来模拟场外通道。当汽车离开时,在它之后进入的车辆必须先退出再按原次序进入停车场,所以需要定义另外一个临时栈存储这些元素。(本算法按用户输入的顺序进行车辆的停

数据结构停车场问题

一、需求分析 1.车辆目前情况,用户通过键盘输入,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间(离开时间减去停在停车场的时间)和应交纳的费用(在便道上停留的时间不收费)。 2.依次输入一系列数据项(3个数据:第一个字符数据A或D表示车辆的到达或离开,第二整形数据表示车辆的车牌号码,第三个整形数据表示汽车到达或离去的时间),要求同一辆汽车到达的时间比离开的时间早。 3.测试数据 设停车场能容纳3辆车。 请输入车辆目前情况:A ,1,5 1车辆停入停车场1号。 请输入车辆目前情况:A ,2,6 1车辆停入停车场1号 2车辆停入停车场2号。 请输入车辆目前情况:A ,3,5 输入时间错误哦! 请输入车辆目前情况:A ,3,6 1车辆停入停车场1号 2车辆停入停车场2号。 3车辆停入停车场3号。 请输入车辆目前情况:A ,4,6 1车辆停入停车场1号。 2车辆停入停车场2号。 3车辆停入停车场3号。 4车辆在便道1号。 停车场已满。4车辆已放在便道。 请输入车辆目前情况:D ,1,7 1车辆已离开。时间5,收费10块。 2车辆停入停车场1号。 3车辆停入停车场2号。 4车辆停入停车场3号。 请输入车辆目前情况:E ,0,0 程序结束,感谢使用本程序哦。 本程序其他错误处理,没有设置处理。 二、概要设计抽象数据类型 基本操作对象是汽车类,包含来去信息,车牌号以及到达时间; Class Car//车辆信息 { Public:

数据结构—停车场管理系统

实训报告 实训名称:停车场管理 姓名: nnn 院(系):软件学院 专业班级: 学号: 指导教师: 成绩: 时间:2010 年 6 月 21 日至 2010 年 6 月 25 日

实训任务书 一、题目 1.停车场管理 2.员工管理系统 3.校园导游程序 4.编写一个杂货店排队模拟程序。 5.猜动物 6.硬币游戏 7.编写程序帮助旅游者找出从一个城市到另一个城市 的最短旅行路径。 8.设计哈希表实现电话号码查询系统。 9.赫夫曼编码及译码 二、实训的性质和任务 数据结构实训是在完成理论课程学习之后安排的综合实践训练,要求学生能根据数据结构中所讲到的各种数据类型以及它们顺序和链式存储,在具体的应用中能运用并实现各种数据的各种不同操作。通过一周的综合实训,使学生加深对如何将逻辑关系的数据按一定的存储方式存储在计算机内。并为以后的编程打好基础。 三、实训的基本要求 1、熟悉各种数据类型及它们在计算机中的存储方式; 2、熟悉各种数据类型的基本操作,各基本操作的实现。 3、能综合运用各种数据类型实现一些具体的问题。 四、实训内容及要求

五、考核指标及成绩评定 实训成绩由下面构成: 平时成绩(10%)+作品(70%)+实训报告(20%)=总评成绩作品成绩评定标准: 1、全部完成90-100 2、主要功能完成70-90 3、部分功能完成60-70 4、少部分完成40-60 5、几乎没做0-40 完成期限:年月日指导教师签章: 专业负责人签章: 教学院长签章 年月日

一、需求说明 仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;同时还将巩固这两种结构的构造方法,接触较复杂问题的递归算法设计。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 二、功能描述 停车场管理系统主要有以下几个功能: 1、汽车进入车场 添加车辆信息:车牌号、进车时间,如果停车场已满,则将车辆停入临时便道内。 2、汽车退出车场 根据退出车辆的车牌号,进行优先退出,再根据退出时间计算停车费用。并将临时便道中的车辆停入停车场内。 3、退出系统 三、系统设计及实现 软件规格要求合理,基于C语言程序设计,在有限空间达到效果最优化。3.1设计要求 用C语言实现“停车场管理系统”。 3.2系统功能 (1)系统启动后,出现用户界面,人机交互。

相关文档
最新文档