《数据构造c语言版课程设计停车场管理系统.docx》由会员分享,可在线阅读,更多相关《数据构造c语言版课程设计停车场管理系统.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据构造c语言版课程设计停车场管理系统当前位置:文档视界数据构造c语言版课程设计停车场管理系统数据构造c语言版课程设计停车场管理系统当前位置:文档视界数据构造c语言版课程设计停车场管理系统数据构造c语言版课程设计停车场管理系统#defineEsc27/退出系统#defineExit3/结束对话#defineStop1/停车#defineDrive2/取车intjx=0,jy=32;/全局变量日志打印位置typedefstructinthour;intminute;Time,*PTime;/*时间结点*/typedefstruct/*定义栈元素的类型即车辆信息结点*/intnum;/*车牌号*/
2、Timearrtime;/*到达时刻或离区时刻*/CarNode;typedefstruct/*定义栈,模拟停车场*/CarNodestackMaxSize;inttop;SqStackCar;typedefstructnode/*定义队列结点的类型*/intnum;/*车牌号*/structnode*next;QueueNode;typedefstruct/*定义队列,模拟便道*/QueueNode*front,*rear;LinkQueueCar;/*函数声明*/PTimeget_time();CarNodegetcarInfo();voidqingping(inta);voidgotox
3、y(intx,inty);voidprintlog(Timet,intn,intio,charab,intpo,doublef);voidprintstop(inta,intnum,intx0,inty0);voidprintleave(inta,intpo,intnum);/*初始化栈*/voidInitSeqStack(SqStackCar*s)s-top=-1;/*push入站函数*/intpush(SqStackCar*s,CarNodex)/数据元素x入指针s所指的栈if(s-top=MaxSize-1)return(0);/假如栈满,返回0elses-stack+s-top=x;/
4、栈不满,到达车辆入栈return(1);/*栈顶元素出栈*/CarNodepop(SqStackCar*s)CarNodex;if(s-toptop-;return(s-stacks-top+1);/栈不空,返回栈顶元素/*初始化队列*/voidInitLinkQueue(LinkQueueCar*q)q-front=(QueueNode*)malloc(sizeof(QueueNode);/产生一个新结点,作头结点if(q-front!=NULL)q-rear=q-front;q-front-next=NULL;q-front-num=0;/头结点的num保存队列中数据元素的个数/*数据入队
5、列*/voidEnLinkQueue(LinkQueueCar*q,intx)QueueNode*p;p=(QueueNode*)malloc(sizeof(QueueNode);/产生一个新结点p-num=x;p-next=NULL;q-rear-next=p;/新结点入队列q-rear=p;q-front-num+;/队列元素个数加1/*数据出队列*/intDeLinkQueue(LinkQueueCar*q)QueueNode*p;intn;if(q-front=q-rear)/队空返回0return(0);elsep=q-front-next;q-front-next=p-next;i
6、f(p-next=NULL)q-rear=q-front;n=p-num;free(p);q-front-num-;return(n);/返回出队的数据信息/*车辆到达*/参数:停车栈停车队列车辆信息/返回值:空/功能:对传入的车辆进行入栈栈满则入队列voidArrive(SqStackCar*stop,LinkQueueCar*lq,CarNodex)intf;f=push(stop,x);/入栈if(f=0)/栈满EnLinkQueue(lq,x.num);/入队printstop(1,lq-front-num,0,23);printlog(x.arrtime,x.num,1,B,lq-f
7、ront-num,0);qingping(0);printf(您的车停在便道%d号车位上n,lq-front-num);/更新对话elseprintstop(0,stop-top+1,0,23);printlog(x.arrtime,x.num,1,P,stop-top+1,0);qingping(0);printf(您的车停在停车场%d号车位上n,stop-top+1);/更新对话qingping(1);printf(按任意键继续);getch();/*车辆离开*/参数:停车栈指针s1,暂存栈指针s2,停车队列指针p,车辆信息x/返回值:空/功能:查找栈中s1的x并出栈,栈中没有则查找队p中并出队,打印离开收费信息voidLeave(SqStackCar*s1,SqStackCar*s2,LinkQueueCar*p,CarNodex)doublefee=0;intposition=s1-top+1;/车辆所在车位intn,f=0;CarNodey;QueueNode*q;此页面能否是列表页或首页?未找到适宜正文内容。