资源描述:
《数据结构c语言版课程设计停车场管理系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计:停车场c语言版本的数据结构课程设计,要求用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统停车场停满车后车会停在便道上面下面附上源码,vc:(下编译#include//#include//malloc#include//获取系统时间所用函数#include//getch()#include//设置光标信息mallco#defineMaxSize5/*定义停车场栈长度*/#definePRICE0.05/*每车每分钟收费值
2、*/#defineBASEPRICE0.5//基础停车费#defineEsc27//退出系统#defineExit3//结束对话#defineStop1//停车#defineDrive2//取车intjx=0,jy=32;//全局变量日志打印位置typedefstruct{inthour;intminute;}Time,*PTime;/*时间结点*/typedefstruct/*定义栈元素的类型即车辆信息结点*/{intnum;/*车牌号*/Timearrtime;/*到达时刻或离区时刻*/}CarNode;typedefstr
3、uct/*定义栈,模拟停车场*/{CarNodestack[MaxSize];inttop;}SqStackCar;typedefstructnode/*定义队列结点的类型*/{intnum;/*车牌号*/structnode*next;}QueueNode;typedefstruct/*定义队列,模拟便道*/{QueueNode*front,*rear;}LinkQueueCar;/*函数声明*/PTimeget_time();CarNodegetcarInfo();voidqingping(inta);voidgotoxy(
4、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)re
5、turn(0);//如果栈满,返回0else{s->stack[++s->top]=x;//栈不满,到达车辆入栈return(1);}}/*栈顶元素出栈*/CarNodepop(SqStackCar*s){CarNodex;if(s->top<0){x.num=0;x.arrtime.hour=0;x.arrtime.minute=0;return(x);//如果栈空,返回空值}else{s->top--;return(s->stack[s->top+1]);//栈不空,返回栈顶元素}}/*初始化队列*/voidInitLink
6、Queue(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保存队列中数据元素的个数}}/*数据入队列*/voidEnLinkQueue(LinkQueueCar*q,intx){QueueNode*p;p=(QueueNode*)malloc(sizeof(Que
7、ueNode));//产生一个新结点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);else{p=q->front->next;q->front->next=p->next;if(p->next==NULL)q->rear=q
8、->front;n=p->num;free(p);q->front->num--;return(n);//返回出队的数据信息}}/*********************车辆到达***************************///参数:停车栈停车队列车