停车场管理系统源代码.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 系统 源代码
- 资源描述:
-
停车场管理系统源代码 18 2020年4月19日 文档仅供参考,不当之处,请联系改正。 //停车场管理系统 #include<stdio.h> #include<stdlib.h> #define OVERFLOW 0 #define ERROR 0 #define OK 1 #define STACKSIZE 2 //车库容量 //时间节点 typedef struct time{ int hour; int min; }Time; //车辆信息 typedef struct{ char CarNum; float time; int pos_a; //车在停车场中的位置 int pos_b; //车在便道上的位置 int flag; }Car,Car2; //车库信息 (顺序栈) typedef struct{ Car *top; Car *base; int stacksize; }SqStack; //初始化 int InitStack(SqStack &S){ S.base=new Car[STACKSIZE]; if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACKSIZE; return OK; } //判空 int StackEmpty(SqStack S){ if(S.top==S.base) return OK; else return ERROR; } //判满 int StackFull(SqStack S){ if(S.top-S.base>=S.stacksize) return OK; else return ERROR; } //入栈 int Push(SqStack &S,Car e){ if(S.top-S.base==S.stacksize) return ERROR; *S.top++=e; return OK; } //出栈 int Pop(SqStack &S,Car &e){ if(S.top==S.base) return ERROR; e=*--S.top; return OK; } //遍历栈 int StackTraverse(SqStack S) { Car *p=S.top; Car *q=S.base; int l=1; if(StackEmpty(S)){ for(int j=1;j<=STACKSIZE;j++){ printf("\t车牌: "); printf("\t\t到达时间: "); printf("\t位置%d:空空",j); printf("\n"); } return OK; } while(p!=q){ Car car=*(q); printf("\t车牌: %d",car.CarNum); printf("\t\t到达时间:%5.2f",car.time); printf("\t\t位置:%d",l++); printf("\n"); q++; } return OK; } //备用车道 (顺序栈) typedef struct { Car2 *top2; Car2 *base2; // int stacksize2; }SqStack2; //初始化 int InitStack2(SqStack2 &S2){ S2.base2=new Car2[STACKSIZE]; if(!S2.top2) exit(OVERFLOW); // S2.top2=S2.base2; S2.stacksize2=STACKSIZE; return OK; } //判空 int StackEmpty2(SqStack2 S2){ if(S2.top2==S2.base2) return OK; else return ERROR; } //进栈 int Push2(SqStack2 &S2,Car2 e2){ if(S2.top2-S2.base2==STACKSIZE) return ERROR; *S2.top2++=e2; return OK; } //出栈 int Pop2(SqStack2 &S2,Car2 &e2){ if(S2.top2==S2.base2) return ERROR; e2=*--S2.top2; return OK; } //车道信息(链队) typedef struct QNode{ Car data; struct QNode *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front; QueuePtr rear; }LinkQueue; //初始化 int InitQueue(LinkQueue &Q){ Q.front=Q.rear=new QNode; Q.front->next=NULL; return OK; } //进队 int EnQueue(LinkQueue &Q,Car e){ QueuePtr p; p=new QNode; p->data=e; p->next=NULL; Q.rear->next=p; Q.rear=p; return OK; } //判空 int QueueEmpty(LinkQueue Q){ if(Q.front==Q.rear) return OK; else return ERROR; } //出队 int DeQueue(LinkQueue &Q,Car &e){ QueuePtr p; if(Q.front==Q.rear) return ERROR; p=Q.front->next; e=p->data; Q.front->next=p->next; delete p; return OK; } //主函数 int main(){ int i=1; int j=1; int status; float time,money; LinkQueue Q; Car car_I,car_D,car_M; SqStack S; SqStack2 S2; InitStack(S); InitStack2(S2); InitQueue(Q); while(1){ printf("\t\t\t欢迎来到XXX停车场!\n"); printf("*****************************************************************\n"); printf("\t\t\t1--车辆到达停车场\n"); printf("\t\t\t2--车辆离开停车场\n"); printf("\t\t\t3--停车场存放车辆情况\n"); printf("\t\t\t0--退出程序\n"); printf("*****************************************************************\n"); printf("选择(0-3):\n"); scanf("%d",&status) ; if(status==1){ printf("\t请输入车牌号:"); scanf("%d",&car_I.CarNum); printf("\t请输入车到达的时间:"); scanf("%f",&car_I.time); if(!StackFull(S)){ Push(S,car_I); //车进入车库 car_I.pos_a=i; car_I.flag=1; i=i+1; for(int m=1;m<50;m++) //边线 printf("--"); printf("\n"); printf("\t车牌号:"); printf("%d",car_I.CarNum); printf("\t到达时间:"); printf("%5.1f\t",car_I.time); printf("\t车库中的位置是:%d\n",car_I.pos_a); for(int m=1;m<50;m++) //边线 printf("--"); printf("\n"); printf("\n"); printf("\n"); } else{ EnQueue(Q,car_I); car_I.pos_b=j; car_I.flag=0; // ++j; printf("\n"); printf("\tSorry!我们的车库已满!!!,您能够把车!!免费!!停在车道上!\n"); printf("\n"); for(int m=1;m<50;m++) //边线 printf(".."); printf("\n"); printf("\t车牌号:"); printf("%d",car_I.CarNum); printf("\t便道上的位置为:%d\n",car_I.pos_b); for(int m=1;m<50;m++) //边线 printf(".."); printf("\n"); printf("\n"); printf("\n"); } } else if(status==2){ //指令为 2, 开车离去(如果车在车库里收取停车费;在便道上则免费) printf("请输入客户的车牌号:"); scanf("%d",&car_D.CarNum); printf("请输入现在的时间:"); scanf("%f",&car_D.time); i=i-1; int flag=0; //判断车是否在便道上 if(StackFull(S)){ Car *p=S.top; Car *q=S.base; while(p!=q){ Car car=*(q); if(car.CarNum!=car_D.CarNum){ flag++; } if(car.CarNum==car_D.CarNum){ goto loop; } q++; } //while if(flag>=STACKSIZE){ printf("您的车停在便道上,因此免费!!!"); } printf("\n"); printf("\n"); printf("\n"); } //if else{ loop:do{ //挡在前面的车给要出去的车让路 Pop(S,car_M); //加一个判断,判断是不是停车场里的车 if(car_D.CarNum!=car_M.CarNum){ Push2(S2,car_M); } else{ car_I.time=car_M.time; } }while(car_D.CarNum!=car_M.CarNum); while(!StackEmpty2(S2)){ //让路的车返回去 Pop2(S2,car_M); Push(S,car_M); } while(!QueueEmpty(Q)&&!StackFull(S)){ if(!StackFull(S)){ DeQueue(Q,car_M); //便道上的车离开后进入停车场,那么后面的车的位置都得变。 car_M.flag=1; } Push(S,car_M); printf("车牌为%d的车离开车库,车道上车牌为%d的车进入车库\n",car_D.CarNum,car_M.CarNum); } time=car_D.time-car_I.time; if(time<0.0) { printf("输入时间有错!请重新输入!"); } if(time>0.0&&time<=3.0){ money=time*4; } else money=time*6; printf("你的车牌为%d的车,应收费%5.2f元。",car_D.CarNum,money); printf("欢迎下次光临我们的车库\n"); } printf("\n"); printf("\n"); printf("\n"); } else if(status==3) { //指令为 3 ;查看车库停车情况; StackTraverse(S); } else if(status!=1&&status!=2&&status!=3&&status!=0){ printf("\t指令错误!!! 请在下面重新输入:"); } else if(status==0) break; } }展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




停车场管理系统源代码.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4584203.html