停车场计费函数c语言 停车场计时收费函数c语言( 七 )


return w;
}
//车辆驶出出场函数
stacknode *leave(stacknode *top1,char str[],LQueue *Q)
{
int i,day,hour,min;
time_t rawtime;
struct tm *timeinfo;
time(rawtime);
timeinfo=localtime(rawtime);
day=timeinfo-tm_mday;
hour=timeinfo-tm_hour;
min=timeinfo-tm_min;
stacknode *p,*q;
if(top1==NULL)
{
printf("停车场没有车辆!\n");
return top1;
}
q=(stacknode *)malloc(sizeof(stacknode));
if(p==NULL)
{
printf("内存分配失败");
return top1;
}
q=top1;
while(q!=NULL)
{
if(strcmp(q-data.num,str)==0)
break;
q=q-next;
}
if(q==NULL)
{
printf("输入有误 , 该车辆不在停车场!\n");
return top1;
}
for(i=top1-data.n;iq-data.n;i--)
{
p=(stacknode *)malloc(sizeof(stacknode));
if(p==NULL)
{
printf("内存分配失败");
return top1;
}
strcpy(p-data.num,top1-data.num);
p-data.time=top1-data.time;
p-data.n=top1-data.n-1;
top1=top1-next;
if(top2==NULL)
{
p-next=NULL;
top2=p;
}
else
{
p-next=top2;
top2=p;
}
}
top1=top1-next;
while(top2!=NULL)
{
p=(stacknode *)malloc(sizeof(stacknode));if(p==NULL){printf("内存分配失败");return top1;}
p-data.n=top2-data.n;
strcpy(p-data.num,top2-data.num);
p-data.time=top2-data.time;
p-next=top1;
top1=p;
top2=top2-next;
}
if(EmptyLQue(Q))
{
p=out(Q);
p-data.n--;
top1=LQinto(p,top1);
}
else
b--;
printf("车牌为%s的汽车驶出时间为:%d号%d点%d分\n",q-data.num,day,hour,min);
printf("车辆驶出停车场需要缴纳的费用为:%d元\n",expenses(q,day,hour,min));
return top1;
}
//队列函数初始化
LQueue *InitLQue()
{
LQueue *Q;
stacknode *p;
Q=(LQueue *)malloc(sizeof(LQueue));
p=(stacknode *)malloc(sizeof(stacknode));
p-next=NULL;
Q-front=Q-rear=p;
return Q;
}
//候车区队列入队
LQueue *wait(LQueue *q,stacknode *s)
{
s-next=NULL;
q-rear-next=s;
q-rear=s;
return q;
}
//判断候车便道有无车辆等待
int EmptyLQue(LQueue *q)
{
if(q-front==q-rear)
return 0;
else
return 1;
}
//候车区车辆出队
stacknode *out(LQueue *q)
{
stacknode *p;
p=q-front-next;
if(q-front-next==q-rear)
{
q-rear=q-front;
return p;
}
else
q-front-next=p-next;
p-next=NULL;
return p;
}
//候车队列进入停车场
stacknode *LQinto(stacknode *p,stacknode *top1)
{
p-next=top1;
top1=p;
return top1;
}
//显示停车场内所有车辆信息
void show(stacknode *top1)
{
printf("停车场内全部车辆信息表\n");
if(top1==NULL)
printf("停车场内无车!\n");
else
{
printf("车牌号进入时间位置\n");
while(top1!=NULL)
{
printf(" %s%d号%d点%d分第%d位\n",top1-data.num,top1-data.time.day,top1-data.time.hour,top1-data.time.min,top1-data.n);
top1=top1-next;
}
}
}
//显示候车区的汽车信息
void T_shou(LQueue *Q)
{
LQueue *q;
q=(LQueue *)malloc(sizeof(LQueue));
q-rear=Q-rear-next;
printf("候车区信息\n");
if(q-front==q-rear)
printf("候车区没有车辆!\n");
else
{
printf("车牌号进入时间\n");
while(q!=NULL)
{
printf("%s%d号%d点%d分",q-data.num,q-data.time.day,q-data.time.hour,q-data.time.min);
q-rear=q-rear-next;
}
}
}

推荐阅读