C停车场管理系统简单代码实现.docx

上传人:b****2 文档编号:2064715 上传时间:2022-10-26 格式:DOCX 页数:10 大小:16.46KB
下载 相关 举报
C停车场管理系统简单代码实现.docx_第1页
第1页 / 共10页
C停车场管理系统简单代码实现.docx_第2页
第2页 / 共10页
C停车场管理系统简单代码实现.docx_第3页
第3页 / 共10页
C停车场管理系统简单代码实现.docx_第4页
第4页 / 共10页
C停车场管理系统简单代码实现.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

C停车场管理系统简单代码实现.docx

《C停车场管理系统简单代码实现.docx》由会员分享,可在线阅读,更多相关《C停车场管理系统简单代码实现.docx(10页珍藏版)》请在冰豆网上搜索。

C停车场管理系统简单代码实现.docx

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.hourreach.hour||p->leave.hour>23)

{

cout<<"error!

"<

cout<<"请输入离开的时间的时("<reach.hour<<"-23)"<

cin>>p->leave.hour;

B1=p->leave.hour;

}

cout<<":

"<

cin>>p->leave.min;

cout<

"<

puts(p->num);

cout<<"其到达时间为:

"<reach.hour<<":

"<reach.min<

cout<<"离开时间为:

"<leave.hour<<":

"<leave.min<

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<<"车辆在车场第"<top<<"位置!

"<

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--"<top<<":

";

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<<"便道的"<num<<"号车进入车场第"<top<<"位置!

"<

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)/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

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

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