資源簡介
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?)
- 上一篇:QML_MVC_Demo
- 下一篇:基本圖形填充課程設計報告+代碼
評論
共有 條評論