C停车场管理系统简单代码实现.docx
- 文档编号:2064715
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:10
- 大小:16.46KB
C停车场管理系统简单代码实现.docx
《C停车场管理系统简单代码实现.docx》由会员分享,可在线阅读,更多相关《C停车场管理系统简单代码实现.docx(10页珍藏版)》请在冰豆网上搜索。
C停车场管理系统简单代码实现
C停车场管理系统简单代码实现
#include
#include
#include
#include
#defineMAX30/*车库容量*/
#defineprice30/*每车每小时费用*/
typedefstructtime
{
inthour;
intmin;
}Time;/*时间结点*/
typedefstructnode
{
charnum[10];
Timereach;
Timeleave;
}CarNode;/*车辆信息结点*/
typedefstructNODE
{
CarNode*stack[MAX+1];
inttop;
}SeqStackCar;/*模拟车站*/
typedefstructcar
{
CarNode*data;
structcar*next;
}QueueNode;
typedefstructNode
{
QueueNode*head;
QueueNode*rear;
}LinkQueueCar;/*模拟通道*/
voidInitStack(SeqStackCar*);/*初始化栈*/
intInitQueue(LinkQueueCar*);/*初始化便道*/
intArrival(SeqStackCar*,LinkQueueCar*);/*车辆到达*/
voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);/*车辆离开*/
voidList(SeqStackCar,LinkQueueCar);/*显示存车信息*/
voidmain()
{
system("color00f");
SeqStackCarEnter,Temp;
LinkQueueCarWait;
intch;
InitStack(&Enter);/*初始化车站*/
InitStack(&Temp);/*初始化让路的临时栈*/
InitQueue(&Wait);/*初始化通道*/
while
(1)
{
cout<<"欢迎光临"< cout<<"**************************"< cout<<"1.车辆到达"< cout<<"2.车辆离开"< cout<<"3.列表显示"< cout<<"4.退出系统"< cout<<"**************************"< cout<<"请选择所需要的服务! "< cout<<"请注意正确输入时间,不要为非数字! "< while (1) { cin>>ch; if(ch>=1&&ch<=4)break; elsecout<<"请选择: 1|2|3|4."< } switch(ch) { case1: Arrival(&Enter,&Wait);break;/*车辆到达*/ case2: Leave(&Enter,&Temp,&Wait);break;/*车辆离开*/ case3: List(Enter,Wait);break;/*列表打印信息*/ case4: exit(0);/*退出主程序*/ default: break; } } } voidInitStack(SeqStackCar*s)/*初始化栈*/ { inti; s->top=0; for(i=0;i<=MAX;i++) s->stack[s->top]=NULL; } intInitQueue(LinkQueueCar*Q)/*初始化便道*/ { Q->head=(QueueNode*)malloc(sizeof(QueueNode)); if(Q->head! =NULL) { Q->head->next=NULL; Q->rear=Q->head; return (1); } elsereturn(-1); } voidPRINT(CarNode*p,introom)/*打印出站车的信息*/ { intA1,A2,B1,B2; cout<<"请输入离开的时间: /**: **/"< cin>>p->leave.hour; while(p->leave.hour { cout<<"error! "< cout<<"请输入离开的时间的时("< cin>>p->leave.hour; B1=p->leave.hour; } cout<<": "< cin>>p->leave.min; cout< "< puts(p->num); cout<<"其到达时间为: "< "< cout<<"离开时间为: "< "< A1=p->reach.hour; A2=p->reach.min; B1=p->leave.hour; B2=p->leave.min; cout<<"应交费用为: "<<((B1-A1)*60+(B2-A2))*price<<"元! "< free(p); } intArrival(SeqStackCar*Enter,LinkQueueCar*W)/*车辆到达*/ { CarNode*p; QueueNode*t; p=(CarNode*)malloc(sizeof(CarNode)); flushall(); cout<<"请输入车牌号(例: A1234): "< gets(p->num); if(Enter->top { Enter->top++; cout<<"车辆在车场第"< "< cout<<"请输入到达时间: /**: **/"< cin>>p->reach.hour; while(p->reach.hour<0||p->reach.hour>23) { cout<<"error! "< cout<<"请输入到达时间的时(0-23)! "< cin>>p->reach.hour; } cout<<": "< cin>>p->reach.min; while(p->reach.min<0||p->reach.min>59) { cout<<"error! "< cout<<"请输入到达时间的分(0-59)! "< cin>>p->reach.min; } Enter->stack[Enter->top]=p; return (1); } else/*车场已满,车进便道*/ { cout<<"该车须在便道等待! "< t=(QueueNode*)malloc(sizeof(QueueNode)); t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; return (1); } } voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W) {/*车辆离开*/ introom; CarNode*p,*t; QueueNode*q; /*判断车场内是否有车*/ if(Enter->top>0)/*有车*/ { while (1)/*输入离开车辆的信息*/ { cout<<"请输入车在车场的位置1--"< "; cin>>room; if(room>=1&&room<=Enter->top)break; } while(Enter->top>room)/*车辆离开*/ { Temp->top++; Temp->stack[Temp->top]=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; } p=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; while(Temp->top>=1) { Enter->top++; Enter->stack[Enter->top]=Temp->stack[Temp->top]; Temp->stack[Temp->top]=NULL; Temp->top--;} PRINT(p,room); /*判断通道上是否有车及车站是否已满*/ if((W->head! =W->rear)&&Enter->top { q=W->head->next; t=q->data; Enter->top++; cout<<"便道的"< "< cout<<"请输入现在的时间如/*: */: "< if(p->reach.hour<0||p->reach.hour>23) { cout<<"error! "< cout<<"请输入到达时间的时(0-23)! "< cin>>p->reach.hour; } cout<<": "< cin>>p->reach.min; if(p->reach.min<0||p->reach.min>59) { cout<<"error! "< cout<<"请输入到达时间的分(0-59)! "< cin>>p->reach.min; } W->head->next=q->next; if(q==W->rear)W->rear=W->head; Enter->stack[Enter->top]=t; free(q); } elsecout<<"便道里没有车! "< } elsecout<<"车场里没有车! "< } voidList1(SeqStackCar*S)/*列表显示车场信息*/ { inti; if(S->top>0)/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 系统 简单 代码 实现