银行排队系统实验报告文档格式.docx
- 文档编号:22176500
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:35
- 大小:104.91KB
银行排队系统实验报告文档格式.docx
《银行排队系统实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《银行排队系统实验报告文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
printf("
\n******************欢迎光临中国银行***************\n"
);
\n1顾客到达\n"
2顾客离开\n"
3查看业务办理\n"
4查看排队情况\n"
5退出\n\n"
time();
***************欢迎光临中国银行********************\n"
请输入:
"
scanf("
%d"
&
c);
switch(c)
case1:
{
system("
cls"
printf("
\n****************顾客到达界面*******************\n\n"
intk=0;
inta;
请选择你的用户类型:
VIP用户请按1;
\n普通卡用户请按其它键.\n"
a);
system("
break;
}
case2:
\n***************顾客离开界面*****************\n\n"
请输入离开顾客得编号:
\n"
x);
likai(x);
mygrade();
w++;
allsum+=A[0];
getch();
case3:
\n******************业务查询界面**************************\n\n"
printl();
case4:
\n******************排队查询界面************************\n\n"
print2();
case5:
return;
case6:
{system("
\n**************系统查询界面**************************\n\n"
charcool[3];
inti=0,k=0;
请输入你的卡号:
scanf("
i);
请您输入五位密码:
while(cool[k-1]!
='
'
)
{
cool[k]=getch();
k++;
*"
}
if(i==000&
&
cool[0]=='
1'
cool[1]=='
cool[2]=='
cool[3]=='
average=allsum/w;
\n至今已有%d位普通用户,%d位vip用户成功办理业务!
w,vip1);
\n普通用户业务办理总共用时%0.2f,平均用时%0.2f"
allsum,average);
default:
输入有误!
请重新输入:
}
运行界面:
到达界面:
当客户到达时,在主菜单输入“1”进入“客户到达界面”。
此界面区分VIP客户到达和普通客户到达。
VIP:
客户在“到达界面”输入“1”,进入VIP验证,通过VIP卡号和密码验证就可以进入VIP区办理业务。
普通客户:
客户在“到达界面”输入“2”,系统即为客户分配业务号,凭此号办理业务、排队或离开。
使用函数:
vip(a);
验证VIP用户。
daoda(v);
Enqueue(&
Q,x);
将办理业务人员写入线性表,排队人员写入链表。
time1();
开始记录时间。
vip(a)源程序:
voidvip(intx)//vip用户认证
inti,a;
a=x;
charch[3];
intk=0;
switch(a)
case1:
while(ch[k-1]!
ch[k]=getch();
if(i==100&
ch[0]=='
ch[1]=='
ch[2]=='
ch[3]=='
{
printf("
\n尊敬的VIP用户您好,请您直接到VIP区办理业务!
vip1++;
elseif(i==200&
2'
vip1++;
elseif(i==300&
3'
elseif(i==400&
4'
elseif(i==500&
5'
else
\n你的输入有误!
break;
default:
break;
}
daoda(v)源程序:
voiddaoda(intx)//解决顾客到达事件算法
{
inti=L.len+1;
if(L.len<
n)
{L.A[i]=x;
i++;
L.len++;
else
voidEnqueue(Linkqueue*Q,intelem)//进队算法
Lnode*s;
s=(Lnode*)malloc(sizeof(Lnode));
s->
data=elem;
next=NULL;
Q->
rear->
next=s;
rear=s;
time1()源程序:
time1()//时间函数
time_ttimep;
time(&
timep);
time=difftime(end,start);
运行结果:
客户离开界面:
当客户完成办理业务需要离开时。
在主菜单输入“2”进入“客户离开界面”。
此界面提供服务评分。
首先输入自己的客户号,然后选择自己办理业务的柜台号,结合自己对这次服务的满意度给出评分,然后系统给出此柜台的平均分和自己办理业务过程中所需要的时间。
likai(x)intDlqueue(Linkqueue*Q)
离开时出队操作,便将排队的客户写到业务办理的线性表里。
mygrade()intpingfeng()
柜台报务评分。
time1()
中止时间记录,显示从开始记时到此时候的时间。
likai(x)源程序:
voidlikai(intx)//解决顾客离开事件算法
inti=0;
do
if(x>
L.len)
\n请重新输入:
scanf("
else
for(i=0;
i<
=L.len;
i++)
if(i==x)
{
printf("
尊敬的%d号顾客您好!
x);
L.A[i]=0;
L.len--;
if(Q.front!
=Q.rear)
{
inty=Dlqueue(&
Q);
L.A[i]=y;
L.len++;
}
}
}while(i==0);
intDlqueue(Linkqueue*Q)源程序:
intDlqueue(Linkqueue*Q)//出队算法
Lnode*t;
intx;
if(Q->
front==Q->
rear)
队列为空!
exit
(1);
t=Q->
front->
next;
next=t->
x=t->
data;
free(t);
returnx;
mygrade()源程序:
voidmygrade()//主评分函数
为了改善服务质量,请你对我们的服务进行评价。
谢谢!
z=guitai();
y=pingfeng();
switch(z)//柜台评分处理
case1:
//1号柜台评分处理
{
sum1+=y;
i1++;
ave1=sum1/i1;
%d号柜台的平均满意度为%0.2f。
感谢你的评分,谢谢\n"
z,ave1);
}
case2:
//2号柜台评分处理
sum2+=y;
i2++;
ave2=sum2/i2;
z,ave2);
case3:
//3号柜台评分处理
sum3+=y;
i3++;
ave3=sum3/i3;
z,ave3);
case4:
//4号柜台评分处理
sum4+=y;
i4++;
ave4=sum4/i4;
z,ave4);
case5:
//5号柜台评分处理
sum5+=y;
i5++;
ave5=sum5/i5;
z,ave5);
default:
你的输入有误,请重新输入!
intpingfeng()源程序:
intpingfeng()//判断输入的分数是否正确
inty=0;
请输入你评分(1-5):
\n1分…………非常不满意;
\n2分…………比较不满意;
\n3分…………一般满意;
\n4分…………比较满意;
\n5分…………非常满意。
y);
if(y<
1||y>
5)
你输入评分有误,请重新输入!
请输入你的评分(1-5):
else
你的评分为%d.\n"
y);
returny;
业务查询界面:
在主菜单输入“3”进入“业务查询界面”,在此界面可查询到正在业务办理的情况。
printl()
显示正在办理业务的客户。
printl()源程序:
voidprintl()//输出数组算法
inti;
正在办理业务的顾客编号为:
for(i=1;
%d"
L.A[i]);
排队查询界面:
在主菜单输入“4”,进入“排队查询界面”,此界面提供客户的排队情况、排队人数。
print2()
显示排队情况。
print2()源程序:
voidprint2()//输出队列算法
正在等候办理业务的顾客编号为:
Lnode*s=Q.front->
while(s!
=NULL)
s->
data);
s=s->
i++;
\n您的前面一共有%d人在排队,请您稍候!
i);
printf("
系统查询:
因为此功能为内部工作人员使用,所以通道选项在主菜单上隐藏。
在主菜单输入“6”,进入“系统查询界面”。
通过此此界面的卡号、密码验证,就可以查询到系统开起至查询时办理业务的普通客户、VIP客户人数。
并可以显示所有普通客户办理业务的总时间,每个客户所用的平均时间。
查询系统运行的时间。
system("
\n************************系统查询界面**************************\n\n"
xi=difftime(end,start);
\n普通用户业务办理总共用时%0.2f,平均用时%0.2f\n"
系统已运行%0.2f秒!
xi);
附:
全部源代码
#definen3
intvip1=0;
inty,z;
floatsum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
floati1=0,i2=0,i3=0,i4=0,i5=0;
floatave1=0,ave2=0,ave3=0,ave4=0,ave5=0;
staticintN;
structList{
intA[n+1];
//顾客用来办理业务的N个窗口
intlen;
//表示数组中的元素个数
}L;
structLnode{//链表结点类型
intdata;
Lnode*next;
};
structLinkqueue{//链式存储的等候队列的类型定义
Lnode*front;
Lnode*rear;
}Q;
voidInitshuzu()//初始化线性的算法
for(inti=1;
=n;
L.A[i]=0;
//元素值为0,表示编号为I的窗口当前状态为空
L.len=0;
voidInitqueue()//初始化队列的算法
Q.front=Q.rear=(Lnode*)malloc(sizeof(Lnode));
Q.front->
intguitai()//判断输入的柜台号是否正确
请输入你所办理业务的柜台号(1-3):
你输入的柜台号有误,请重新输入!
你所办理业务的柜台为%d.\n"
请输入你的评分(1-5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 排队 系统 实验 报告