c语言车辆管理系统课程设计报告书_第1页
c语言车辆管理系统课程设计报告书_第2页
c语言车辆管理系统课程设计报告书_第3页
c语言车辆管理系统课程设计报告书_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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;.下

2、载可编辑 .Moni_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 *,

3、 Moni_Cheku *, Moni_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(&

4、quot; _ 欢迎进入停车场管理系统 1!_n"); printf("n");printf(" 提示 ! (1).该车库的最大容量为:%d;n",MAX);printf("(2).该车库的收费标准为 :%4.2f 元/ (辆*分钟).n", price);while (1)system("CLS");printf("*主菜单 *n");printf("1. 车辆到达 ");printf(" 2. 车辆离开 ");printf(" 3.

5、 列表显示 ");printf(" 4. 退出系统 n");printf("*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; /*车辆到达

6、 */case 2:Leave(&Enter, &Temp, &Wait); break; /* 车辆离开 */ 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 InitQue

7、ue(Moni_Biandao *Q) /*初始化便道 */Q->head = (QueueNode *)malloc(sizeof(QueueNode);if (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:%

8、d", &(p->leave.hour), &(p->leave.min); printf(" 离开车辆的车牌号为 :");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

9、= p->leave.hour;B2 = p->leave.min;printf(" 应交费用为:%4.2f元 ", (B1 -A1)* 60 +(B2 -A2)*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("

10、;%s",&(p->num);if (Enter->top < MAX) /*车库未满 ,车进车库 */.下载可编辑 .Enter->top+;printf(" 该车在车库位置 %d.n", Enter->top);printf(" 请输入到达时间 (*:*):");scanf("%d:%d", &(p->reach.hour), &(p->reach.min); Enter->stackEnter->top = p; return(1);else

11、 /* 车库已满,车进便道 */printf(" 该车须在便道等待 !n");t = (QueueNode *)malloc(sizeof(QueueNode);t->data = p;t->next = 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;/* 判断

12、车库内是否有车 */if (Enter->top > 0) /*有车 */printf(" 请输入车在车库的位置(1-%d) : ", Enter->top);/* 输入车辆离开的信息 */while (1)scanf("%d", &room);if (room >= 1 && room <= Enter->top) break;else printf(" 错误 !请重选 :");while (Enter->top > room) /*车辆离开 */Temp-&g

13、t;top+;Temp->stackTemp->top = Enter->stackEnter->top;Enter->stackEnter->top = NULL;Enter->top-;.下载可编辑 .p = Enter->stackEnter->top;Enter->stackEnter->top = NULL;Enter->top-;while (Temp->top >= 1)Enter->top+;Enter->stackEnter->top = Temp->stackTemp

14、->top;Temp->stackTemp->top = NULL;Temp->top-;PRINT(p, room); /* 判断通道上是否有车及车库是否已满*/if (W->head != W->rear) && Enter->top < MAX) /*便道的车辆进入车库 */q = W->head->next;t = q->data;Enter->top+;printf("n 便道的 %s 号车进入车场第 %d 位置 .", t->num, Enter->top);pr

15、intf("n 请输入现在的时间 (*:*):"); scanf("%d:%d", &(t->reach.hour), &(t->reach.min); W->head->next = q->next;.下载可编辑 .if (q = W->rear) W->rear = W->head;Enter->stackEnter->top = t;free(q);else printf("n便道里没有车 .n");else printf(" 车库里没有车 !

16、n"); /*没车 */void List1(Moni_Cheku *S) /*列表显示车库信息 */int i;if (S->top > 0) /*判断车库内是否有车 */printf(" 车库号到达时间t车牌号 n");for (i = 1; i <= S->top; i+)printf("%d ", i);printf("t%d:%d",S->stacki->reach.hour,S->stacki->reach.min); printf("tt%sn"

17、;,S->stacki->num);.下载可编辑 .else printf(" 车库里没有车 n");void List2(Moni_Biandao *W) /*列表显示便道信息 */QueueNode *p;p = W->head->next;if (W->head != W->rear) /*判断便道上是否有车 */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): bb"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论