数据结构课程设计(银行排队系统)(共13页)_第1页
数据结构课程设计(银行排队系统)(共13页)_第2页
数据结构课程设计(银行排队系统)(共13页)_第3页
数据结构课程设计(银行排队系统)(共13页)_第4页
数据结构课程设计(银行排队系统)(共13页)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(贵州大学计算机科学与信息学院贡献)#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <conio.h>#include <time.h>#define n 3int 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 An

2、+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.Ai=0; /元素值为0,表示编号为I的窗口当前状态为空 L.len=0; void Initqueue() /初始化队列的算法 Q.front=Q.rear=(Lnode *)malloc(sizeof

3、(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); e

4、lse 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.Ai); printf("n"); void print2() /输出队列算法 in

5、t 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.Ai=x;i+;L.len+; else Enqueue(&

6、Q,x);void likai(int x) /解决顾客离开事件算法 int i=0;doif(x>L.len)printf("输入有误!n请重新输入:");scanf("%d",&x);else for(i=0;i<=L.len;i+) if(i=x) printf("尊敬的%d号顾客您好!n",x); L.Ai=0; L.len-; if(Q.front!=Q.rear) int y=Dlqueue(&Q);L.Ai=y; L.len+; while(i=0);int guitai( ) /判断输入的柜

7、台号是否正确int y=0; printf("请输入你所办理业务的柜台号(1-3):n");scanf("%d",&y);if(y<1|y>5)printf("你输入的柜台号有误,请重新输入!n"); printf("请输入你所办理业务的柜台号(1-3):n"); scanf("%d",&y);elseprintf(" 你所办理业务的柜台为%d.n",y);return y; int pingfeng( ) /判断输入的分数是否正确int y=0;

8、 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

9、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.2

10、f。感谢你的评分,谢谢!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 ch3; int k=0; switch(a) case 1: printf("请输入你的卡号:"

11、); scanf("%d",&i); printf("请您输入五位密码:"); while(chk-1!=' ') chk=getch(); k+; printf("*"); if(i=100&&ch0='1'&&ch1='1'&&ch2='1'&&ch3='1') printf("n尊敬的VIP用户您好,请您直接到VIP区办理业务!n"); vip1+; else

12、 if(i=200&&ch0='2'&&ch1='2'&&ch2='2'&&ch3='2') printf("n尊敬的VIP用户您好,请您直接到VIP区办理业务!n"); vip1+; else if(i=300&&ch0='3'&&ch1='3'&&ch2='3'&&ch3='3') printf("n尊敬的V

13、IP用户您好,请您直接到VIP区办理业务!n"); vip1+; else if(i=400&&ch0='4'&&ch1='4'&&ch2='4'&&ch3='4') printf("n尊敬的VIP用户您好,请您直接到VIP区办理业务!n"); vip1+; else if(i=500&&ch0='5'&&ch1='5'&&ch2='5'&am

14、p;&ch3='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(&q

15、uot;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 A10=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"); prin

16、tf("n n"); printf(" 1 顾客到达n"); printf(" 2 顾客离开n"); printf(" 3 查看业务办理n"); printf(" 4 查看排队情况n"); printf(" 5 系统查询n"); printf(" 6 退出nn"); time(); printf("n 提示:请按回车键进行下一步操作n"); printf("n n"); printf("*欢迎光临中国银行*

17、n"); printf("请输入:"); scanf("%d",&c); switch(c) case 1: system("cls"); printf("n*顾客到达界面*nn"); int k=0; int a; printf("请选择你的用户类型:VIP用户请按 1;n 普通卡用户请按 2.n"); printf("请输入:"); scanf("%d",&a); if (a=1) vip(a); getch(); else

18、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

19、(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); sy

20、stem("pause"); else printf("请稍候拿号,谢谢!"); system("pause"); system("cls"); break; case 2: system("cls"); printf("n*顾客离开界面*nn"); printf("请输入离开顾客得编号:n"); scanf("%d",&x); likai(x); mygrade() ; w+; if(x=1) end=time(NULL);

21、A0=difftime(end,a1); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a1); else if(x=2) end=time(NULL); A1=difftime(end,a2); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a2); else if(x=3) end=time(NULL); A2=difftime(end,a3); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a3); el

22、se if(x=4) end=time(NULL); A3=difftime(end,a4); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a4); else if(x=5) end=time(NULL); A4=difftime(end,a5); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a5); else if(x=6) end=time(NULL); A5=difftime(end,a6); printf(" 您办理业务所用时间为 %0.2f 秒.n

23、",difftime(end,a6); else if(x=7) end=time(NULL); A6=difftime(end,a7); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a7); else if(x=8) end=time(NULL); A7=difftime(end,a8); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a8); else if(x=9) end=time(NULL); A8=difftime(end,a9); printf(

24、" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a9); else if(x=10) end=time(NULL); A9=difftime(end,a10); printf(" 您办理业务所用时间为 %0.2f 秒.n",difftime(end,a10); allsum+=A0; getch(); system("cls"); break; case 3: system("cls"); printf("n*业务查询界面*nn"); printl(); getch(); system("cls"); break; case 4: system("cls"); print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论