ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:32.95KB ,
资源ID:20763353      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20763353.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(停车场管理系统C语言实现Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

停车场管理系统C语言实现Word下载.docx

1、若输入(W,0,0),会显示便道上的车数;若输入(E,0,0),程序会跳出循环,同时程序结束;若输入为其他字母,程序会显示“ERROR!”报错。若便道上没有车辆停靠,会显示便道为空的信息:用户每输入一组数据,程序就会根据相应输入给出输出。输入值第一个必须为字母,后两个为数字。3.测试数据要求:用户输入字母时,输入大写或小写,都可以被该程序识别,正常运行。但要求用户输入数据时,三个数据项之间必须用逗号相分隔开。三概要设计 为了实现上述功能,该程序以栈模拟停车场以及临时停放为给要离去的汽车让路而从停车场退出来的汽车的场地,以队列模拟车场外的便道,因此需要栈和队列这两个抽象数据类型。1.栈抽象数据类

2、型定义:ADT SqStack 数据对象:D=, i=1,2,3.,n,n 数据关系:R=()|D, struct car; 基本操作: Judge_Output(s,q,r);列抽象数据类型定义:ADT LinkQueueQnode *,Qnode *, ,i=1,2,3.,n,n; 数据关系:R=;要算法流程图:Judge_Output算法流程图:A_cars算法流程图:D_cars算法流程图:4.本程序保护模块:主函数模块栈单元模块:实现栈的抽象数据类型队列单元模块:实现队列的抽象数据类型调用关系:四详细设计1.相关头文件库的调用说明:#include #define MAXSIZE 1

3、4#define n 2#define fee 102.元素类型、结点类型和结点指针类型:struct car char bb; int num; int time; ;struct rangweicarint num;typedef struct stackkstruct rangweicar HMAXSIZE; int topp;SqStackk;#define QNODE struct QnodeQNODE int data; QNODE *next; ;3.栈类型和队列类型:typedef struct stack struct car Gn; int top; SqStack;typ

4、edef struct linkqueue QNODE *front,*rear; int geshu;LinkQueue;b=E|(*r).bb=e) printf(STOP!n); else if(*r).bb=Ppprintf(The number of parking cars is %dn,(s-top)+1);else if(*r).bb=WwThe number of waiting cars is %dn,q-geshu);AaA_cars(s,q,*r);DdD_cars(s,q,*r);elseA_cars(SqStack *s,LinkQueue *q,struct ca

5、r a)QNODE *t;if(s-top!=n-1) (s-top)+; (s-Gs-top).bb=;(s-top).num=;top).time=;printf(The parking place is full! t=(QNODE *)malloc(sizeof(QNODE); t-data=;next=NULL; q-rear-next=t;rear=t;the number of the car in the access road is:%dndata);geshu+;int D_cars(SqStack *s,LinkQueue *q,struct car d)int i,j,

6、l;float x,y;QNODE *p;SqStackk *k;if=(s-top).num)x=(s-top).time;y=fee*x;The time is %.2f hours,the fee is %.2f yuann,x,y); if(q-geshu=0) printf(The queue is empty! return 0; else p=q-front-next;next=p-top).num=p-data; free(p);geshu-; if(q-next=NULL)rear=q-front; return 1; for(i=0;iGi).num!= continue;

7、 else break; if(i=(s-top)! return -1; x=(s-Gi).time; y=fee*x; k=(SqStackk *)malloc(sizeof(SqStackk); k-topp=-1; for(j=(s-ji;j-) k-topp+; (k-Hk-topp).num=(s-Gj).num;topp).time=(s-Gj).time; s-top-; for(l=0;ltopp);l+)the information(number and time) in the new stack is:%d,%dn,(k-Hl).num,(k-Hl).time); w

8、hile(k-topp=0) s-top+;top).bb=;top).num=(k-topp).num;top).time=(k-topp).time;topp-;The access road is empty! return 2; p=q- return 3;4.主函数的伪码:main() SqStack *s; LinkQueue *q; QNODE *p; struct car aaMAXSIZE; int i; s=(SqStack *)malloc(sizeof(SqStack);top=-1; q=(LinkQueue *)malloc(sizeof(LinkQueue); p

9、=(QNODE *)malloc(sizeof(QNODE); p-front=q-rear=p;geshu=0;*n* *n* 停车场管理系统 *n for(i=0;MAXSIZE;Please input the state,number and time of the car: scanf(%c,%d,%d,&(aai.bb),&(aai.num),&(aai.time); getchar(); Judge_Output(s,q,&aai); if(aai.bb=|aai.bb=) break;5.函数调用关系:五测试分析:1.出现问题及解决办法:该程序是四个程序调试中最顺利的一个,只在

10、一个地方上出了问题,就是输入字符时由于回车键也是字符,回车键总会被读入,导致经常输出“ERROR!”。后来找到原因后在scanf函数后紧接着加了一个getchar();语句后就恢复了正常。2.方法优缺点分析:优点:用栈和队列来模拟停车场让整个问题显得简单,易于实现;缺点:栈和队列这两个数学模型用在停车场管理上还是有失妥当的,现实中停车场出口入口不可能为同一处,不可能当一辆车要离开,在它后面进来的车必须为它让路,因此无法用栈的“后进先出”原则来模拟;而且没有考虑便道上的车在等待过程中可以中途开走等情况,而这些都无法用队列的“先进先出”原则来模拟。3.主要算法的时间和空间复杂度分析:(1)由于算法

11、Judge_Output函数根据判断条件,每次只选择一个程序段执行,所以其时间复杂度是O(1);(2)由于算法A_cars函数根据判断条件,将数据入栈或入队列,所以其时间复杂度也是O(1);(3)由于算法D_cars函数在出栈数据不在最顶端时需将n个数据先出该栈,再入新栈,再回旧栈的操作,故其时间复杂度是O(n);(4)所有算法的空间复杂度都是O(1)。六使用说明程序运行后用户根据提示一次输入车辆的状态信息,车牌编号,时间,程序会根据车辆的状态信息调用相应的函数,并输出用户想得到的信息。七调试结果输入数据:(A,1,5),(A,2,10),(D,1,15),(A,3, 20),(A,4,25)

12、,(A,5,30),(D,2,35),(D,4,40),(P,0,0),(W,0,0),(F,0,0),(E,0,0)。输出数据:1号车停放时间为10小时,收费100元;2号车停放时间为25小时,收费250元;4号车停放5小时,收费50元;此时停车场有两辆车,便道上无车。若停车场已满,则会显示停车场已满的信息;若便道上无车等待停车,会显示便道上无车的信息;若中途有车离开,需其后的车让道,会显示进入临时停车场的车辆的信息;若输入(F,0,0),输出“ERROR!”;若输入(E,0,0),程序结束。运行结果截屏:八附录源程序文件清单: /*调用的头文件库声明*/ struct car /*用该结构

13、体来存放车的状态,编号和时间信息 */typedef struct stack /*用该栈来模拟停车场*/struct rangweicar /*用该结构体来存放临时让出的车辆的编号以及时间信息*/typedef struct stack /*用该栈来模拟临时让出的车辆的停靠场地*/ /*链队结点的类型*/ QNODE *next;typedef struct linkqueue /*用该链队来模拟便道*/ LinkQueue;void Judge_Output(SqStack *s,LinkQueue *q,struct car *r) /*该算法通过传递来的车辆信息调 用相关函数实现操作*

14、/ if(*r).bb=) /*若车辆状态为E,终止程序*/) /*若车辆状态为P,输出停车场车辆数*/) /*若车辆状态为W,输出便道车辆数*/) /*若车辆状态为A,调用A_cars函数*/ A_cars(s,q,*r);) /*若车辆状态为D,调用D_cars函数*/ D_cars(s,q,*r); /*若车辆状态为其他字母,报错*/A_cars(SqStack *s,LinkQueue *q,struct car a) /*该算法实现对车辆状态为到达的车辆的操 作*/ if(s-=n-1) /*若停车场还没有满,则车进停车场,并存入车辆的状态,车牌编 号和到达时间信息*/ /*若停车场

15、已满,车进便道,并显示该车的车牌编 号,同时记录便道车辆数目*/int D_cars(SqStack *s,LinkQueue *q,struct car d) /*该算法实现车辆状态为离开的车 辆的操作*/ float x,y; SqStackk *k; if=(s-top).num) /*若待离开车为最后进停车场的车的情况*/ x=(s- /*直接计算停车时间,费用并离去*/geshu=0) /*若便道上无车,函数返回*/ Else /*若便道上有车,第一辆车进停车场*/ /*并存入其车牌编号及进停车场的时间*/next=NULL) /*若此时便道上无车,返回1*/ Else /*待离开的车不是最后进停车场的那辆车的情况*/i+) /*先找到待离开车在停车场中的位置*/ /*计算待离开车的停车时间并计算费用*/ /*设立一个新栈临时停放为该车离开而让 路的车辆*/ /*显示在新栈中的车辆信息*/=0) /*将新栈中的车重新开入停车场中*/geshu=0) /*若便道上无车,则返回2,无车开入停车场中*/ Else /*若便道上有车,则第一辆车开入停车场中*/next=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1