停车场模拟管理程序设计报告(附源代码)

上传人:206****923 文档编号:41892470 上传时间:2018-05-31 格式:DOC 页数:18 大小:279.50KB
返回 下载 相关 举报
停车场模拟管理程序设计报告(附源代码)_第1页
第1页 / 共18页
停车场模拟管理程序设计报告(附源代码)_第2页
第2页 / 共18页
停车场模拟管理程序设计报告(附源代码)_第3页
第3页 / 共18页
停车场模拟管理程序设计报告(附源代码)_第4页
第4页 / 共18页
停车场模拟管理程序设计报告(附源代码)_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《停车场模拟管理程序设计报告(附源代码)》由会员分享,可在线阅读,更多相关《停车场模拟管理程序设计报告(附源代码)(18页珍藏版)》请在金锄头文库上搜索。

1、停车场模拟管理程序的设计与实现停车场模拟管理程序的设计与实现一、简介一、简介1设计目的:理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。2问题的描述:设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序。二、数据结构

2、的设计:二、数据结构的设计:(1)为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码和汽车当前的状态。(2)为了便于停车场的管理,要为每个车位分配一个固定的编号。(3)当停车场的停车位上都已停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的先后顺序顺次序放在便道上,为便道上的每个位置分配一个固定的编号。当有车从停车位上离开后,便道上的第一辆汽车就立即进入停车位上的某个车位。(4)当某辆车离开停车场的时候,比他后进停车位的车要为他让路,而且当他开走之后让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为完成这项功能,定义一个结构体。三、功能

3、(函数)设计:三、功能(函数)设计:本程序从总体上分为四个功能模块,分别为:(1)程序功能介绍和操作提示模块(2)汽车进入停车位的管理模块(3)汽车离开停车位的管理模块(4)查看停车场状态的查询模块四、界面设计:四、界面设计:本程序界面本着易于操作简单整洁而不失美观的理念,采用数字对应功能选项,结合详细的操作提示,使得操作方便快捷,界面清晰明朗。五、程序设计:五、程序设计:1 车辆进入停车场模块:Arrive函数Enter- toptoptop0?站内没有车 退出函数输入离开车的 信息 scanf(“%d“,Enter- toproom?执行车辆出站操作输入有误 退出函数(W-head!=W-

4、 rear) system(“cls“);语句,实现按任意键继续,并清屏。七、结论:七、结论:本停车场管理系统,可以进行车辆进入停车场和退出停车场以及停车厂内部车位和便道上的停车信息的显示三个步骤的操作。在车辆进入停车场进入模块中,如果进入停车场的车辆大于 5,即车位里停放的车辆已满,后面的车自动进入便道等候;在车辆离开停车场模块中,在查找车辆过程中如果没有对应车辆能够显示出“对不起,输入有误,请重新输入!” ,并有辅助栈保证从车位上出来的车不会改变顺序;车位出现空位时,便道上的车能自动进入车位,同时,便道上的车也可以直接离开停车场;信息查询模块,能够显示停车场车位和便道上等待车的信息。并有错

5、误操作的信息提示。同样此程序存在一些不足之处。在显示模块,没有显示出开出停车场车辆的信息,在进一步修改补充时,可以添加车辆开出停车场的显示模块;车辆的信息过于简单,只有一个车牌,可以添加更加详细的车辆信息以及添加收费操作等功能。八、设计后的思考:八、设计后的思考:此次课程设计,付出了很多的时间和经历,编程过程中,我看到了自己许多不足,例如程序编写的有点杂乱,造成编译时错误不好找到,没有足够的耐心,有点急功近利,修改编译错误时不能做到系统的分析,造成程序越改越乱,影响了情绪,丢掉了信心。同时,我也深切感受到了程序员的艰辛,明白了作为一个程序员应该尽可能的为用户考虑,缜密的思维,让程序不断地人性化

6、,可操作性强,界面尽可能的友好,把完美作为自己的目标。对于程序本身,我看到了良好的程序编写风格对于程序员的重要性,函数之间调用的便利与简洁,以及循环套用的魅力之所在。总之,不管简单还是复杂的程序设计,都要求扎实的基础知识,因为各种程序都是由简单的一块块的函数结构组成的,并加强实践,从程序的编写中进一步加强对书本知识的掌握。而且,需要耐心,做程序的编写时比较枯燥的,会出现许多错误,需要我们细心并耐心的进行修改。回顾编程的过程,我也学到了许多程序之外的东西,编程的过程对一个人的耐心和毅力是一种极大地考验,不停地编译,不停地改错,不停地被打击,信心被一点点的消磨,如果放弃,将前功尽弃。所以我选择了停

7、一停稍作休息然后坚持下去,终于在完成的那一瞬间,内心充满了自豪和成就感。这次任务完成的过程给我上了生动而难忘的一课,面对一次次的挫折与打击,我会选择咬牙坚持;为了远方的目标,我会不懈的努力,一点点的去接近。参考文献:1谭浩强,C 语言设计(第三版). 北京: 清华大学出版社, 20052严蔚敏 吴伟民,数据结构(C 语言版).北京:清华大学出版社,2007附:源代碼#include #include #include #include #define MAX 5/*车库容量*/ typedef struct node char num10; CarNode;/*车辆信息结点*/ typedef

8、 struct NODE CarNode *stackMAX+1; int top; SeqStackCar; /*模拟车站*/ typedef struct car CarNode *data; struct car *next; QueueNode; typedef struct Node QueueNode *head; QueueNode *rear; LinkQueueCar; /*模拟通道*/ void InitStack(SeqStackCar *); /*初始化栈*/ int InitQueue(LinkQueueCar *); /*初始化便道*/ int Arrival(Se

9、qStackCar *,LinkQueueCar *); /*车辆到达*/ void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*车辆离开*/ void List(SeqStackCar,LinkQueueCar); /*显示存车信息*/ int j=0;void main() SeqStackCar Enter,Temp; LinkQueueCar Wait; int ch;int j=0; InitStack( /*初始化车站*/ InitStack( /*初始化让路的临时栈*/ InitQueue( /*初始化通道*/ pri

10、ntf(“|*|n“); printf(“|*|n“); printf(“|* *|n“); printf(“|*欢迎进入停车场管理系统*|n“); printf(“|* *|n“); printf(“|*|n“); printf(“|*|n“);printf(“|注:本程序操作容易,请注意跟随操作提示|n“);printf(“n“);printf(“请按任意键继续.“);getch(); system(“cls“);while(1) printf(“请输入对应的数字选择您需要的功能:n“);printf(“n*n“);printf(“*1.车辆到达*n“); printf(“*2.车辆离开*

11、n“); printf(“*3.查询信息*n“); printf(“*4.退出系统*n“); printf(“*n“);while(1) scanf(“%d“, if(ch=4) printf(“谢谢您的使用,再见!n“);elseif(ch=1 for(i=0;istacks-top=NULL; int InitQueue(LinkQueueCar *Q) /*初始化便道*/ Q-head=(QueueNode *)malloc(sizeof(QueueNode); if(Q-head!=NULL) Q-head-next=NULL; Q-rear=Q-head; return(1); el

12、se return(-1); void PRINT(CarNode *p) /*打印出站车的信息*/ printf(“n 离开车辆的车牌号为:“); puts(p-num); int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*车辆到达*/ CarNode *p; QueueNode *t; p=(CarNode *)malloc(sizeof(CarNode); flushall(); printf(“n 请输入车牌号(例:DS888):n“); gets(p-num); if(Enter-toptop+; printf(“n 车辆停入车场第%

13、d 位置.nn“,Enter-top); Enter-stackEnter-top=p; return(1); else /*车场已满,车进便道*/ printf(“n 对不起,车场已满,该车须在便道等待!n“); t=(QueueNode *)malloc(sizeof(QueueNode); j+;t-data=p; t-next=NULL; W-rear-next=t; W-rear=t;printf(“车进入%d 号便道nn“,j);return(1); void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W)/*

14、车辆离开*/ int i, room; CarNode *p,*t; QueueNode *q; /*判断车场内是否有车*/ if(Enter-top0) /*有车*/ while(1) /*输入离开车辆的信息*/ printf(“n 请输入车在车场的位置/1-%d/:“,Enter-top); scanf(“%d“, if(room=1 while(Enter-toproom) /*车辆离开*/ printf(“n 牌号为%s 的车需要让道n“,Enter-stackEnter-top);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-top=NULL; Temp-top-; PRINT(p); /*判断通道上是否有车及车站是否已满*/ if(W-head!=W-rear) t=q-data; Enter-top+; print

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号