/**
* 实验题目:
* 停车场管理程序
* 实验内容:
* 设停车场内只有一个可停放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; // 定义循环队列类型
/*--------------------------------