数据结构课程设计(银行排队系统)
更新时间:2024-04-25 21:01:01 阅读量: 综合文库 文档下载
(贵州大学计算机科学与信息学院贡献)
#include
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(\正在办理业务的顾客编号为: 一号柜台 printf(\ \ for( i=1;i<=L.len;i++) { printf(\号客户 \ } printf(\ }
void print2() //输出队列算法 { int i=0;
printf(\正在等候办理业务的顾客编号为:\ Lnode *s=Q.front->next; while(s!=NULL) { printf(\ s=s->next;
二号柜台三号柜台\\n\ i++; } printf(\您的前面一共有%d人在排队,请您稍候!\ printf(\}
void daoda(int x) //解决顾客到达事件算法 { int i=L.len+1; if (L.len else Enqueue(&Q,x); } void likai(int x) //解决顾客离开事件算法 { int i=0; do { if(x>L.len) { printf(\输入有误!\\n请重新输入:\ scanf(\ } else for(i=0;i<=L.len;i++) { if(i==x) { printf(\尊敬的%d号顾客您好!\\n\ 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(\ if(y<1||y>5) { printf(\你输入的柜台号有误,请重新输入!\\n\ printf(\请输入你所办理业务的柜台号(1-3):\\n\ scanf(\ } else printf(\你所办理业务的柜台为%d.\\n\ return y; } int pingfeng( ) //判断输入的分数是否正确 { int y=0; printf(\请输入你评分(1-5):\\n 1分…………非常不满意;\\n 2分…………比较不满意;\\n 3分…………一般满意;\\n 4分…………比较满意;\\n 5分…………非常满意。\\n\ printf(\请输入:\ scanf(\ if(y<1||y>5) { printf(\你输入评分有误,请重新输入!\\n\ printf(\请输入你的评分(1-5):\\n\ scanf(\ } else printf(\你的评分为%d.\\n\ return y; } void mygrade() //主评分函数 { printf(\为了改善服务质量,请你对我们的服务进行评价。谢谢!\\n\ z=guitai( ); y=pingfeng( ); switch (z) //柜台评分处理 { case 1: //1号柜台评分处理 { sum1+=y; i1++; ave1=sum1/i1; printf(\号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\\n\ break; } case 2: //2号柜台评分处理 { sum2+=y; i2++; ave2=sum2/i2; printf(\号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\\n\ break; } case 3: //3号柜台评分处理 { sum3+=y; i3++; ave3=sum3/i3; printf(\号柜台的平均满意度为%0.2f。感谢你的评分,谢谢!!!\\n\ 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(\ 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(\尊敬的VIP用户您好,请您直接到VIP区办理业务!\\n\ vip1++; } else if(i==200&&ch[0]=='2'&&ch[1]=='2'&&ch[2]=='2'&&ch[3]=='2') { printf(\尊敬的VIP用户您好,请您直接到VIP区办理业务!\\n\ vip1++; } else if(i==300&&ch[0]=='3'&&ch[1]=='3'&&ch[2]=='3'&&ch[3]=='3') { printf(\尊敬的VIP用户您好,请您直接到VIP区办理业务!\\n\ vip1++; } else if(i==400&&ch[0]=='4'&&ch[1]=='4'&&ch[2]=='4'&&ch[3]=='4') { printf(\尊敬的VIP用户您好,请您直接到VIP区办理业务!\\n\ vip1++; } else if(i==500&&ch[0]=='5'&&ch[1]=='5'&&ch[2]=='5'&&ch[3]=='5') { printf(\尊敬的VIP用户您好,请您直接到VIP区办理业务!\\n\ vip1++; } else printf(\你的输入有误!\\n\ break; } default : break; } } void time() //时间函数 { time_t timep; time (&timep); printf(\ 现在时刻:%s\} void main() //主函数 { system(\ //屏幕颜色设定 system(\ 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\ printf(\ \\n\ printf(\ 1 顾客到达\\n\ printf(\ 2 顾客离开\\n\ printf(\ 3 查看业务办理\\n\ printf(\ 4 查看排队情况\\n\ printf(\ 5 系统查询\\n\ printf(\ 6 退出\\n\\n\ time(); printf(\ 提示:请按回车键进行下一步操作\\n\ printf(\ \\n\ printf(\欢迎光临中国银*******************************************\\n\ printf(\请输入:\ scanf(\ switch(c) { case 1: { system(\ printf(\顾客到达界*****************************************\\n\\n\ int k=0; int a; printf(\请选择你的用户类型:VIP用户请按 1;\\n 通卡用户请按 2.\\n\ 行 行面普 printf(\请输入:\ scanf(\ if (a==1) { vip(a); getch(); } else { v++; //普通卡顾客计数 printf(\尊敬的普通卡用户,你的业务号为%d.\\n\ daoda(v); if(v==1) { a1=time(NULL); //v=1的客户到达时间 system(\ } else if(v==2) { a2=time(NULL); system(\ } else if(v==3) { a3=time(NULL); system(\ } else if(v==4) { a4=time(NULL); system(\ } else if(v==5) { a5=time(NULL); system(\ } else if(v==6) { a6=time(NULL); system(\ } else if(v==7) { a7=time(NULL); system(\ } else if(v==8) { a8=time(NULL); system(\ } else if(v==9) { a9=time(NULL); system(\ } else if(v==10) { a10=time(NULL); system(\ } else { printf(\请稍候拿号,谢谢!\ system(\ } } system(\ break; } case 2: { system(\ printf(\顾客离开界面******************************************\\n\\n\ printf(\请输入离开顾客得编号:\\n\ scanf(\ likai(x); mygrade() ; w++; if(x=1) { end=time(NULL); A[0]=difftime(end,a1); printf(\ 您办理业务所用时间为 %0.2f 秒.\\n\ } else if(x=2) { end=time(NULL); A[1]=difftime(end,a2); printf(\ 您办理业务所用时间为 %0.2f 秒.\\n\ } else if(x=3) { end=time(NULL); A[2]=difftime(end,a3); printf(\ 秒.\\n\ } else if(x=4) { end=time(NULL); A[3]=difftime(end,a4); printf(\ 秒.\\n\ } else if(x=5) { end=time(NULL); A[4]=difftime(end,a5); printf(\ 秒.\\n\ } else if(x=6) { end=time(NULL); A[5]=difftime(end,a6); printf(\ 秒.\\n\ } else if(x=7) { end=time(NULL); A[6]=difftime(end,a7); printf(\ 秒.\\n\ } else if(x=8) 您办理业务所用时间为 %0.2f 您办理业务所用时间为 %0.2f 您办理业务所用时间为 %0.2f 您办理业务所用时间为 %0.2f 您办理业务所用时间为 %0.2f
正在阅读:
数据结构课程设计(银行排队系统)04-25
吃披萨作文350字06-30
迎“七一”党员系列活动实施方案05-24
2017-2022年气体导热系数测定仪市场发展前景分析及供需格局研究预测报告目录01-01
河北省衡水中学2018届高三高考押题(一)化学试题05-29
班组安全管理规章制度09-30
我们身边的诚信小故事11-20
九九乘法口诀表(高清完整版)03-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 排队
- 课程
- 银行
- 设计
- 系统