
#include using namespace std; c定义停车场最大停车数 const int MAX_PLATE=10; //定义车牌号最大长度 //数据结构定义 //定义存储汽车信息的结构体 typedef struct { 汽车牌照号码,定义为一个字符指针类型 汽车当前状态,字符p表示停放在停车位上,字符s表示停放在便道上,每辆车的初始状态用字符i来进行表示 }CAR; //定义模拟停车场的栈结构 typedef struct { 汽车信息的存储空间 int top; //用来指示栈顶位置的静态指针 }SeqStack; //定义模拟便道的队列结构 typedef struct node { 汽车信息的存储空问 struct node *next; //用来指示队列位置的动态指针 }链队列节点的类型 //定义链队列的收尾指针 typedef struct { }将头尾指针封装在一起的链队 //函数声明 i判队空 int LeaveCheck(SeqStack parking,char *license_plate); //检查离开的车是否在停车场中 i判队长度 int Out_LQueue(LQueue *&sidewalk,char *license_plate); //出队操作 i判断栈是否为空 i判断栈是否为满 i出栈操作 int StackTop(SeqStack parking, char *license_plate); //取栈项元素 void Car_come(SeqStack &parking,LQueue *&sidewalk); //有车到来时的操作 void Car_leave(SeqStack &parking,LQueue *&sidewalk); //有车离开的操作 v显示停车场内的所有信息调试时用 v初始化栈 v初始化队列 void In_LQueue(LQueue *&sidewalk, char *license_plate); //进队操作 v检验输入的车牌是否合法 void StackPush(SeqStack &parking,char *license_plate); //进栈操作 void main() { 定义变量 定义一个变量判断是否退出 初始化一个为空的停乍场 初始化一个为空的便道 运行界面及功能选择 停车场模拟管理系统 有车到来时请按[C]键"< 请选择操作:"; 请正确输入选项!"; 选择不正确!请重新选择"< } //有车到来时的操作 void Car_come(SeqStack &parking, LQueue *&sidewalk) { //定义变量 请输入车辆的车牌号码:"; 判断停车场是否已满,满则进入便道,不满进入停车场 进入便道 停车场已满清在便道等候,您的位置为"< 请进入停车场中的"< 有车离开时的操作 void Car_leave(SeqStack &parking, LQueue *&sidewalk) { //定义变量 定义临时停车场 要离开的车牌号 存放从停车场中读出来的车牌信息 初始化临时停车场 判断停车场中是否有车 当前停车场中没有车"< 请输入要离开的车牌照:"; 当前停车场中有"< 车在停车场中 您的车在 "< 牌照为"< 出栈 牌照为"< 将临时停车场巾的车停回停车场 牌照为"< 判断车离开前停车场是否停满 如果停满则判断便道上是否有车 便道中有车则从便道中停入停车场 出队 入栈 在便道中牌照为"< 车不在停车场中 您的车不在停车场中!"< } //初始化顺序栈 void InitStack(SeqStack &parking) { } int StackEmpty(SeqStack parking) { } //判栈满 int StackFull(SeqStack parking) { if(parking.top == MAX_STOP-1) return 1; else return 0; } //入栈 void StackPush(SeqStack &parking , char *license_plate ) { } //出栈返回栈顶指针 int StackPop(SeqStack &parking) { } int StackTop(SeqStack parking, char *license_plate ) { } //显示所有 void Display(SeqStack parking) { 停车场为空"< 车牌号为:"< } //初始化队列 void InitList(LQueue *&sidewalk) { } //入队 void In_LQueue(LQueue *&sidewalk,char *license_plate) { 为新节点开辟新空问 将数据写入节点 写入停车信息 队空则创建第一个节点 队非空插入队尾 } //判队空 int Empty_LQueue(LQueue *q) { } //判队长度返回队长 int QueueLength(LQueue *q) { } //出队成功返回l队空返回0 int Out_LQueue(LQueue *&sidewalk,char *license_plate) { 如果队空返回0 取出队头元素 队中只有一个元素 删除元素 队头指针后移 释放指针 } //检查离开的车是否在停车场中返同车在停车场中位置不在则返同0 int LeaveCheck(SeqStack parking,char *license_plate) { 定义变量记录当前车在停车场中位置 查找离开车所在位置 } //检验输入的车牌是否合法 void Input_Check(char *license_plate) { 输入有误,请重新输入"; }
