首页 > 代码库 > 停车管理系统
停车管理系统
#include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 #define N 2 struct car { int ID;//汽车牌照号 int Time; // 汽车到达或离去时间 char Su;//汽车到达还是离去 int position;//汽车在停车场或过道的位置 }; typedef struct car Car; struct SNode//两个栈共享空间 ,模拟停车场让车情景 { Car Data[MAXSIZE]; int Top1; int Top2; }; typedef struct SNode Stack; typedef struct QNode PtrToSNode; struct QNode { Car Data; PtrToSNode *Next; }; struct queue { PtrToSNode *front,*rear; int size; }; typedef struct queue Queue; Stack CreateStack()//建立空栈 { Stack S; S.Top1=-1; S.Top2=MAXSIZE; return S; } Queue *CreateQueue()//建立空队列 { Queue *Q; Q=(Queue *)malloc(sizeof(Queue)); Q->front=(PtrToSNode *)malloc(sizeof(PtrToSNode)); Q->rear=(PtrToSNode *)malloc(sizeof(PtrToSNode)); Q->rear->Next=NULL; Q->size=0; Q->front->Next=Q->rear; return Q; } bool IsEmpty(Queue *Q) { if(Q->size==0) return true; return false; } void InsertQueue(Queue *Q,Car C) //队首插入元素 { if(IsEmpty(Q)) { Q->rear->Data=http://www.mamicode.com/C; "停车时间:%d 累计费用:%d\n",t,cost); } int main() { Car A,B,C; Stack S; Queue *Q; Q=CreateQueue(); S=CreateStack(); printf("\t欢迎使用停车管理系统\n"); while(1) { printf("-------------A、停车---------------\n"); printf("-------------D、取车---------------\n"); printf("-------------E、退出---------------\n"); scanf("%c",&C.Su); printf("依次输入你的车牌号,当前时间\n"); scanf("%d%d",&C.ID,&C.Time); getchar();//注意这里要吸收回车,否则会被下一轮输入的char吸收 if(C.Su==‘E‘) break; if(C.Su==‘A‘) { if(S.Top1==N-1) { C.position=Q->size+1; InsertQueue(Q,C); printf("停车位置:便道 %d\n",C.position); } else { C.position=S.Top1+2; PushStack1(S,C); printf("停车位置:停车场 %d\n",C.position); } } else { A=Change(S,C); CountTimeAndCost(C,A); if(!IsEmpty(Q)) { B=DeleteQueue(Q); B.position=S.Top1+2; PushStack1(S,B); } } } return 0; }
停车管理系统
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。