版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 3 /*车库容量*/ #define price 0.5 /*每车每分钟费用*/ typedef struct timeint hour;int min;Time; /*时间结点*/typedef struct nodechar num10;Time reach;Time leave;CarNode;/*车辆信息结点*/typedef struct NODECarNode *stackMAX + 1;int top;Moni
2、_Cheku;typedef struct carCarNode *data;struct car *next;QueueNode;typedef struct NodeQueueNode *head;QueueNode *rear;Moni_Biandao;void InitStack(Moni_Cheku *); /*初始化车库*/int InitQueue(Moni_Biandao *);/*初始化便道*/int Arrival(Moni_Cheku *, Moni_Biandao *); /*车辆到达*/void Leave(Moni_Cheku *, Moni_Cheku *, Mo
3、ni_Biandao *); /*车辆离开*/void List(Moni_Cheku, Moni_Biandao); /*显示车库和便道的存车信息*/int main()Moni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /*初始化车站*/InitStack(&Temp); /*初始化让路的临时链表*/InitQueue(&Wait); /*初始化便道*/printf("n");printf(" _欢迎进入停车场管理系统1!_n");printf(
4、"n");printf("提示! (1).该车库的最大容量为:%d;n", MAX); printf(" (2).该车库的收费标准为:%4.2f元/(辆*分钟).n", price);while (1)system("CLS");printf("*主菜单*n");printf("1.车辆到达");printf(" 2.车辆离开");printf(" 3.列表显示");printf(" 4.退出系统n");printf
5、("*n");printf("请选择(1-4): bb");while (1)scanf("%d",&ch);if (ch >= 1 && ch <= 4)break;else printf("错误!请重选(1-4): bb");switch (ch)case 1:Arrival(&Enter, &Wait); break; /*车辆到达*/case 2:Leave(&Enter, &Temp, &Wait); break; /*车辆离开*
6、/case 3:List(Enter, Wait); break; /*打印列表信息*/case 4:exit(0); /*退出主程序*/default: break;return 0;void InitStack(Moni_Cheku *s) /*初始化车库*/int i;s->top = 0;for (i = 0; i <= MAX; i+)s->stacks->top = NULL;int InitQueue(Moni_Biandao *Q) /*初始化便道*/Q->head = (QueueNode *)malloc(sizeof(QueueNode);i
7、f (Q->head != NULL)Q->head->next = NULL;Q->rear = Q->head;return(1);else return(-1);void PRINT(CarNode *p, int room) /*输出出库车的信息*/int A1, A2, B1, B2;printf("请输入离开的时间:/*:*/");scanf("%d:%d", &(p->leave.hour), &(p->leave.min);printf("离开车辆的车牌号为:"
8、);puts(p->num);printf("其到达时间为: %d:%dn", p->reach.hour, p->reach.min);printf("离开时间为: %d:%dn", p->leave.hour, p->leave.min);A1 = p->reach.hour;A2 = p->reach.min;B1 = p->leave.hour;B2 = p->leave.min;printf("应交费用为:%4.2f元", (B1 - A1) * 60 + (B2 - A
9、2)*price);free(p);int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/CarNode *p;QueueNode *t;p = (CarNode *)malloc(sizeof(CarNode);fflush(stdin);printf("请输入车牌号(例如:中CUG888):");scanf("%s",&(p->num);if (Enter->top < MAX) /*车库未满,车进车库*/Enter->top+;printf("该车在
10、车库位置%d.n", Enter->top);printf("请输入到达时间(*:*):");scanf("%d:%d", &(p->reach.hour), &(p->reach.min);Enter->stackEnter->top = p;return(1);else /*车库已满,车进便道*/printf("该车须在便道等待!n");t = (QueueNode *)malloc(sizeof(QueueNode);t->data = p;t->next =
11、NULL;W->rear->next = t;W->rear = t;return(1);void Leave(Moni_Cheku *Enter, Moni_Cheku *Temp, Moni_Biandao *W) /*车辆离开*/int i, room;CarNode *p, *t;QueueNode *q;/*判断车库内是否有车*/if (Enter->top > 0) /*有车*/printf("请输入车在车库的位置(1-%d):", Enter->top);/*输入车辆离开的信息*/while (1)scanf("%
12、d", &room);if (room >= 1 && room <= Enter->top) break;else printf("错误!请重选:");while (Enter->top > room) /*车辆离开*/Temp->top+;Temp->stackTemp->top = Enter->stackEnter->top;Enter->stackEnter->top = NULL;Enter->top-;p = Enter->stackEnter
13、->top;Enter->stackEnter->top = NULL;Enter->top-;while (Temp->top >= 1)Enter->top+;Enter->stackEnter->top = Temp->stackTemp->top;Temp->stackTemp->top = NULL;Temp->top-;PRINT(p, room); /*判断通道上是否有车及车库是否已满*/if (W->head != W->rear) && Enter->top
14、< MAX) /*便道的车辆进入车库*/q = W->head->next;t = q->data;Enter->top+;printf("n便道的%s号车进入车场第%d位置.", t->num, Enter->top);printf("n请输入现在的时间(*:*):");scanf("%d:%d", &(t->reach.hour), &(t->reach.min);W->head->next = q->next;if (q = W->re
15、ar) W->rear = W->head;Enter->stackEnter->top = t;free(q);else printf("n便道里没有车.n");else printf("车库里没有车!n"); /*没车*/void List1(Moni_Cheku *S) /*列表显示车库信息*/int i;if (S->top > 0) /*判断车库内是否有车*/printf("车库号 到达时间 t车牌号n");for (i = 1; i <= S->top; i+)printf(
16、" %d ", i);printf(" t%d:%d", S->stacki->reach.hour, S->stacki->reach.min);printf("tt%sn",S->stacki->num);else printf("车库里没有车n");void List2(Moni_Biandao *W) /*列表显示便道信息*/QueueNode *p;p = W->head->next;if (W->head != W->rear) /*判断便道上
17、是否有车*/printf("在便道里等待的车辆的号码为:n");while (p != NULL)puts(p->data->num);p = p->next;else printf("便道里没有车.n");void List(Moni_Cheku S, Moni_Biandao W)int flag, tag;flag = 1;while (flag)printf("*查看*n");printf("1.车库2.便道3.返回n");printf("*n");printf("请选择(1-3)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026北方联合电力高校毕业生招聘考试备考试题及答案详解
- 2026年江西环保股份有限公司校园招聘4人考试备考试题及答案详解
- 2026年巴州库尔勒市事业单位面向西部计划志愿者公开招聘(25人)笔试备考试题及答案详解
- 2025年河北省邯郸市事业单位人员招聘考试试题及答案详解
- 2026年连云港市新浦区公务员招聘笔试模拟试题及答案详解
- 2026年广东省廉江市高三生物上册期末考试模拟卷带答案(综合题)
- 2026年安徽医科大学第四附属医院劳务派遣岗位招聘4名考试参考试题及答案详解
- 平板玻璃生产事故预防手册
- 2026年襄樊市襄阳区党校系统人员招聘笔试备考试题及答案详解
- 2026年武汉市江汉区公务员招聘考试备考试题及答案详解
- 《国际多式联运实务》共十五章课件(上)
- 老旧小区燃气改造的安全与风险评估
- 2024年7月黑龙江省普通高中学业水平合格性考试历史试题(解析版)
- 建筑工程的毕业论文
- 国家电网保密知识培训课件
- 斜视教学课件
- 《中华人民共和国消防法》解读与培训
- 【KAWO科握】2025年中国社交媒体平台指南报告
- 公安情报学试题及答案
- 《珊瑚礁的生态系统》课件
- 南京农业大学《中级宏观经济学》2022-2023学年第一学期期末试卷
评论
0/150
提交评论