当前位置:文档之家› 银行排队叫号代码

银行排队叫号代码

#include
#include
#include
#include
#include
#include
#define n 3
int vip1=0;
int y,z;
float sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
float i1=0,i2=0,i3=0,i4=0,i5=0;
float ave1=0,ave2=0,ave3=0,ave4=0,ave5=0;
static int N;
struct List{
int A[n+1]; //顾客用来办理业务的N个窗口
int len; //表示数组中的元素个数
}L;
struct Lnode{ //链表结点类型
int data;
Lnode *next;
};
struct Linkqueue{ //链式存储的等候队列的类型定义
Lnode *front;
Lnode *rear;
}Q;
void Initshuzu() //初始化线性的算法
{
for(int i=1;i<=n;i++)
L.A[i]=0; //元素值为0,表示编号为I的窗口当前状态为空
L.len=0;
}
void Initqueue() //初始化队列的算法
{
Q.front=Q.rear=(Lnode *)malloc(sizeof(Lnode));
Q.front->next=NULL;
}
void Enqueue(Linkqueue *Q,int elem) //进队算法
{
Lnode *s;
s=(Lnode *)malloc(sizeof(Lnode));
s->data=elem;
s->next=NULL;
Q->rear->next=s;
Q->rear=s;
}
int Dlqueue(Linkqueue *Q) //出队算法
{
Lnode *t;
int x;
if(Q->front==Q->rear)
{
printf("队列为空!\n");
exit(1);
}
else
{
t=Q->front->next;
Q->front->next=t->next;
x=t->data;
free(t);
return x;
}
}
void printl() //输出数组算法
{
int i;
printf("正在办理业务的顾客编号为:\n");
for( i=1;i<=L.len;i++)
{
printf("%d ",L.A[i]);
}
printf("\n");
}
void print2() //输出队列算法
{
int i=0;
printf("正在等候办理业务的顾客编号为:");
Lnode *s=Q.front->next;
while(s!=NULL)
{
printf("%d ",s->data);
s=s->next;
i++;
}
printf("\n您的前面一共有%d人在排队,请您稍候!",i);
printf("\n");
}
void daoda(int x) //解决顾客到达事件算法
{
int i=L.len+1;
if (L.len{ L.A[i]=x;
i++;
L.len++;
}
else
Enqueue(&Q,x);
}
void likai(int x) //解决顾客离开事件算法
{
int i=0;
do
{
if(x>L.len)
{
printf("输入有误!\n请重新输入:");
scanf("%d",&x);
}
else
for(i=0;i<=L.len;i++)
{
if(i==x)
{
printf("尊敬的%d号柜台的顾客您好!\n",x);
L.A[i]=0;
L.len--;
if(Q.front!=Q.rear)
{
int y=Dlqueue(&Q);
L.A[i]=y;
L.len++;
}
}
}
}while(i==0);
}
int guitai( ) //判断输入的柜台号是否正确
{
int y=0;
printf("请输入你所办理业务的柜台号(1-3):\n");
sca

nf("%d",&y);
if(y<1||y>5)
{
printf("你输入的柜台号有误,请重新输入!\n");
printf("请输入你所办理业务的柜台号(1-3):\n");
scanf("%d",&y);
}
else
printf(" 你所办理业务的柜台为%d.\n",y);
return y;
}
int pingfeng( ) //判断输入的分数是否正确
{
int y=0;
printf("请输入你评分(1-5):\n 1分????非常不满意;\n 2分????比较不满意;\n 3分????一般满意;\n 4分????比较满意;\n 5分????非常满意。\n");
printf("请输入:");
scanf("%d",&y);
if(y<1||y>5)
{
printf("你输入评分有误,请重新输入!\n");
printf("请输入你的评分(1-5):\n");
scanf("%d",&y);
}
else
printf(" 你的评分为%d.\n",y);
return y;
}
void mygrade() //主评分函数
{
printf("为了改善服务质量,请你对我们的服务进行评价。谢谢!\n");
z=guitai( );
y=pingfeng( );
switch (z) //柜台评分处理
{
case 1: //1号柜台评分处理
{
sum1+=y;
i1++;
ave1=sum1/i1;
printf(" %d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n",z,ave1);
break;
}
case 2: //2号柜台评分处理
{
sum2+=y;
i2++;
ave2=sum2/i2;
printf(" %d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n",z,ave2);
break;
}
case 3: //3号柜台评分处理
{
sum3+=y;
i3++;
ave3=sum3/i3;
printf(" %d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n",z,ave3);
break;
}
case 4: //4号柜台评分处理
{
sum4+=y;
i4++;
ave4=sum4/i4;
printf(" %d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n",z,ave4);
break;
}
case 5: //5号柜台评分处理
{
sum5+=y;
i5++;
ave5=sum5/i5;
printf(" %d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n",z,ave5);
break;
}
default : printf("你的输入有误,请重新输入!\n");
}
getch();
}

void time() //时间函数
{
time_t timep;
time (&timep);
printf(" 现在时刻:%s",ctime(&timep));
}
void main() //主函数
{
float b1=0,b2=0,b3=0,b4=0,b5=0,b6=0,b7=0,b8=0,b9=0,b10=0,allsum=0,average=0,xi=0;
float A[10]={0,0,0,0,0,0,0,0,0,0};
int c,x,v=0,w=0;
Initshuzu();
Initqueue();
double sum=0;
while(1)
{
printf("\n*************************

****欢迎光临中国银行*****************************\n");

printf("\n 1 顾客到达\n");
printf(" 2 顾客离开\n");
printf(" 3 查看业务办理\n");
printf(" 4 查看排队情况\n");
printf(" 5 退出\n\n");
time();
printf("*****************************欢迎光临中国银行***************************\n");
printf("请输入:");
scanf("%d",&c);
switch(c)
{
case 1:
{
system("cls");
printf("\n*****************顾客到达界面*****************************\n\n");
int k=0;
int a;
int second;
v++;
printf("尊敬的用户,你的业务号为%d.\n",v);
for(second = 0 ; second<5 ; second++)
{
Sleep(300);//延时1秒
}

daoda(v);

system("cls");
break;
}
case 2:
{
system("cls");
printf("\n********************顾客离开界面******************************\n\n");
printf("请输入离开顾客柜台的编号:\n");
scanf("%d",&x);
likai(x);
mygrade();
w++;
allsum+=A[0];
getch();
system("cls");
break;
}
case 3:
{
system("cls");
printf("\n***********************业务查询界面*******************************\n\n");
printl();
getch();
system("cls");
break;
}
case 4:
{
system("cls");
printf("\n******************排队查询界面***********************\n\n");
print2();
getch();
system("cls");
break;
}
case 5:
return;
getch();
system("cls");
default: printf("输入有误!请重新输入:\n");
getch();
system("cls");
}
}
}

相关主题
文本预览
相关文档 最新文档