收藏 分销(赏)

c语言实现停车场管理系统.doc

上传人:Fis****915 文档编号:551595 上传时间:2023-12-06 格式:DOC 页数:6 大小:28KB
下载 相关 举报
c语言实现停车场管理系统.doc_第1页
第1页 / 共6页
c语言实现停车场管理系统.doc_第2页
第2页 / 共6页
c语言实现停车场管理系统.doc_第3页
第3页 / 共6页
c语言实现停车场管理系统.doc_第4页
第4页 / 共6页
c语言实现停车场管理系统.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、#include#include#include#define Size 2#define price 5typedef struct char num20;int reachtime; int leavetime;carinfo;typedef struct stackcarinfo car5;int top; Stack;typedef struct Nodecarinfo data; struct Node *next;QueueNode;typedef struct QueueNode *front; QueueNode *rear;Queue,*linkQueue;int Enter

2、Q(Queue *Q,carinfo x);int inistack(Stack *S) /初始化栈 S-top=-1;return 1;void Push(Stack *S,carinfo x) /进栈操作S-top+;S-carS-top=x; printf(进站成功!); void Pop(Stack *S,carinfo x) /出栈操作 if(S-top=-1) printf(空栈,无法出栈!); x=S-carS-top; S-top-; printf(出栈成功!);IsEmpty(Stack *S) /判断栈空 if(S-top=-1)return 1;else return 0

3、;int iniQueue(Queue *Q) /初始化便道 Q-front=(QueueNode *)malloc(sizeof(QueueNode); /申请节点 if(Q-front!=NULL) Q-rear=Q-front; Q-front-next=NULL; return 1; else return 0;int EnterQ(Queue *Q,carinfo x) /进便道 QueueNode *newNode; newNode=(QueueNode *)malloc(sizeof(QueueNode); if(newNode!=NULL) newNode-data=x; ne

4、wNode-next=NULL; Q-rear-next=newNode; Q-rear=newNode; return 1; else return 0;int DeleteQ(Queue *Q,carinfo x) /出便道 QueueNode *p; p=Q-front-next; if(Q-front=Q-rear) /判断便道是否有车 return 0; x=p-data; if(p-next=Q-rear) Q-rear=Q-front; Q-front-next=NULL; Q-front-next=p-next; free(p); return 1;void Lpush(Sta

5、ck *S,carinfo x)Push(S,x); /进临时栈void LPop(Stack *S,carinfo x)Pop(S,x); int Arrive(Stack *S,Queue *Q) /车辆到达 carinfo x; int a; printf(输入车牌号:); scanf(%s,x.num); printf(请输入进车场的时间:); scanf(%d,&x.reachtime); if(S-top=Size-1) printf(车场已满,不能进入,进便道); a=EnterQ(Q, x); /递归调用进便道操作if(a=1)printf(OKn);elseprintf(No

6、!n); else Push(S,x); return 1; int Departure(Stack *S) /车辆离开操作 int money;char x20;Stack *p=NULL;int point1=S-top;int point2; printf(请输入要离去的车牌号:); scanf(%s,x); int leavetime; while(point1!=-1&point2!=-1) if(strcmp(S-carpoint1.num,x)=0) /匹配函数,是否输入的信息与车场信息匹配 printf(请输入要离开的时间:); scanf(%d,&leavetime); fo

7、r(;point1!=S-top;point1+,point2+) /扫描直到结束 S-carpoint1=S-carpoint2; /如果找到了 ,出车 S-top-; printf(成功出车场n); money=(leavetime-S-carpoint1.reachtime)*price;./费用信息 printf(费用:%dn,money); /离去时间减去到达时间乘单价 point2=-1; else point2=point1; point1-; if(point1=-1) /如果到结束了,还没有找到,则输出信息 printf(此车没有在停车场!); return 1; void

8、Print1(carinfo x) /简单的输出操作 printf(车牌号:%sn,x.num); printf(进车场的时间:%dn,x.reachtime); printf(n-n);void Print(Stack *S)/打印车场信息 carinfo x; int point=S-top; /从栈头开始if(S-top=-1)printf(车场没有车辆登记进入!);else while(point!=-1) printf(n-n); printf(车的位置号:%dn,point);x=S-carpoint; / 把依次扫描到的信息赋值给x Print1(x); /调用输出函数 poin

9、t-; /输出所有的车场信息 printf(显示车场信息成功!); /打印便道车辆void PrintQ(Queue *Q) QueueNode *p;/p=(QueueNode *)malloc(sizeof(Queue); /申请结点 p=Q-front-next; if(Q-front!=Q-rear) /*判断通道上是否有车*/ printf(n等待车辆的车牌号为: ); while(p!=NULL) /判断是否到结尾 printf(%s ,p-data.num); p=p-next; /如果没找到,继续向下找 printf(n); else printf(nttt便道里没有车.);

10、void printGraph() printf(n-停车场-); printf(n-1.车辆到达 2.车辆离去-); printf(n-3.车场信息 0.退出系统-); printf(n-4.便道信息 -); printf(n-n);void main() Queue *Q; Stack *S=NULL; S=(Stack *)malloc(sizeof(Stack); /申请栈节点 Q=(linkQueue)malloc(sizeof(Queue); /申请便道节点 int i; iniQueue(Q); /初始化调用 inistack(S); /初始化调用 printGraph(); while(1) printf(n请输入操作); scanf(%d,&i); switch(i) case 1:Arrive(S,Q);printGraph(); break; case 2:Departure(S);printGraph();break; case 3:Print(S);printGraph();break; case 0:exit(1);break; case 4:PrintQ(Q);break; default :printf(重新输入);printGraph();

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服