数据结构课程设计(银行排队系统)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

(贵州大学计算机科学与信息学院贡献)#includestdio.h#includemalloc.h#includestdlib.h#includeconio.h#includetime.h#definen3intvip1=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;structList{intA[n+1];//顾客用来办理业务的N个窗口intlen;//表示数组中的元素个数}L;structLnode{//链表结点类型intdata;Lnode*next;};structLinkqueue{//链式存储的等候队列的类型定义Lnode*front;Lnode*rear;}Q;voidInitshuzu()//初始化线性的算法{for(inti=1;i=n;i++)L.A[i]=0;//元素值为0,表示编号为I的窗口当前状态为空L.len=0;}voidInitqueue()//初始化队列的算法{Q.front=Q.rear=(Lnode*)malloc(sizeof(Lnode));Q.front-next=NULL;}voidEnqueue(Linkqueue*Q,intelem)//进队算法{Lnode*s;s=(Lnode*)malloc(sizeof(Lnode));s-data=elem;s-next=NULL;Q-rear-next=s;Q-rear=s;}intDlqueue(Linkqueue*Q)//出队算法{Lnode*t;intx;if(Q-front==Q-rear){printf(队列为空!\n);exit(1);}else{t=Q-front-next;Q-front-next=t-next;x=t-data;free(t);returnx;}}voidprintl()//输出数组算法{inti;printf(正在办理业务的顾客编号为:一号柜台二号柜台三号柜台\n);printf();for(i=1;i=L.len;i++){printf(%d号客户,L.A[i]);}printf(\n);}voidprint2()//输出队列算法{inti=0;printf(正在等候办理业务的顾客编号为:);Lnode*s=Q.front-next;while(s!=NULL){printf(%d,s-data);s=s-next;i++;}printf(\n您的前面一共有%d人在排队,请您稍候!,i);printf(\n);}voiddaoda(intx)//解决顾客到达事件算法{inti=L.len+1;if(L.lenn)//{L.A[i]=x;i++;L.len++;}elseEnqueue(&Q,x);}voidlikai(intx)//解决顾客离开事件算法{inti=0;do{if(xL.len){printf(输入有误!\n请重新输入:);scanf(%d,&x);}elsefor(i=0;i=L.len;i++){if(i==x){printf(尊敬的%d号顾客您好!\n,x);L.A[i]=0;L.len--;if(Q.front!=Q.rear){inty=Dlqueue(&Q);L.A[i]=y;L.len++;}}}}while(i==0);}intguitai()//判断输入的柜台号是否正确{inty=0;printf(请输入你所办理业务的柜台号(1-3):\n);scanf(%d,&y);if(y1||y5){printf(你输入的柜台号有误,请重新输入!\n);printf(请输入你所办理业务的柜台号(1-3):\n);scanf(%d,&y);}elseprintf(你所办理业务的柜台为%d.\n,y);returny;}intpingfeng()//判断输入的分数是否正确{inty=0;printf(请输入你评分(1-5):\n1分…………非常不满意;\n2分…………比较不满意;\n3分…………一般满意;\n4分…………比较满意;\n5分…………非常满意。\n);printf(请输入:);scanf(%d,&y);if(y1||y5){printf(你输入评分有误,请重新输入!\n);printf(请输入你的评分(1-5):\n);scanf(%d,&y);}elseprintf(你的评分为%d.\n,y);returny;}voidmygrade()//主评分函数{printf(为了改善服务质量,请你对我们的服务进行评价。谢谢!\n);z=guitai();y=pingfeng();switch(z)//柜台评分处理{case1://1号柜台评分处理{sum1+=y;i1++;ave1=sum1/i1;printf(%d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n,z,ave1);break;}case2://2号柜台评分处理{sum2+=y;i2++;ave2=sum2/i2;printf(%d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n,z,ave2);break;}case3://3号柜台评分处理{sum3+=y;i3++;ave3=sum3/i3;printf(%d号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\n,z,ave3);break;}default:printf(你的输入有误,请重新输入!\n);}getch();}voidvip(intx)//vip用户认证{inti,a;a=x;charch[3];intk=0;switch(a){case1:{printf(请输入你的卡号:);scanf(%d,&i);printf(请您输入五位密码:);while(ch[k-1]!=''){ch[k]=getch();k++;printf(*);}if(i==100&&ch[0]=='1'&&ch[1]=='1'&&ch[2]=='1'&&ch[3]=='1'){printf(\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n);vip1++;}elseif(i==200&&ch[0]=='2'&&ch[1]=='2'&&ch[2]=='2'&&ch[3]=='2'){printf(\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n);vip1++;}elseif(i==300&&ch[0]=='3'&&ch[1]=='3'&&ch[2]=='3'&&ch[3]=='3'){printf(\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n);vip1++;}elseif(i==400&&ch[0]=='4'&&ch[1]=='4'&&ch[2]=='4'&&ch[3]=='4'){printf(\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n);vip1++;}elseif(i==500&&ch[0]=='5'&&ch[1]=='5'&&ch[2]=='5'&&ch[3]=='5'){printf(\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n);vip1++;}elseprintf(\n你的输入有误!\n);break;}default:break;}}voidtime()//时间函数{time_ttimep;time(&timep);printf(现在时刻:%s,ctime(&timep));}voidmain()//主函数{system(color1f);//屏幕颜色设定system(modecon:cols=90lines=35);time_ta1,a2,a3,a4,a5,a6,a7,a8,a9,a10,end;doubleb1=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;doubleA[10]={0,0,0,0,0,0,0,0,0,0};intc,x,v=0,w=0;Initshuzu();Initqueue();doublesum=0;while(1){printf(\n*****************************欢迎光临中国银行******************************************\n);printf(\n\n);printf(1顾客到达\n);printf(2顾客离开\n);printf(3查看业务办理\n);printf(4查看排队情况\n);printf(5系统查询\n);printf(6退出\n\n);time();printf(\n提示:请按回车键进行下一步操作\n);printf(\n\n);printf(*****************************欢迎光临中国银行*******************************************\n);printf(请输入:);scanf(%d,&c);switch(c){case1:{system(cls);printf(\n*********************************顾客到达界面*****************************************\n\n);intk=0;inta;printf(请选择你的用户类型:VIP用户请按1;\n普通卡用户请按2.\n);printf(请输入:);scanf(%d,&a);if(a==1){vip(a);getch();}else{v++;//普通卡顾客计数printf(尊敬的普通卡用户,你的业务号为%d.\n,v);daoda(v);if(v==1){a1=time(NULL);//v=1的客户到达时间system(pause);}elseif(v==2){a2=time(NULL);system(pause);}elseif(v==3){a3=time(NULL);system(pause);}elseif(v==4){a4=time(NULL);system(pause);}elseif(v==5){a5=time(NULL);system(pause);}elseif(v==6){a6=time(NULL);system(pause);}elseif(v==7){a7=time(NULL);system(pause);}elseif(v==8){a8=time(NULL);system(pause);}elseif(v==9){a9=time(NULL);system(pause);}elseif(v==10){a10=time(NULL);system(pause);}else{printf(请稍候拿号,谢谢!);system(pause);}}system(cls);break;}case2:{system(cls);printf(\n************************************顾客离开界面******************************************\n\n);printf(请输入离开顾客得编号:\n);scanf(%d,&x);likai(x);mygrade();w++;if(x=1){end=time(NULL);A[0]=difftime(end,a1);printf(您办理业务所用时间为%0.2f秒.\n,difftime(end,a1));}elseif(x=2){end=time(NULL);A[1]=difftime(end,a2);printf(您办理业务所用时间为%0.2f秒.\n,difftime(end,

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功