银行排队叫号代码

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <windows.h>
#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.ar=(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<n) 
{ 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");
}   
}
}

本文发布于:2024-09-23 06:36:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/357802.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:柜台   算法   业务   输入   评分   办理   排队
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议