收藏 分销(赏)

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

上传人:天**** 文档编号:4315115 上传时间:2024-09-05 格式:DOC 页数:13 大小:76KB
下载 相关 举报
数据结构课程设计(银行排队系统).doc_第1页
第1页 / 共13页
数据结构课程设计(银行排队系统).doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述
(贵州大学计算机科学与信息学院贡献) #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <conio.h> #include <time.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; 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"); 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!=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"); scanf("%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; } default : printf("你的输入有误,请重新输入!\n"); } getch(); } void vip(int x) //vip用户认证 { int i,a; a=x; char ch[3]; int k=0; switch(a) { case 1: { 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++; } else if(i==200&&ch[0]=='2'&&ch[1]=='2'&&ch[2]=='2'&&ch[3]=='2') { printf("\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n"); vip1++; } else if(i==300&&ch[0]=='3'&&ch[1]=='3'&&ch[2]=='3'&&ch[3]=='3') { printf("\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n"); vip1++; } else if(i==400&&ch[0]=='4'&&ch[1]=='4'&&ch[2]=='4'&&ch[3]=='4') { printf("\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n"); vip1++; } else if(i==500&&ch[0]=='5'&&ch[1]=='5'&&ch[2]=='5'&&ch[3]=='5') { printf("\n尊敬的VIP用户您好,请您直接到VIP区办理业务!\n"); vip1++; } else printf("\n你的输入有误!\n"); break; } default : break; } } void time() //时间函数 { time_t timep; time (&timep); printf(" 现在时刻:%s",ctime(&timep)); } void main() //主函数 { system("color 1f"); //屏幕颜色设定 system("mode con: cols=90 lines=35"); time_t a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,end; double 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; double 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 \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) { case 1: { system("cls"); printf("\n*********************************顾客到达界面*****************************************\n\n"); int k=0; int a; 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"); } else if(v==2) { a2=time(NULL); system("pause"); } else if(v==3) { a3=time(NULL); system("pause"); } else if(v==4) { a4=time(NULL); system("pause"); } else if(v==5) { a5=time(NULL); system("pause"); } else if(v==6) { a6=time(NULL); system("pause"); } else if(v==7) { a7=time(NULL); system("pause"); } else if(v==8) { a8=time(NULL); system("pause"); } else if(v==9) { a9=time(NULL); system("pause"); } else if(v==10) { a10=time(NULL); system("pause"); } else { printf("请稍候拿号,谢谢!"); system("pause"); } } system("cls"); break; } case 2: { 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)); } else if(x=2) { end=time(NULL); A[1]=difftime(end,a2); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a2)); } else if(x=3) { end=time(NULL); A[2]=difftime(end,a3); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a3)); } else if(x=4) { end=time(NULL); A[3]=difftime(end,a4); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a4)); } else if(x=5) { end=time(NULL); A[4]=difftime(end,a5); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a5)); } else if(x=6) { end=time(NULL); A[5]=difftime(end,a6); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a6)); } else if(x=7) { end=time(NULL); A[6]=difftime(end,a7); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a7)); } else if(x=8) { end=time(NULL); A[7]=difftime(end,a8); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a8)); } else if(x=9) { end=time(NULL); A[8]=difftime(end,a9); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a9)); } else if(x=10) { end=time(NULL); A[9]=difftime(end,a10); printf(" 您办理业务所用时间为 %0.2f 秒.\n",difftime(end,a10)); } 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: { system("cls"); printf("\n*************************************系统查询界面*****************************************\n\n"); char cool[3]; int i=0,k=0; printf("请输入你的卡号:"); scanf("%d",&i); printf("请您输入五位密码:"); while(cool[k-1]!=' ') { cool[k]=getch(); k++; printf("*"); } if(i==000&&cool[0]=='1'&&cool[1]=='1'&&cool[2]=='1'&&cool[3]=='1') { average=allsum/w; printf("\n至今已有 %d 位普通用户,%d 位vip用户成功办理业务!",w,vip1); printf("\n普通用户业务办理总共用时 %0.2f秒,平均用时 %0.2f秒\n",allsum,average); } getch(); system("cls"); break; } return; getch(); system("cls"); case 6: return; getch(); system("cls"); default: printf("输入有误!请重新输入:\n"); getch(); system("cls"); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服