c语言_课程设计银行排队系统
#包含
#包含
#包含
#包含
#包含
#define n 3
int vip1=0;
int y,z;
float sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
浮动i1=0,i2=0,i3=0,i4=0,i5=0;
float ave1=0,ave2=0,ave3=0,ave4=0,ave5=0;
结构列表
{
int A[n 1]; //客户办理业务的n个窗口
int len; //表示数组中元素的数量
(l;
结构节点
//链表的节点类型
Int数据;
Lnode *next;
(;
结构链接队列
//链存储等待队列的类型定义
Lnode *front;
Lnode *rear;
) q;
初始化void Initshuzu ()//线性的算法
{
for(intI=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; //k1
}
voidenqueue (链接队列* q,int elem )//入队算法
{
Lnode *s;
s=(lnode* ) malloc ) sizeof (lnode );
s-data=elem; //k2
s-next=NULL; //k3
Q-rear-next=s; //k4
QR=s; //k5
}
intdlqueue (链路队列* q )//出队算法
{
Lnode *t;
int x;
if(q-front==q-rear ) ) ) )。
{
printf ('队列为空! n ';
退出(1;
}
else
{
t=Q-front-next;
Q-front-next=t-next; //k6
x=1; //k7
free(t; //k8
返回x;
}
}
void printl ()//输出数组算法
{
int i;
printf (办理业务的客户编号为1号柜台2号柜台3号柜台(n );
printf (' );
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!=空)
{
printf('%d ',s-data );
s=s-next; //k9
I;
}
printf('n您前面有%d个人。 请稍等。' 、I;
printf((n );
}
解析voidDaoda(intx )//客户到达事件的算法
{
int i=L.len 1;
if(L.len
{L.A[i]=x;
I;
Len;
}
else
枚举(q,x );
}
voidlikai(intx )//解决客户流失的算法
{
int i=0;
德奥
{
if(XL.len )。
{
printf ('输入错误! n请重新输入:');
扫描(' % d ',x );
}
else
for(I=0; i=L.len; I )
{
if(I==x ) ) )。
{
printf ('尊敬的%d号客户你好!