📄 management.cpp
字号:
///////////////////////////////////
// 基于栈实现的停车场管理系统 //
// yangshaobo //
///////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char State;
int Id;
int StartTime;
int LeftTime;
}AutoInfo;
typedef struct
{
AutoInfo elem[50];
int top;
}SeqStack;
void InitStack(SeqStack *Q)
{
Q->top=-1;
}
int PushStack(SeqStack *S,char State,int Id,int StartTime)
{
S->top++;
S->elem[S->top].State=State;
S->elem[S->top].Id=Id;
S->elem[S->top].StartTime=StartTime;
//printf("?????\n");
//S->elem[S->top]->LeftTime=T->LeftTime;
return 1;
}
AutoInfo PopStack(SeqStack *S)
{
AutoInfo temp;
temp=S->elem[S->top];
S->top--;
return temp;
}
/*char GetTop(SeqStack *S)
{
char T;
T=S->elem[S->top]->State;
return T;
}*/
void main()
{
// SeqStack temp;
// temp.elem[1]->Id=001;
int N;
char State;
int Id;
int StartTime;
int LeftTime;
AutoInfo Memory;
SeqStack ParkLot;
SeqStack Path;
SeqStack TempM;
//SeqStack *T;
SeqStack *M;
int flag;
InitStack(&ParkLot);
InitStack(&Path);
InitStack(&TempM);
printf("*********欢迎使用停车场管理系统!哈哈!*********\n");
printf("\n");
printf("请输入可以停放的车辆数:");
scanf("%d",&N);
printf("请依次输入汽车的“状态”、“车牌号”、“到达时间”、“离开时间”,\n");
printf("输入(E,0,0)结束。\n");
while(flag!=1)
{
if(State!='E')
{
int i;
for(i=0;i<N;i++)
{
scanf("%c",&State);
scanf("%d",&Id);
scanf("%d",&StartTime);
if(State=='A')
{
PushStack(&ParkLot,State,Id,StartTime);
}
else if(State=='D')
{
while(Id!=Memory.Id)
{
Memory=PopStack(&ParkLot);
}
printf("%d号车即将离开!\n",Memory.Id);
printf("请交费%d元!\n",StartTime-Memory.StartTime);
}
}
if(i>=N)
{
printf("停车场车位已满,请在场外通道处等候!谢谢!");
}
}
else
{
flag=1;
}
}
//printf("%c\n",State);
//printf("%d\n",StartTime);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -