C语言之停车场

本文介绍了使用C语言设计一个停车场管理系统的过程,系统包括停放队列、让路栈和等候队列三个数据结构。当停车场满时,车辆会停在等候队列中,一旦有车离开,等候队列中的第一辆车会进入。在车辆离开时,因通道狭窄,其前车需退出后再依次进入。
摘要由CSDN通过智能技术生成

问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它前面的车要先退出,待它走后在依次进入。

 基本功能要求:

(1) 建立三个数据结构分别是:停放队列、让路栈、等候队列。

(2) 输入数据模拟管理过程,数据(入或出,车号)。

//头函数(一些声明和宏定义)
#ifndef __1PARK_H__
#define __1PARK_H__

#define SIZE 10

#define FALSE 0
#define TRUE  1


typedef struct _information
{
	long int time;
	char name[10];
	int order;
	char platenum[10];
	
}Mes;
//停车队列
typedef struct _queue
{
	struct _information data[SIZE];
	int front;     // 指向队头的下标
	int rear;      // 指向队尾的下标
}Queue;

// 置空队
int InitQueue (Queue *q);  

// 判队空否
int QueueEmpty (Queue *q);  

// 判队满否       
int QueueFull (Queue *q);      

// 进队  
int EnQueue (Queue *q, Mes *data);  

int EnQueue2 (Queue *q, Mes *data);   

// 出队  
int DeQueue (Queue *q);


//等候队列
typedef struct _node
{
	struct _information data;
	struct _node *next;
}Node;

typedef struct _linkqueue
{
	Node *front;
	Node *rear;
}LinkQueue;

LinkQueue* Create_Queue();

int LQueueEmpty (LinkQueue *lq);   

// 进队
int EnLQueue (LinkQueue *lq, Mes *data);   

// 出队
int DeLQueue (LinkQueue *lq, Mes *data);

// 取队头
int GetLFront (LinkQueue *lq, Mes *data);

int Destroy_Queue (LinkQueue *lq);

//让路栈
typedef struct _stack
{
	struct _information data[SIZE];    // 栈数组
	int  top;                // 栈顶元素下标
}Stack;

// 置空栈
int InitStack (Stack *s); 		

// 判栈是否空栈
int StackEmpty (Stack *s); 		

// 进栈
int Push (Stack *s, Mes *data);	

// 出栈
int Pop (Stack *s); 	

// 取栈顶
int GetTop (Stack *s, Mes *data);

//车的离开
void Carleave(Queue *q, Stack *s, LinkQueue *lq);

//打印函数
void Display(Queue *q, LinkQueue *lq);

//界面函数
void interface();

#endif //__1PARK_H__

//停车及主要界面文件
#include "1park.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值