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


typedef struct node
{
information data;
struct node *next;
}stacknode; stacknode *top1,*top2;
//队列结构体定义
typedef struct
{
information data;
stacknode *front,*rear;
}LQueue;LQueue *Q;
//函数声明部分/////////////////////////////////////////////////////////
stacknode *Init();//栈的初始化
stacknode *into(stacknode *top1,LQueue *Q);//初始化车辆进入
int expenses(stacknode *p,int x,int y);//停车费用计算函数
stacknode *leave(stacknode *top1,char str[],LQueue *Q);//车辆驶出出场函数
LQueue *InitLQue();//初始化队列函数
LQueue *wait(LQueue *q,stacknode *s);//车辆进入候车便道函数
int EmptyLQue(LQueue *q);//判断候车便道有无等待车辆函数
stacknode *out(LQueue *q);//候车区车辆出队
stacknode *LQinto(stacknode *p,stacknode *top1);//从候车便道进入停车场函数
void show(stacknode *top1);//显示停车场所有信息函数
void T_shou(LQueue *Q);//显示候车区信息
/*函数部分*/
//主函数
void main()
{
char str[10];
Q=InitLQue();
top1=Init();
top2=Init();
Q=InitLQue();
int i;
printf("\t\t\t*************************************\n");
printf("\t\t\t\t停车场管理系统\n");
printf("\t\t\t||1. 车辆进入停车场||\n");
printf("\t\t\t||2. 车辆离开停车场||\n");
printf("\t\t\t||3. 显示停车场内所有车辆信息||\n");
printf("\t\t\t||4. 显示候车区内所有车辆信息||\n");
printf("\t\t\t||5. 退出||\n");
printf("\t\t\t*************************************\n");
while(i!=5)
{
printf("\t请输入选项1-5:");
scanf("%d",i);
switch(i)
{
case 1:
top1=into(top1,Q);
break;
case 2:
printf("请输入离开车辆的车牌号:");
scanf("%s",str);
top1=leave(top1,str,Q);
break;
case 3:show(top1);break;
case 4:T_shou(Q);break;
case 5:exit(1);
default:printf("输入错误,请重新输入1—5:");
break;
}
}
}
/*子函数*/
//初始化
stacknode *Init()
{
stacknode *top;
top=(stacknode *)malloc(sizeof(stacknode));
top=NULL;
return top;
}
//初始化车辆进入
stacknode *into(stacknode *top1,LQueue *Q)
{
stacknode *p,*q;
time_t rawtime;//调用系统时间函数
struct tm *timeinfo;//时间结点
time(rawtime);
timeinfo=localtime(rawtime);
p=(stacknode *)malloc(sizeof(stacknode));
if(p==NULL)
{
printf("内存分配失败");
return top1;
}
printf("请输入进入停车场车辆的车牌号:");
scanf("%s",p-data.num);
q=top1;
while(q!=NULL)
{
if(strcmp(p-data.num,q-data.num)==0)
{
printf("车牌号输入有误 , 该车已进入!");
return top1;
}
q=q-next;
}
p-data.time.day=timeinfo-tm_mday;
p-data.time.hour=timeinfo-tm_hour;
p-data.time.min=timeinfo-tm_min;
p-data.n=b;
if(bmax)
{
printf("停车场已满,请在便道等候!\n");
wait(Q,p);
return top1;
}
if(top1==NULL)
{
p-next=NULL;
top1=p;
}
else
{
p-next=top1;
top1=p;
}
b++;
printf("车辆进入停车场成功,时间已经自动载入!\n");
printf("车牌为%s的汽车驶入时间为:%d号%d点%d分\n",top1-data.num,top1-data.time.day,top1-data.time.hour,top1-data.time.min);
return top1;
}
//停车费用计算函数
int expenses(stacknode *p,int x1,int x2,int x3)
{
int w;
if(x3!=0)
w=(x1*24+x2+1-(p-data.time.day*24+p-data.time.hour))*price;
else
w=(x1*24+x2-(p-data.time.day*24+p-data.time.hour))*price;

推荐阅读