c语言车辆管理系统课程设计(16页).doc

上传人:1595****071 文档编号:34793659 上传时间:2022-08-18 格式:DOC 页数:17 大小:29.50KB
返回 下载 相关 举报
c语言车辆管理系统课程设计(16页).doc_第1页
第1页 / 共17页
c语言车辆管理系统课程设计(16页).doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《c语言车辆管理系统课程设计(16页).doc》由会员分享,可在线阅读,更多相关《c语言车辆管理系统课程设计(16页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-#include #include #include #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_Cheku;typedef struct carCarNode *data;struct

2、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 *, Moni_Biandao *); /*车辆离开*/void List(Moni_Cheku, M

3、oni_Biandao); /*显示车库和便道的存车信息*/int main()Moni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /*初始化车站*/InitStack(&Temp); /*初始化让路的临时链表*/InitQueue(&Wait); /*初始化便道*/printf(n);printf( _欢迎进入停车场管理系统1!_n);printf(n);printf(提示! (1).该车库的最大容量为:%d;n, MAX); printf( (2).该车库的收费标准为:%4.2f元/(辆*分钟).n, pri

4、ce);while (1)system(CLS);printf(*主菜单*n);printf(1.车辆到达);printf( 2.车辆离开);printf( 3.列表显示);printf( 4.退出系统n);printf(*n);printf(请选择(1-4): bb);while (1)scanf(%d,&ch);if (ch = 1 & ch top = 0;for (i = 0; i stacks-top = NULL;int InitQueue(Moni_Biandao *Q) /*初始化便道*/Q-head = (QueueNode *)malloc(sizeof(QueueNode

5、);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:%d, &(p-leave.hour), &(p-leave.min);printf(离开车辆的车牌号为:);puts(p-num);printf(其到达时间为: %d:%dn, p-reach.hour, p-reach.min);print

6、f(离开时间为: %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 - A2)*price);free(p);int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/CarNode *p;QueueNode *t;p = (CarNode *)malloc(sizeof(CarNode);fflus

7、h(stdin);printf(请输入车牌号(例如:中CUG888):);scanf(%s,&(p-num);if (Enter-top top+;printf(该车在车库位置%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-n

8、ext = 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(%d, &room);if (room = 1 & room top) br

9、eak;else printf(错误!请重选:);while (Enter-top room) /*车辆离开*/Temp-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-top;Temp-stackTemp-t

10、op = NULL;Temp-top-;PRINT(p, room); /*判断通道上是否有车及车库是否已满*/if (W-head != W-rear) & Enter-top 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-rear) W-rear = W-head;Enter-stack

11、Enter-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 top; i+)printf( %d , i);printf( t%d:%d, S-stacki-reach.hour, S-stacki-reach.min);printf(tt%sn,S-stacki-num);else printf

12、(车库里没有车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);while (1)scanf(%d, &tag);if (tag = 1 & tag = 3) break;else printf(错误!请重选(1-3): bb);switch (tag)case 1:List1(&S);break;/*列表显示车库信息*/case 2:List2(&W);break; /*列表显示便到信息*/case 3:flag = 0;break;default:break;第 17 页-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁