第一范文网 - 专业文章范例文档资料分享平台

数据结构-停车场

来源:用户分享 时间:2025/10/12 17:12:45 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

一.实验目的:

了解栈和队列的逻辑结构和基本操作,实现栈和队列的基本功能。

通过实验进一步理解栈和队列的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 二.实验内容:

题目:模拟停车厂管理 问题描述:

设停车厂只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门后,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走。

基本要求:

以栈模拟停车场,以队列模拟车场外的便道,按照从终端输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出车辆在停车场内或便道上的停车位置;若是车辆离去,则输出车辆在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。栈以顺序结构出现,队列以链表结构实现。

测试数据:

(1)连续有7辆车到来,牌照号分别为JF001、JF002、JF003、JF004、、JF005、JF006、JF007,前5辆车应该进入停车位1-5车位,第6、7辆车应停入便道的1、2位置上。

(2)(1)中的情况发生后,让牌照号为JF003的汽车从停车厂开走,应显示JF005、JF004的让路动作和JF006从便道到停车位上的动作。

(3)随时检查停车位和便道的状态,不应该出现停车位有空位而便道上还有车的情况。

(4)程序容错性的测试,当按键输入错误的时候是否有错误提示给用户指导用户正确操作,并作出相应处理保证程序健康的运行。 三. 实验方案(程序设计说明)

(一) 算法设计思路

1. 车辆进入; 进入车库(栈),若车库已满,进入便道(队列); 2. 车辆离开;

输入要离开车辆信息,从栈顶开始查找,若信息不对应,把此车放入临时车库(临时栈)中;若相等,就输出车辆离开信息; 3. 重新把车库填满;

把临时车库中的车辆重新放入车库,若便道中存在车辆,将便道中的车辆放入车库中一辆; 4. 显示车库车辆信息; 遍历栈(顺序栈),输出车辆信息; 5. 显示便道车辆信息; 遍历队列(链队),输出车辆信息; 6. 用菜单贯穿整个程序的实现。

(二)流程图

1

开始 菜单显示 输入要进行操作的序号 3.车库车辆信息 1.车辆进入 0.退出 2.车辆离开 4.便道车辆信息 输出信息 输入车牌号 从车库底层开始查找 Y 栈满? 输出信息 N 信息符合? N 放入便道 Y 放入栈中 top++; 输出信息 存放在临时栈中 top++ 临时栈中车辆放入车库 便道空? N Y 往车库中放一辆

结束 2

(三)界面设计说明 1.显示主菜单

1、车辆进入 2、车辆离开 3、车库车辆信息 4、便道车辆信息 0、退出

2.根据选择进入相应界面 1、车辆进入 输入车牌号、进入时间进行入库操作 2、车辆离开

手动输入车牌号码进行查找,并计算费用

3、车库车辆信息

显示当前车库中所有车辆的信息 4、便道车辆信息

显示当前便道中所有车辆的信息

0、退出

(四)使用模块及变量的说明 p->当前车库(顺序栈) q->临时车库(顺序栈) s->便道(链队)

四. 实验步骤或程序(经调试后正确的源程序)#include \#include \#include \#include \#define N 5 using namespace std;

typedef struct news

3

{ string number; //车牌号 string place; //停放位置

double intime; //进入时间

}News, *Carnews;

typedef struct //顺序栈 { News Car[N];

int top;

}SeqStack;

typedef struct node //链队 { News Car;

struct node *next;

}QNode; typedef struct {

QNode *front, *rear;

}LQueue;

void ComeNew2(LQueue *q); void Menu() {

4

搜索更多关于: 数据结构-停车场 的文档
数据结构-停车场.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5milb6elm252amw9lhr375cln2z0hr008co_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top