欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    银行排队系统.doc

    • 资源ID:2792107       资源大小:1,021.50KB        全文页数:35页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    银行排队系统.doc

    精选优质文档-倾情为你奉上课程设计说明书题目:银行排队系统班级:*姓名:*学号:*指导教师:*一、需求分析1 问题描述在传统的银行排队中,物理排队需要人工进行排号、取号等,显得很繁琐,因此这样的传统方式已经不能满足现代人们的需求。作为计算机专业人士,开发的软件银行排队系统能很好地取代了这样繁琐的工作,方便了银行工作人员的工作、减轻了他们的工作负担;也方便了办理业务的顾客,他们只需要通过系统取号、叫号等服务,就能简单实现办理业务,极大地简化了办理流程。2 基本任务通过实际调查分析,系统需要实现以下基本功能:(1)实现普通用户的取号、叫号、办理业务(办理窗口有4个)(2)实现VIP用户的特殊化业务办理(1个VIP办理窗口)(3)银行管理员对系统信息的管理二、概要设计为了完成需求分析的基本任务,主要从以下3个方面进行设计:1 主界面设计为了简化用户的操作,设计了一个多菜单选项主控菜单模块,实现了友好的用户界面。系统主控菜单如图1 图12 数据结构设计系统采用队列的链式结构实现顾客的“传统物理排队”。其中每个结点代表一位排队的用户,结点包含用户取号、对应的服务窗口信息3 系统功能设计(1)队列操作:void Initial(); /初始化队列int Is_Empty(); /队列是否为空void In_Queue(QNode * &s); /入队void Out_Queue(QNode * &t); /出队(2)函数模块:void System(); /主体函数void Get_Time(struct tm * &t); /获取时间char Get_Choice(char,char); /获取正确的选择char Start(); /开始界面同时返回用户选择int Is_Vip(char ,char ); /判断是不是vip客户void Check_Queue(); /查看排队情况(针对于用户)void Grade(int); /评分void Common_User(int,char ,char ); /普通用户界面void Vip_User(); /VIP用户界面void User(); /用户主界面void Administrator(); /管理员界面三、模块设计1 主要模块设计void Initial(); /初始化队列int Is_Empty(); /队列是否为空void In_Queue(QNode * &s); /入队void Out_Queue(QNode * &t); /出队void Get_Time(struct tm * &t); /获取时间char Get_Choice(char,char); /获取正确的选择int Is_Vip(char ,char ); /判断是不是vip客户void Check_Queue(); /查看排队情况(针对于用户)void Grade(int); /评分2 系统子模块及其功能设计void System(); /主体函数char Start(); /开始界面同时返回用户选择void Common_User(int,char ,char ); /普通用户界面void Vip_User(); /VIP用户界面void User(); /用户主界面void Administrator(); /管理员界面3 系统模块之间的调用如图2: 图2四、详细设计1 数据结构设计系统采用队列的链式结构进行排队的功能实现队列结点定义如下:/*队列结点*/typedef struct qqint n; /用户取号int service; /对应的服务窗口struct qq *next;/指针域QNode;/*队列*/typedef struct QQNode *front; /头指针QNode *rear; /尾指针Queue;2 系统主要模块设计void Initial(); /初始化队列int Is_Empty(); /队列是否为空void In_Queue(QNode * &s); /入队void Out_Queue(QNode * &t); /出队void Get_Time(struct tm * &t); /获取时间char Get_Choice(char,char); /获取正确的选择int Is_Vip(char ,char ); /判断是不是vip客户void Check_Queue(); /查看排队情况(针对于用户)void Grade(int); /评分五、调试分析1 主界面2 用户界面 (1) 用户主界面 (2) 排队取号 (3) 查看排队情况 (4) 叫号情况(4) 办理业务普通用户VIP用户3 管理员界面 (1) 管理员界面 (2) 查看系统信息六、用户使用说明 1.进入主界面后,根据您的身份选择相应选项(用户、管理员),用户进入用户界面,管理员进入管理员界面。 2.用户: 普通用户需要先取号,然后排队等候,在排队期间、可以根据提示查看相应的信息(如您前面的排队人数、叫号情况等等),当您被叫号或者您前面没有人排队的时候您就可以去办理业务了 3.VIP用户:根据系统的判断,如果您是VIP用户,您将无需排队,直接到VIP专属服务窗口办理业务4管理员:需要通过密码验证后,才能进入到管理员界面(管理员默认密码为:)七、程序源代码/*-Head.h-*/#ifndef HEAD1_H#define HEAD1_H/*管理员的密码为:*/*-常量、队列信息定义-*/#define MAX 40 /用于限制字符数组大小的常量#define N 4 /普通服务柜台数/*队列结点*/typedef struct qqint n; /用户取号int service; /对应的服务窗口struct qq *next;/指针域QNode;/*队列*/typedef struct QQNode *front; /头指针QNode *rear; /尾指针Queue;/*全局变量*/static Queue *q; /队列static int people; /总排队人数static int current_people; /当前排队人数static int common; /普通用户人数static int vip; /VIP用户办理人数/*-队列操作的定义-*/void Initial(); /初始化队列int Is_Empty(); /队列是否为空void In_Queue(QNode * &s); /入队void Out_Queue(QNode * &t); /出队/*-函数模块声明-*/void System(); /主体函数void Get_Time(struct tm * &t); /获取时间char Get_Choice(char,char); /获取正确的选择char Start(); /开始界面同时返回用户选择int Is_Vip(char ,char ); /判断是不是vip客户void Check_Queue(); /查看排队情况(针对于用户)void Grade(int); /评分void Common_User(int,char ,char ); /普通用户界面void Vip_User(); /VIP用户界面void User(); /用户主界面void Administrator(); /管理员界面#endif/*-函数定义-*/#include<stdio.h>#include<stdlib.h>#include<time.h>#include<conio.h>#include<string.h>#include<windows.h>#include"Head.h"/*-队列操作-*/void Initial() /初始化队列q=(Queue *)malloc(sizeof(Queue);q->front = q->rear = NULL;int Is_Empty() /队列是否为空return(q->rear = NULL);void In_Queue(QNode * &s) /入队QNode * p= q->front;s=(QNode *)malloc(sizeof(QNode);while(p)p=p->next;people+;s->n = people-vip; /获取排队编号if(Is_Empty()q->front = q->rear = s;elseq->rear->next = s;q->rear = s;s->next = NULL;common+;current_people+;void Out_Queue(QNode * &t)/出队if(Is_Empty()printf("tt暂时没人排队,因此无法提供相应信息_!n");return;t = q->front;if(q->front = q->rear)q->front = q->rear =NULL;elseq->front = t->next;current_people-;/*-主体函数-*/void System()while(1)system("cls");system("color 2f");char ch=Start();switch(ch)case '1':User();break;case '2':char code7;char c7=""int i=0;printf("tt输入管理密码:");for(;i<6;i+)codei=getch();printf("%c",'*');codei='0'printf("n");Sleep(1000);if(strcmp(code,c)!=0)printf("tt密码错误!(可能您不是管理员、或者您忘记了密码)n");system("pause");break;printf("tt密码正确_!n");system("pause");Administrator();break;case '3':system("cls");printf("t-n""t 中国银行 n""t-nnn");printf("欢迎下次光临,再见_nn");system("pause");if(ch = '3')break;system("pause");/*-开始界面&&获取用户的选择-*/char Start()struct tm *t; /时间结构char ch; /选择Get_Time(t); /获取系统时间system("color 2f");printf(" */欢迎光临中国银行*n"" * *n"" * *n"" * *n"" * *n"" * 1 客户 *n"" * *n"" * *n"" * 2 管理员 *n"" * (警告:非管理员禁止入内) *n"" * *n"" * 3 退出 *n"" * *n"" * *n"" * %2d:%2d:%2d *n"" * %4d/%2d/%2d *n"" * *n"" */欢迎光临中国银行*nnn",t->tm_hour,t->tm_min,t->tm_sec,t->tm_year + 1990,t->tm_mon + 1,t->tm_wday);printf("tt尊敬的用户,");if(t->tm_hour < 12)printf("上午好_n");else if(t->tm_hour < 18)printf("下午好_n");elseprintf("晚上好_n");printf("tt请输入您的选择(13):");ch=Get_Choice('1','3');return ch; /返回选择/*-用户界面-*/void User()char ch; /用户的菜单选择while(1)system("cls");system("color 3f");printf("t-n""t 欢迎光临中国银行 n""t-nnn");printf("tttt1 取号排队n""tttt2 查看排队情况n""tttt3 叫号情况n""tttt4 办理业务(VIP可以直接办理业务_)n""tttt5 返回主菜单nnn");printf("tt输入您的选择:");ch=Get_Choice('1','5');switch(ch)case '1':FILE *fp;char card_numMAX;if(fp=fopen("vip.txt","r")=NULL)printf("ttvip.txt文档操作失败! :(n");exit(1);printf("tt您是VIP用户吗?(Y/N)n""ttVIP用用户的账号有:n");while(fgets(card_num,MAX,fp)!=NULL)int i=0;printf("tt");for(;i<6;i+)putchar(card_numi);putchar('n');printf("tt");if(getchar()='Y')printf("tt好的,您可以直接去办理业务,无需排队了_n");break;QNode *s;In_Queue(s);printf("t取号成功,您的排队编号为:%d(温馨提醒:请记住编号,这是排队的依据_)n",s->n);break;case '2':Check_Queue();/查看排队情况break;case '3': /查看叫号情况if(Is_Empty()printf("tt暂时没人排队,因此无法提供相应信息_!n");break;printf("tt排队序号为%d的用户可以办理业务了_n",q->front->n);break;case '4':char c_nMAX; /用户输入的账号char cMAX; /用户输入的密码int is_vip; /判断用户是不是VIPis_vip=Is_Vip(c_n,c);switch(is_vip)case 0:QNode *t;if(Is_Empty()printf("tt暂时没人排队,因此无法提供相应信息_!n");break;printf("tt您的排队序号是%d吗?n""(本着中华民族的诚信优良传统,请不要插别人的队_)n""(输入Y代表'是',输入N或其它代表'不是'):",q->front->n);if(getchar() != 'Y')break;system("pause");Out_Queue(t);t->service = (t->n - 1)%N + 1;/获取普通客服柜台Common_User(t->service,c_n,c);free(t);break;case 1:printf("tt您是VIP用户,可以直接到VIP客户区办理业务!n");system("pause");people+;current_people+;vip+;Vip_User();break;break;case '5':break;if(ch = '5')break;system("pause");/*-普通用户界面-*/void Common_User(int s,char c_n,char c)char ch;time_t start=time(NULL);/获取用户到达时间while(1)int money;system("cls");system("color 5f");printf("t=尊敬的用户你好,%d号柜台为您服务=nnn""tttt1 取钱n""tttt2 存钱n""tttt3 成为VIPn""tttt4 退出nn",s);printf("tt请输入您的选择:");ch=Get_Choice('1','4');switch(ch)case '1':printf("tt请输入您想取出的金额数(¥):");scanf("%d",&money);Sleep(3000);printf("ntt您的%d元已经取出,请好好保存_n",money);break;case '2':printf("tt请输入您想存入的金额数(¥):");scanf("%d",&money);Sleep(3000);printf("ntt您的%d元已经成功储存到您的账户上_n",money);break;case '3':FILE *fp;char ChMAX;if(fp=fopen("vip.txt","a+")=NULL)printf("tt数据库打开失败:( !n");exit(1);while(fgets(Ch,MAX,fp)!=NULL)continue;fprintf(fp,"%s %sn",c_n,c);Sleep(3000);printf("ntt恭喜您,成为了VIP(以后就可以直接到VIP窗口办理业务了_)n");fclose(fp);break;case '4':break;if(ch = '4')time_t end; /用户离开时间Grade(s); /评分end=time(NULL); /获取用户离开时间printf("您总共用时%.0f秒n",difftime(end,start);break;system("pause");/*-VIP用户界面-*/void Vip_User()char ch;int money;time_t start=time(NULL);/VIP用户到达时间while(1)system("cls");system("color 4f");printf("tt=尊敬的VIP用户您好:)=nnn""请问有什么可以能帮助您的呢?n""(以下是业务菜单_)n""tttt1 取钱n""tttt2 存钱n""tttt3 退出n""tt输入您想办理的业务所对应的编号:");ch=Get_Choice('1','3');switch(ch)case '1':printf("tt请输入您想取出的金额数(¥):");scanf("%d",&money);Sleep(3000);printf("ntt您的%d元已经取出,请好好保存_n",money);break;case '2':printf("tt请输入您想存入的金额数(¥):");scanf("%d",&money);Sleep(3000);printf("ntt您的%d元已经成功储存到您的账户上_n",money);break;case '3':FILE *fp;double avr=0;int score,s,i=0;if(fp=fopen("win_vip.txt","a+")=NULL)printf("ttwin_vip.txt操作失败! :(n");exit(1);printf("tt请您为本次的服务评分(_):n""tt1分很不满意n""tt2分不满意n""tt3分一般满意n""tt4分比较满意n""tt5分很满意nntt");scanf("%d",&score);while(fscanf(fp,"%d",&s)!=EOF)i+;avr+=1.0 * s;fprintf(fp,"%dn",score);avr+=score*1.0;printf("tt本客户获得的平均得分为:%.1fn""tt非常感谢您的配合_n",avr/(i+1);break;if(ch = '3')time_t end=time(NULL);/用户离开时间printf("您总共用时%.0f秒n",difftime(end,start);current_people-;break;system("pause");/*-管理员界面-*/void Administrator()char ch;struct tm *t;while(1)system("cls");system("color 8f");Get_Time(t);printf("tt-管理员界面-n""tt当前时间:%-2d:%-2d:%-2dn""tt %-4d/%-2d/%-2dnnn",t->tm_hour,t->tm_min,t->tm_sec,t->tm_year+1990,t->tm_mon+1,t->tm_wday);printf("ttt1 查看系统信息n""ttt2 返回主菜单n""tt输入您的选择:");ch=Get_Choice('1','2');

    注意事项

    本文(银行排队系统.doc)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开