停车场管理程序

这是一个使用栈和队列模拟的停车场管理系统程序。系统包括一个可停放n辆汽车的停车场和一个可容纳m辆汽车的候车场。车辆按照到达时间顺序停放,离开时需要按停留时间支付费用。程序通过用户输入的指令进行操作,包括车辆到达、离开、查看停车场和候车场状态,以及退出系统。

/**
*    实验题目:
*        停车场管理程序
*     实验内容:
*         设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出.
*     汽车在停车场内按车辆到达时间的先后顺序,依次由南向北排列(大门在最北端,最
*     先到达的第一辆车停放在车场的最南端),若车场内已停满n辆车,则后来的汽车只能
*     在门外的便道即候车场上等候,一旦有车开走,则排在便道上的第一辆车即可开入;
*     当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车
*     开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时
*     必须按它停留的时间长短缴纳费用.整个停车场示意图如图所示:
*/


/**
*    分析:
*         以栈(后进先出)模拟停车场,以队列(先进先出)模拟车场外达到便道,按照从终端读入
*     的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:汽车到达用1表示或
*     离开用2表示的信息,汽车牌照号码以及到达或离去的时刻.对每一组输入数据进行操作
*     后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的位置;若是车辆离去,
*     则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费).栈以
*     顺序结构实现,队列以顺序循环结构实现.
*         还需设一个临时栈,用于临时停放为要给离去的汽车让路而从停车场退出来的汽车,也用
*     顺序结构来实现.
*         用户输入的命令:
*     1汽车到达
*     2汽车离去
*      3输出停车场中的所有汽车牌号
*     4输出候车场中的所有汽车牌号
*     5退出系统运行
*/

#include <stdio.h>
#include <malloc.h>

#define N    3                                        // 停车场内最多的停车数
#define M    4                                        // 候车场内最多的停车数
#define Price    2                                    // 每单位时间停车费用

typedef struct
{
    int CarNo[N];                                    // 车牌号
    int CarTime[N];                                    // 进场时间
    int top;                                        // 栈指针
}SqStack;                                            // 定义顺序栈类型

typedef struct
{
    int CarNo[M];                                    // 车牌号
    int front;                                        // 队头指针
    int rear;                                        // 队尾指针
}SqQueue;                                            // 定义循环队列类型

/*-------------------------------------以下为顺序栈的基本运算算法----------------------------------*/
void InitStack

简单的车位管理程序 随着家庭购买汽车的增加,停车场车位紧张的问题越来越突出。请根据题目要求完成简单的车位管理程序。 1.停车场有若干停车位(为说明问题,假定为3个),每个位置可以存放不同种类的的汽车,包括卡车Truck,客车Carriage和小轿车Car,但同一时刻一个位置只能存放0或1辆汽车。 2.管理系统模拟实际车辆停车的情况:新来车辆时如果有空位,按顺序为该车分配停车位; 车辆开走时,交纳相应停车费;统计各类车辆的数量。 3.定义描述停车场的类Park,其中有3个位置用于存放各类车辆。 4.定义基类Automobile,至少包括纯虚函数Pay用于显示车辆信息并交纳相应停车费。 5.定义派生类Truck,Carriage和Car,这些车辆除了拥有车牌号(字符串)、车辆已使用年数(整数)之外, Truck还拥有载重量(浮点数,单位吨)属性,Carriage还拥有乘坐人数(整数,单位人)属性,Car还拥有排气量(浮点数,单位L)属性。具体实现上述纯虚函数Pay,显示每类车辆的相应信息,并给出计价提示,其中Truck收费2元/小时,Carriage收费1.5元/小时,Car收费1元/小时。 6.重载输入“>>”操作符,使得可以通过cin直接读入每类车辆的相应信息。 7.编写main函数,测试上述所要求的各种功能,即根据菜单命令为新来车辆分配停车位、开走车辆(输入车位编号)时付费、显示停车场中各类车辆的数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值