C语言怎么实现停车场管理
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了C语言怎么实现停车场管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现停车场管理文章都会有所收获,下面我们一起来看看吧。1.问题描述停车场
千家信息网最后更新 2026年11月01日C语言怎么实现停车场管理
这篇文章主要介绍了C语言怎么实现停车场管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现停车场管理文章都会有所收获,下面我们一起来看看吧。
1.问题描述
停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。
2.基本要求
(1)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
(2)每一组输入数据包括三个数据项:汽车"到达"或"离去"信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
(3)栈以顺序结构实现,队列以链表结构实现。
(4)按照题意要求独立进行设计,设计结束后按要求写出设计报告。
一、代码块
#include#include #include typedef int ElemType;#define MaxSize 100#define QNODE struct QNodetypedef struct Node //车辆信息{ char AL; int NO; int time;}Node;typedef struct Stack //栈定义{ struct Node data[MaxSize]; int top; int num;}SqStack;QNODE //队列节点{ struct Node data; QNODE *next;};typedef struct linkqueue //队列结构体定义{ QNODE *front,*rear; int num;}LinkQueue;SqStack *Init_SeqStack() //置空栈{ SqStack *s; s=(SqStack*)malloc(sizeof(SqStack)); s->top=-1; s->num=0; return s;}LinkQueue *Init_LQueue() //创建空队列{ LinkQueue *q; QNODE *p; q=(LinkQueue*)malloc(sizeof(LinkQueue)); p=(QNODE*)malloc(sizeof(QNODE)); p->next=NULL; q->front=q->rear=p; q->num=0; return q;}int ISEmpty_SeqStack(SqStack *s) //判断栈是否为空,栈为空返回1{ if(s->top ==-1) return 1; else return 0;}int ISFULL_SeqStack(SqStack *s,int n) //判断栈是否已满,若栈满返回1{ if(s->top==n-1) return 1; else return 0;}int ISEmpty_LQueue(LinkQueue *q) //判断队列是否为空,队列为空返回1{ if(q->front==q->rear) return 1; else return 0;}void IN_Lqueue( LinkQueue *q,struct Node s) //入队{ QNODE *p; p=(QNODE*)malloc(sizeof(QNODE)); p->data=s; q->num++; p->next=NULL; q->rear->next =p; q->rear =p;}void Push_SeqStack(SqStack *p,struct Node s) //入栈{ p->top ++; p->data[p->top]=s; p->num++;}int POP_SeqStack(SqStack *s,struct Node car)//出栈{ SqStack *p; int t; p=Init_SeqStack(); while(s->data[s->top].NO !=car.NO)//找到车牌号为P.NO的车, { Push_SeqStack(p,s->data[s->top]); s->top--; s->num--; } t=car.time-s->data[s->top].time; s->top--; s->num--; while(ISEmpty_SeqStack(p)==0) { Push_SeqStack(s,p->data[p->top]); p->top--; p->num--; } return t;}struct Node Out_LQueue(LinkQueue *q) //出队{ QNODE *p; p=q->front->next; q->front->next=p->next; q->num --; if( q->front->next==NULL) q->rear=q->front; return p->data; free(p);}int main(){ SqStack *parkstack; //parkstack为表示停车场的栈 LinkQueue *parkqueue; //parkqueue为表示便道的队列 struct Node car; int n,a=0,t; //n为停车场栈的最大容量 float f; //f为每小时收费 parkstack=Init_SeqStack(); parkqueue=Init_LQueue(); //初始界面 printf("***************停车场信息查询***************\n"); printf("请输入停车场最大容量n="); scanf("%d",&n); printf("\n请输入每分钟收取费用f="); scanf("%f",&f); printf("\n请输入车辆信息\n"); scanf("%c,%d,%d",&car.AL,&car.NO,&car.time); while(car.AL!='Q') { if(car.AL=='A' ) { // 汽车到达的情况 if(ISFULL_SeqStack(parkstack,n)==1) //栈满的情况 { IN_Lqueue(parkqueue,car); //进入队列等待 printf("这辆车在门外便道上第%d个位置\n",parkqueue->num); printf("\n"); printf("请输入车辆信息\n"); } else { Push_SeqStack(parkstack,car); //入栈 printf("这辆车在停车场内第%d个位置\n",parkstack->num); printf("\n"); printf("请输入车辆信息\n"); } } if(car.AL=='L' ) //汽车离开的情况 { t=POP_SeqStack(parkstack,car);//出栈 printf("这辆车停留时间为%d,收费为%f。\n",t,f*t); printf("\n"); printf("请输入车辆信息\n"); if(ISEmpty_LQueue(parkqueue)==0) //队列不为空需要进栈 Push_SeqStack(parkstack,Out_LQueue(parkqueue) ); } if(car.AL=='P'&&car.NO==0&&car.time==0 )//显示停车场的车数 { printf("停车场的车数为%d\n",parkstack->num); printf("\n"); printf("请输入车辆信息\n"); } if(car.AL=='W'&&car.NO==0&&car.time==0 )//显示候车场的车数 { printf("候车场的车数为%d\n",parkqueue->num); printf("\n"); printf("请输入车辆信息\n"); } scanf("%c,%d,%d",&car.AL,&car.NO,&car.time); } printf("输入结束\n"); return 1;}
二、运行
关键字:A——arrive;L——leave;P——park;Q——quit;W——wait.

关于"C语言怎么实现停车场管理"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"C语言怎么实现停车场管理"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
停车场
输入
汽车
车辆
信息
队列
便道
车场
管理
数据
时间
语言
大门
情况
知识
费用
收费
设计
输出
最大
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海挚品互联网科技有限公司
科技赋能下的互联网金融
互联网科技的
科技与互联网发展
深圳互联网络科技有限公司
亿账通互联网科技
伴你行互联网科技有限公司
大白互联网科技
科技类的互联网平台
互联网科技公司的市场部门
老年人脱离互联网科技的作文
西藏七维空间互联网科技有限公司
小米互联网科技园设置
互联网科技有哪些公司
济南有互联网科技公司吗
工业互联网科技创业
2021世界互联网领先科技成果发布
吉林省码上互联网科技电话
科技和互联网行业的特点
上海旺乐尼互联网科技有限公司
手冲咖啡和咖啡机区别
互联网核心科技是什么
互联网为科技
汇久创客互联网科技
丰台科技园 互联网公司
杭州壁岐互联网科技有限公司
未来五年的互联网科技
互联网金融科技展
互联网相关科技技术
图游互联网科技