• 大小: 10KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: C/C++
  • 标签:   队列  停车场  

资源简介

C语言实现停车场管理系统,用栈和队列等模拟~~~~~~~~~

资源截图

代码片段和文件信息

//zhao.h文件
*****************************************
#include 
#include 
#include 
#include 
#include 

// 清空当前屏幕
#define ClearScreen()  system( “cls“ )

// 显示字符串 szPrompt 并等待用户按下任意键
#define Pause( szPrompt ) printf( “%s“ szPrompt )getch()

typedef struct carinformation    // 车辆信息
{
 char szRegistrationMark[64];   // 车牌号
 char szArrivalTime[16];    // 到达时间
 char szEntranceTime[16];   // 进入停车场(开始计费)时间
 char szDepartureTime[16];   // 离开时间
} TCARINFORMATION *LPTCARINFORMATION;


typedef struct carstack
{
 LPTCARINFORMATION lpCarInformation;  // 车辆信息  
 int nTop;     // 栈顶元素下标
 int nStackSize;     // 栈容量
} TCARSTACK *LPTCARSTACK;


// 初始化栈 lpCarStack 将其容量设置为 nSize
void InitStack( LPTCARSTACK &lpCarStack int nSize )
{
 lpCarStack = ( LPTCARSTACK ) malloc( sizeof ( TCARSTACK ) );
 lpCarStack->lpCarInformation = ( LPTCARINFORMATION ) malloc(
  nSize * sizeof ( TCARINFORMATION )
  );
 lpCarStack->nTop = -1;
 lpCarStack->nStackSize = nSize;
}


// 车辆信息 carinfo 入栈 lpCarStack
void Push( LPTCARSTACK &lpCarStack TCARINFORMATION carinfo )
{
 lpCarStack->nTop++;
 lpCarStack->lpCarInformation[lpCarStack->nTop] = carinfo;
}


// 车辆信息从栈 lpCarStack 中弹出并存入 carinfo
void Pop( LPTCARSTACK &lpCarStack TCARINFORMATION &carinfo )
{
 carinfo = lpCarStack->lpCarInformation[lpCarStack->nTop];
 lpCarStack->nTop--;
}


// 若栈 lpCarstack 空返回 TRUE;否则返回 FALSE
BOOL IsStackEmpty( LPTCARSTACK lpCarStack )
{
 return lpCarStack->nTop == -1;
}


// 若栈 lpStackFull 满返回 TRUE;否则返回 FALSE
BOOL IsStackFull( LPTCARSTACK lpCarStack )
{
 return lpCarStack->nTop == ( lpCarStack->nStackSize - 1 );
}


// 销毁栈 lpCarStack将指针 lpCarStack 置为 NULL
void DestroyStack( LPTCARSTACK &lpCarStack )
{
 free( lpCarStack->lpCarInformation );
 free( lpCarStack );
 lpCarStack = NULL;
}


typedef struct carnode     // 链队结点信息
{
 TCARINFORMATION carinfo;   // 车辆信息
 struct carnode *lpNext;    // 指向下一个元素的指针
} TCARNODE *LPTCARNODE;


typedef struct carqueue     // 链队
{
 LPTCARNODE lpHead;    // 头结点
 LPTCARNODE lpRear;    // 指向当前队尾的指针
 int nEffectiveSize;    // 当前队中元素个数
} TCARQUEUE *LPTCARQUEUE;


// 初始化链队 lpCarQueue
void InitQueue( LPTCARQUEUE &lpCarQueue )
{
 lpCarQueue = ( LPTCARQUEUE ) malloc( sizeof( TCARQUEUE ) );
 lpCarQueue->lpHead = ( LPTCARNODE) malloc( sizeof( TCARNODE ) );
 lpCarQueue->lpHead->lpNext = NULL;
 lpCarQueue->lpRear = lpCarQueue->lpHead;
 lpCarQueue->nEffectiveSize = 0;
}


// 车辆信息 carinfo 入队 lpCarQueue
void EnQueue( LPTCARQUEUE &lpCarQueue TCARINFORMATION carinfo )
{
 LPTCARNODE lpCarNode = ( LPTCARNODE ) malloc( sizeof( carnode ) );
 lpCarNode->carinfo = carinfo;
 lpCarNode->lpNext = NULL;
 lpCarQueue->lpRear->lpNext = lpCarNode;
 lpCarQueue->lpRear = lpCarQueue->lpRear->lpNext;
 lpCarQueue->nEffectiveSize++;
}


// 队头元素从链队 lpCarQueue 中出队并存入 carinfo
void DeQueue( LPTCARQUEUE &lpCarQueue TCARINFORMATION &carinfo )

评论

共有 条评论