数据结构停车场实验报告.docVIP

  • 661
  • 0
  • 约 15页
  • 2016-11-26 发布于重庆
  • 举报
数据结构停车场实验报告

工商学院 数据结构 实验报告 年级 2012 学号 2012007554 姓名 刘怡然 成绩 专业 电气 实验地点 B3-401 指导教师 许文强 实验项目 模拟停车场管理程序的设计与实现 实验日期 2013.11.7 一、实验目的 本实验的目的是进一步理解栈和队列的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 二、实验问题描述 设停车厂只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车厂模拟管理程序。为了以下描述的方便,停车厂的停车场用“停车位”进行叙述,停车厂的便道用“便道”进行叙述。 三、实验步骤 1、实验问题分析 使用两个栈和一个队列。分别为停车栈和辅助栈,队列为便道,当有车来时先进入停车场,没有空位时不能进入,停入便道。当停车场有车要开出时,判断它的后面有没有车,没有直接开出,否则将后面的车挪入辅助栈将目标车开出。再将辅助栈车按次序挪回停车栈。此时判断便道上是否有车等待,有就将便道上的车按先到先出的次序停入停车场。 功能(函数)设计 Void Main(); 菜单 stopping *init_stopping(); 初始化停车栈 buffer *init_buff(); 初始化辅助栈 pavement *init_pavement(); 初始化便道 int car_come(stopping *s,pavement *q); 有来车 int car_leave(int pos,stopping *s,buffer *b,pavement *q); 有车开走 int stop_to_buff(int pos,stopping *s,buffer *b); 停车栈挪向辅助栈 int buff_to_stop(stopping *s,buffer *b); 辅助栈挪向停车栈 int pave_to_stop(stopping *s,pavement *q); 便道队列挪向停车栈 int car_disp(stopping *s,pavement *q); 显示停车情况 void Now(stopping *s,pavement *q); 实时统计停车数量 实验结果(程序)及分析 实验主要代码 car.h #pragma once typedef struct { char license_plate[10]; //车牌号 char state; //状态 }car; Buffer.h #includecar.h #includestopping.h typedef struct { car bufferx[MAX_STOP]; /*各汽车信息的存储空间*/ int top; /*用来指示栈顶位置的静态指针*/ }buffer; Pavement.h #includecar.h #define MAX_PAVE 100 /*便道不限制停放车辆的数目,设为足够大*/ typedef struct { car pave[MAX_PAVE]; /*各汽车信息的存储空间*/ int front,rear; /*用来指示队头和队尾位置的静态指针*/ }pavement; Stopping.h #pragma once #includecar.h #define MAX_STOP 5 typedef struct { car stop[MAX_STOP]; /*各汽车信息的存储空间*/ int top; /*用来指示栈顶位置的静态指针*/ }stopping; Main.cpp #inclu

文档评论(0)

1亿VIP精品文档

相关文档