您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 银行排队系统.doc
《课程设计说明书》题目:银行排队系统班级:***姓名:***学号:***指导教师:***一、需求分析1问题描述在传统的银行排队中,物理排队需要人工进行排号、取号等,显得很繁琐,因此这样的传统方式已经不能满足现代人们的需求。作为计算机专业人士,开发的软件——银行排队系统能很好地取代了这样繁琐的工作,方便了银行工作人员的工作、减轻了他们的工作负担;也方便了办理业务的顾客,他们只需要通过系统取号、叫号等服务,就能简单实现办理业务,极大地简化了办理流程。2基本任务通过实际调查分析,系统需要实现以下基本功能:(1)实现普通用户的取号、叫号、办理业务(办理窗口有4个)(2)实现VIP用户的特殊化业务办理(1个VIP办理窗口)(3)银行管理员对系统信息的管理二、概要设计为了完成需求分析的基本任务,主要从以下3个方面进行设计:1主界面设计为了简化用户的操作,设计了一个多菜单选项主控菜单模块,实现了友好的用户界面。系统主控菜单如图1图12数据结构设计系统采用队列的链式结构实现顾客的“传统物理排队”。其中每个结点代表一位排队的用户,结点包含用户取号、对应的服务窗口信息3系统功能设计(1)队列操作:voidInitial();//初始化队列intIs_Empty();//队列是否为空voidIn_Queue(QNode*&s);//入队voidOut_Queue(QNode*&t);//出队(2)函数模块:voidSystem();//主体函数voidGet_Time(structtm*&t);//获取时间charGet_Choice(char,char);//获取正确的选择charStart();//开始界面同时返回用户选择intIs_Vip(char[],char[]);//判断是不是vip客户voidCheck_Queue();//查看排队情况(针对于用户)voidGrade(int);//评分voidCommon_User(int,char[],char[]);//普通用户界面voidVip_User();//VIP用户界面voidUser();//用户主界面voidAdministrator();//管理员界面三、模块设计1主要模块设计voidInitial();//初始化队列intIs_Empty();//队列是否为空voidIn_Queue(QNode*&s);//入队voidOut_Queue(QNode*&t);//出队voidGet_Time(structtm*&t);//获取时间charGet_Choice(char,char);//获取正确的选择intIs_Vip(char[],char[]);//判断是不是vip客户voidCheck_Queue();//查看排队情况(针对于用户)voidGrade(int);//评分2系统子模块及其功能设计voidSystem();//主体函数charStart();//开始界面同时返回用户选择voidCommon_User(int,char[],char[]);//普通用户界面voidVip_User();//VIP用户界面voidUser();//用户主界面voidAdministrator();//管理员界面3系统模块之间的调用如图2:图2四、详细设计1数据结构设计系统采用队列的链式结构进行排队的功能实现队列结点定义如下:/*队列结点*/typedefstructqq{intn;//用户取号intservice;//对应的服务窗口structqq*next;//指针域}QNode;/*队列*/typedefstructQ{QNode*front;//头指针QNode*rear;//尾指针}Queue;2系统主要模块设计voidInitial();//初始化队列intIs_Empty();//队列是否为空voidIn_Queue(QNode*&s);//入队voidOut_Queue(QNode*&t);//出队voidGet_Time(structtm*&t);//获取时间charGet_Choice(char,char);//获取正确的选择intIs_Vip(char[],char[]);//判断是不是vip客户voidCheck_Queue();//查看排队情况(针对于用户)voidGrade(int);//评分五、调试分析1主界面2用户界面(1)用户主界面(2)排队取号(3)查看排队情况(4)叫号情况(4)办理业务普通用户VIP用户3管理员界面(1)管理员界面(2)查看系统信息六、用户使用说明1.进入主界面后,根据您的身份选择相应选项(用户、管理员),用户进入用户界面,管理员进入管理员界面。2.用户:普通用户需要先取号,然后排队等候,在排队期间、可以根据提示查看相应的信息(如您前面的排队人数、叫号情况等等),当您被叫号或者您前面没有人排队的时候您就可以去办理业务了3.VIP用户:根据系统的判断,如果您是VIP用户,您将无需排队,直接到VIP专属服务窗口办理业务4管理员:需要通过密码验证后,才能进入到管理员界面(管理员默认密码为:112358)七、程序源代码/*--------------------------Head.h-------------------------*/#ifndefHEAD1_H#defineHEAD1_H/*管理员的密码为:112358*//*--------------------常量、队列信息定义-------------------*/#defineMAX40//用于限制字符数组大小的常量#defineN4//普通服务柜台数/*队列结点*/typedefstructqq{intn;//用户取号intservice;//对应的服务窗口structqq*next;//指针域}QNode;/*队列*/typedefstructQ{QNode*front;//头指针QNode*rear;//尾指针}Queue;/*全局变量*/staticQueue*q;//队列staticintpeople;//总排队人数staticintcurrent_people;//当前排队人数staticintcommon;//普通用户人数staticintvip;//VIP用户办理人数/*-----------------------队列操作的定义---------------------*/voidInitial();//初始化队列intIs_Empty();//队列是否为空voidIn_Queue(QNode*&s);//入队voidOut_Queue(QNode*&t);//出队/*------------------------函数模块声明----------------------*/voidSystem();//主体函数voidGet_Time(structtm*&t);//获取时间charGet_Choice(char,char);//获取正确的选择charStart();//开始界面同时返回用户选择intIs_Vip(char[],char[]);//判断是不是vip客户voidCheck_Queue();//查看排队情况(针对于用户)voidGrade(int);//评分voidCommon_User(int,char[],char[]);//普通用户界面voidVip_User();//VIP用户界面voidUser();//用户主界面voidAdministrator();//管理员界面#endif/*--------------------------------------函数定义---------------------------------*/#includestdio.h#includestdlib.h#includetime.h#includeconio.h#includestring.h#includewindows.h#includeHead.h/*-----------------------------------队列操作-----------------------------------*/voidInitial()//初始化队列{q=(Queue*)malloc(sizeof(Queue));q-front=q-rear=NULL;}intIs_Empty()//队列是否为空{return(q-rear==NULL);}voidIn_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;else{q-rear-next=s;q-rear=s;}s-next=NULL;common++;current_people++;}voidOut_Queue(QNode*&t)//出队{if(Is_Empty()){printf(\t\t暂时没人排队,因此无法提供相应信息^_^!\n);return;}t=q-front;if(q-front==q-rear)q-front=q-rear=NULL;elseq-front=t-next;current_people--;}/*-------------------------------------主体函数----------------------------------*/voidSystem(){while(1){system(cls);system(color2f);charch=Start();switch(ch){case'1':User();break;case'2':{charcode[7];charc[7]=112358;inti=0;printf(\t\t输入管理密码:);for(;i6;i++){code[i]=getch();printf(%c,'*');}code[i]='\0';printf(\n);Sleep(1000);if(strcmp(code,c)!=0){printf(\t\t密码错误!(可能您不是管理员、或者您忘记了密码)\n);system(pause);break;}printf(\t\t密码正确^_^!\n);system(pause);Administrator();break;}case'3':system(cls);printf(\t--------------------------------------------------------------\n\t中国银行\n\t--------------------------------------------------------------\n\n\n);printf(欢迎下次光临,再见^_^\n\n);system(pause);}if(ch=='3')break;system(pause);}}/*------------------------------开始界面&&获取用户的选择---------------------------*/charStart(){structtm*t;//时间结构charch;//选择Get_Time(t);//获取系统时间system(color2f);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******
本文标题:银行排队系统.doc
链接地址:https://www.777doc.com/doc-7309173 .html