【排队管理系统的设计与实现13000字(论文)】_第1页
【排队管理系统的设计与实现13000字(论文)】_第2页
【排队管理系统的设计与实现13000字(论文)】_第3页
【排队管理系统的设计与实现13000字(论文)】_第4页
【排队管理系统的设计与实现13000字(论文)】_第5页
已阅读5页,还剩45页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

自21世纪以来,随着计算机信息技术的不断发展,计算机信息技术越来越被运用在数据管理应用,在其中扮演着重要的角色。在社会的经的进程中,银行、海关等政府机构、医院等单位的服务对象数量也随之大量增长。上述单位对于高效、可靠的信息管理系统的需求日渐增长。银行大本文为实现排队管理系统,对系统进行了分析、设计统的发展及研究状况的调研,对银行排队现状的进行考察,本文能需求分析与非功能需求分析;本文在设计计、后台管理5个模块,分别对5个模块的实体类、数据访问类进行了设计;在分析与现。在完成系统的设计后,本文设计了仿真测试用例,对系试与问题改进,目前系统能够稳定运行,能够正确实现DESIGNANDIMPLEMENTATIONFromthe21stcenturyon,wiinthefieldofmanagementndffbanks,customs,governmentoffices,hospitalsandalotmoreorganizsystemeffectivelycombiningsoftwqueuing.AndcanrealizebusinessmanagementmoreefficientInthispaper,thesystemisanalyzed,designedandimplmanagementsystem.Thispaperanalyzinvestigatingthedevmodulesinthispaper,whicharegettingnumber,caldesignedinthispaper.Thesystemisimplementedlanguage.Andthesimulatedtestingcasesaredesignedwinumbers,calling,queueing,datarecordingandIntheend,thispapersummarizestheeofthequeuemanagementsysteminthefuture.目录 2.2.1课题内容 12.2.1本人承担任务 2 2第二章相关技术介绍 3第三章系统需求分析 33.1系统用户角色与业务情况分析 3 33.2.1系统用例图 43.2.3叫号原则 4 第四章系统的设计 64.1业务类型定义与叫号规则设计 64.2软件架构设计 74.3系统模块与功能设计 4.4类设计 3.4.1实体类和数据访问类设计 4.4.2业务类设计 4.5数据库设计 第五章系统的实现 21 225.5后台管理模块的实现 23第六章系统的测试 246.2测试用例的编写 256.3系统测试结果 第七章结束语 1的客户按照排队策略分配到指定窗□,并可通过后台进行人工管理的程序。排队管理系使用能够帮助上述部门提高排队效率、减少客户的等待时间、减据统计和后台管理的PC。以上软硬件通过网络互连,共同实现完整的排队管理系统的2景中,排队管理系统功能的实现,需要由多种软硬件协同配合,通过网络互连来实现。基于对排队管理系统的发展及研究状况的调研,以及对台管理5个模块,分别对5个模块的实体类、数据访问类进行了设计;在分析与设计的基础上,本文采用集成开发工具,以C++统主要功能模块的详细设计与实现、系统测试和结束第一章引言。本章通过对采用排队管理系统与否的业务大厅的排队现状进行对比,第二章相关技术介绍。本章介绍了在系统的实现中运用到言和Qt图形用户界面应用程序开发框架。第四章系统的总体设计。本章介绍了为实现系统的需求设计中所得到的系统需要第五章系统主要功能模块的详细设计与实现。本章介绍了系统各个模块的详细设第六章系统测试。本章展现了采用经设计后的仿真测试用例对系统进行测试结果,3第二章相关技术介绍第三章系统需求分析一、用户角色银行排队管理系统包括银行客户、业务员和管理员。银行顾客到银行大厅根据所要办理的业务类型按触摸屏领取业务排号单,获得排号单后等待办理业务;业务员通过叫号系统叫号,为排到号的银行顾客办理业务;管理员负责为系统添加用户(业务员)和进行系统管理。二、业务情况模拟的银行大厅,有6个窗□,其中1个是VIP窗□。各个窗口需要办理的业务种类有:1、综合业务窗□(6个)在综合业务窗□可以办理的业务如下所示:可办理业务:存款、汇款;取款、转账;理财;挂失、换卡;外币;开户、销户;对公现金。在进行业务办理时,不一定所有的窗口都打开办理业务,视业务量和业务员人员情况而定。所有的综合业务统一排队,所有打开的综合业务窗口按照叫号单的顺序依次叫号。仅办理VIP顾客业务,所有VIP顾客业务单独排队在此窗□顺序办理。系统的功能如用例图2.1所示,具体功能包括发号功能和排队叫号功能。叫号管理员图2.1税务排队叫号系统用例图银行顾客来到大厅后,首先到叫号机前根据自己所选的业务进行排号,排号机上打出一张排号单,排号单上有业务号码、等候人数、当前时间、办理的业务类型等信息,同时在排号单上会生成一个二维码,通过二维码上的网址用户可以查询目前前面有多少人在办理业务。然后银行顾客就可以到休息区等待,等待业务员叫号。当叫号系统叫到银行顾客的号时即可到指定窗□办理业务。当银行大厅银行顾客非常多,银行顾客排号队列特别长时,银行顾客可以到附近办理其他事宜。外出期间,用户可以通过扫描二维码,登录查询网站随时监控自己在办税排队队列中的位置情况。大厅有多位业务员同时办公,业务员在完成一笔业务后按下叫号器上的叫号按钮,请排到的银行顾客到窗□办理各项税务业务。管理员进行系统管理操作,主要实现手动增删窗口,更改窗□办理的业务类型(VIP3.2.2叫号业务类别设置为方便银行顾客识别自己所办理的业务和对叫号业务的调度提供支持,在叫号器上将大厅所能办理的业务有:存款、汇款;取款、转账;理财;挂失、换卡;外币;开户、销户;对公现金,他们将显示在排号机上。3.2.3叫号原则通过与主管领导和同事们的沟通探讨,确定系统的叫号原则应如下进行:5设置一个某客户最大等待时长T,若同时有办理时长依次增加的业务a,b,c需要办理,则在时间T内,尽量优先办理a业务,再办理b业务,再次是c业务。即:在一定系统为实时性系统,应保证稳定运行,在大业务量时保证系统不发生卡、顿现象。2、安全性需求的各种安全隐患,如DDoS攻击等。3、可靠性需求银行顾客按下触摸屏排号时,在0.5秒内给出反馈结果;业务员按下叫号按钮后,6第四章系统的设计本章介绍银行大厅排队叫号系统的设计。一、业务类型定义为方便银行顾客识别自己所办理的业务和对叫号业务的调度提供支持,在叫号器上将大厅所能办理的业务有:存款、汇款;取款、转账;理财;挂失、换卡;外币;开户、销户;对公现金。二、叫号规则设计设置一个某客户最大等待时长T,若同时有办理时长依次增加的业务a,b,c需要办理,则在时间T内,尽量优先办理a业务,再办理b业务,再次是c业务。即:在一定时间内尽量先办理耗时少的业务。三、叫号规则的应用效果分析在不增加人员增开窗□的情况下,无论如何改变叫号规则都不可能加快整个系统处理业务的速度,因为工作量不变,处理能力不变,则整个系统完成全部业务的时间不会发生变化。新的叫号规则的着力点是通过增加人员办理复杂性瓶颈性业务以实现系统内部总工作量的减少,并且以瓶颈性业务量作为判定是否需要增设窗口和增设几个窗□的依据,以达到人力资源的使用和业务规模的匹配。做到既不枉耗人力,又能够在业务高峰到来时迅速投入资源,提高工作效率和银行顾客的满意度。整个系统由5个重要的部分组成:排号器、远程查询网站、号码分配器、窗口业务分配器和窗□叫号器。排号器中一共有7个排号序列,1.存款、汇款;2.取款、转账;3.理财;4.挂失、换卡;5.外币;6.开户、销户;7.对公现金。排号器根据排号算法计算出用户所选的业务类型的排号号码,在将该号码返回该用户的同时,传递给号码分配器。号码分配器有6个核心组件:1.等待队列组件。该组件用于整合排号器发送过来的号码。等待队列有两个:等待队列1和等待队列2。等待队列1是综合业务(ABC)的号码,这些号码按照FIFO(FirstInFirstOut,先进先出)的方式进行队列管理。等待队列2是发票发售业务号码的等待队列,属于专用队列,处理方式也是FIFO。2.号码统计组件。号码统计组件用于统计特定等待队列中的当前号码的数量,以及指定号码之前的号码数量。3.呼叫接收组件。呼叫接收组件用于接收窗口呼叫器的叫号请求。多个窗口呼叫器的叫号请求将统一汇聚到号码呼叫接收组件中,对其进行排队和缓冲。最后,按顺序将呼叫请求发送给号码分配组件。7务类型进行调整。调整的方式有两种:一是增加新的叫号窗□,二是改变已有窗□的叫1.CountWindow(VIP窗□)=1;窗□叫号器位于各个叫号窗口,它有三个功能:一是用于向号码分配器呼叫号码,本系统的软件架构采用分层模型,将软件分为四个层次,如图3.2所示:8图形界面层图形界面层业务逻辑层业务类库业务类库业务类库模型层实体类数据访问类持久存储层数据库图3.2软件架构设计据库管理系统实现,提供基于关系运算的数据添加、删除、修改和查询等功能的支持,9务方法中,所处理的基础数据就是模型层的实体类对图形界面层提供了图形化的人机交互界面。系统采用WindowForm作为图形用户型Windows风格的应用界面。和业务逻辑之间的耦合,就需要在图形界面层和业务逻辑层层,如图3.3所示:业务逻辑层业务逻辑层业务类库图形界面接口层图形界面层业务类库业务类库图3.3界面和业务逻辑去耦合系统的模块与功能设计如图3.4所示。整个系统分为5个模块:号码生成功能是根据用户的业务类型选择生成一个排队号码,其输入是业务类型,输出是排队号码、排队位置、当前日期和一个查询二维码。号码打印是将排队号码、排队位置、当前日期和查询二维码打印到一个指定大小的纸张上。进度查询是根据输入的排队号码,查询其在排队队列中的位置。但是这个位置并不代表其服务序号,因为业务可能会延后服务。2.排号模块该模块是排队控制的核心模块,包括呼叫接收、号码分配、语音控制、窗口调整、号码统计等功能。呼叫接收功能是接收叫号模块发送的叫号请求,将叫号请求进行过滤合并,转发给号码分配功能处理。号码分配功能是将一个排队号码分配一个叫号窗口。它的输入是叫号窗□,根据该□的叫号模块。存款、汇款取款、转账挂失、换卡开户、销户对公现金呼叫/重呼暂停/开始叫号队列管理日统计管理日管理员登入管理员用户名和密码设置设置窗口办理的业务设置业务在该窗口的优先级设置窗口的开关实时显示排队情况统计并生成报表图3.4系统模块和功能的设置窗口调整功能是根据窗□调整规则,增加叫号窗□的数量或修改叫号窗□的类型。其输入是等待队列1的统计信息,输出是叫号窗□的修改。3.单独的数据统计模块,其功能为统计:1、一段时间内,顾客总数和各种不同业务的顾客数量2、各业务的平均等待时长。4.叫号模块该模块用于向号码分配模块传递信息,并接收号码分配模块的返回值。它一共包括了三个功能:叫号、暂停和取消暂停。叫号功能是向号码分配模块发送获取下一个服务号码请求,输入信息是叫号窗口编号,输出信息是叫号窗口编号和请求码。暂停和取消暂停功能与叫号功能的输入和输出类似,所不同的就是请求码不同。三类请求码定义如下:GET_NEXT_CODE:取下一个服务号码;CALL_PAUSE:暂停服务;CALL_RESUME:取消暂停。语音控制功能是将叫号提示信息转换为音频信息,发送给音频播放接口。由音频播放接口播放提示信息。5.窗□业务分配模块该模块用于管理叫号窗□的增加、减少和类型修改,包括启用窗口、关闭窗口和修改窗□业务类型等功能。启用窗□功能是增加一个新的叫号窗口,输入是叫号窗口编号,没有输出信息。关闭窗□功能是去掉一个启用的叫号窗□,输入是叫号窗□编号,没有输出信息。修改窗□业务类型功能是对指定叫号窗□的业务类型标识进行修改,输入是窗口编号和新业务类型。3.4.1实体类和数据访问类设计系统实体类和数据访问类设计如图3.5所示:+Count(inbt:char,inqueueN+Find(inbt:char,inqueueN+AddCode(incode:QueueCode,inqueue+GetCode(incode:QueueCode,inqueueNo:int):QueueCode+RemoveCode(inposition:int,inqueue+AddTaxOfficial(intaxOfficial:TaxOf+RemoveTaxOfficial(inemployeeld:+FindTaxOfficials(insqlCondition:图3.6实体类和数据访问类设计各个类的含义如下:1.QueueCode是排队号码类,属性含义如下:flag:业务类型sequenceNo:序号qrCode:二维码4.Window是叫号窗□类,属性bt:业务类型btName:业务类型名称queue1:等待队列1queue2:等待队列2该类还包含了7个方法,用于对两个等待队列的操作:Count():统计在等待队列中指定业务类型的号码个数AddCode():在队列中加入一个号码Head():获取指定队列头部号码排号模块业务类的设计如图3.7所示。排号模块业务类都属于命名空间NumberArrange。在NumberArrange中包含了两个类NumberArranger和BusinessClassifier。NumberArranger用于排队的生成和号码纸的打印。BusinessClassifier用于获得所有可以办理的业务项,以及获取业务项对应的业务类别。查询进度模块业务类的设计如图3.8所示。图3.8查询进度模块业务类设计查询进度模块业务类都属于命名空间QueuingSchedule。在QueuingSchedule中只有一个类QueueLocator。QueueLocator用于查询号码在等待队列中的位置,以及生成查询结果的文本提示信息。3.号码分配模块业务类号码分配模块业务类的设计如图3.9所示。+SendCodeToWindow(incode:QueueCode,in+ChangeWindowType(inwindowldAcept(inwindowld:ushot);+LoadTemplateFile(inte+ParseSentence(InsentefioeName+GreateVoiceFile(inqc:QueueCode,inwind图3.9号码分配模块业务类设计号码分配模块业务类都属于命名空间CodeDistribute。其中包含了6个类:CallCallReceiver用于实现呼叫接收功能,启动后就会一直监听是否有来自于叫号窗□并将号码发送给指定的叫号窗口。CodeCounter用于实现号码统计功能,可以统计某种业务类型排队的号码总数,还可以定位指定号码在等待队列中的位置。WindowAdjustor用于实现窗□调整功能。它定期监测各种业务类型排队的号码总数,根据调整规则进行窗口调整。VoiceController用于实现语音控制功能。它可以根据排队号码和窗□ID以及语句模板生成语音提示信息,并保存为音频文件。它还可以将音频文件发送给音频播放接口。TemplateParse是模板解析类,用于解析语句模板文件。4.叫号模块业务类叫号模块业务类的设计如图3.10所示。图3.10叫号模块业务类设计叫号模块业务类只有一个,就是CodeCaller,该类用于实现叫号窗□与号码分配模块之间的通信。5.窗□业务分配模块业务类窗口业务分配模块业务类的设计如图3.11所示。+EnableWindow(inwind+CloseWindow(inwind+ChangeWindowType(inwindowld:ushort,inbt:char):图3.11窗□业务分配模块业务类设计窗口业务分配模块业务类是WindowManager,该类是用于对窗□的工作状态和业务类型进行调整。6.业务员管理模块业务类业务员管理模块业务类的设计如图3.12所示。该模块业务类TaxOfficialManage是业务员基本信息的添加、删除、修改和查询等数据库操作。+AddTaxOfficial(intaxOffiaal:TaxOffiaial):+Update(intaxOffiaal:TaxOffiaial):void+Remove(inemploye图3.12业务员管理模块业务类设计系统使用一个单独的数据库实例,名为queue,在这个数据库实例中定义了数据表tax_official,其含义是业务员表,该表的字段定义如表3.1所示。表3.1业务员表字段名字段类型可否为空备注工号否姓名否出生年月否性别否民族否1-党员学历否否微信号登录密码否向的业务领域的组成元素,以及组成元素之间的关系。业务架构是对真实业务的抽象,层架构就是这样一种经过证明有效的模式。在软件架构设计分层架构,将整个系统分为了四个层次:持久存系统一共有6个模块:取号、排号、叫号、数据统计、后台管理模块。这些模块封装在3个子系统中:排号子系统、叫号子系统和系统管理子系统。其中系统封装了业务员管理模块。这些子系统相互之间通过不同的方式进行信息传递,如图4.1所示:NETRemotingNETRemoting客户端Web服务器进度查询网站子系统图4.1系统的子系统行数据封装。统和控制中心子系统之间通过数据库共享数据。下面将对每个子系统的具体实现方式和过程进行阐述。解决方案资源管理器-解决方案资源管理器-GUI图4.2排号子系统的代码组织结构GUI项目用于实现基于Form的图形界面,于封装业务逻辑,Communication项目也是一个类库项目,用于封装系统通信。叫号子系统生成的也是一个Windows窗体应用程序,其代码结构如排号子系统类格式的定义在4.3.3用Socket实现模块间通信中进行统一描述。的方式采用了PUT方式参数传递,生成的URI如下:http://localhost:3533/QueuingSche在排号纸打印的二维码就包含了上面的URI。即在二维码中的信息就是进度查询的网址再加上PUT方式的code参数。不同的排号纸的二维码的区别就是code的值。在排home.aspx在服务器端运行时,其Load事件中,可以捕获该参数,方式如下:果写入到home.aspx的Label1控件中。服务器端代码运行完成后,就将页面返回给客户系统管理子系统是一个单独的应用程序,界面如图4.7所示。该子系统需要访问数然后根据连接字符串建立与数据库管理系统之间的连接。利用该连接可以直接执行6.实现图形界面,利用TaxOfficialManage类实现各个功能。动呼叫接收服务、号码分配服务、窗□调整服务和语音控制服务。除了几个服务之外,系统的测试采用了从小到大的测试方法,即先测试程序的最小组成元素,然后测试次一级的组成元素,如此循环,一直到进行整个系统的测试。不同的程序开发中,程序的最小组成元素也不同。在面向过程编程方法中,最小的组成元素是函数(方法)。而在面向对象编程方法中,最小的组成元素是类。所谓类,就是具有强关联关系的数据和方法的一个集合。本系统采用了面向对象的开发方法,因此,最小的组成元素是类。类测试又被称为单元测试,因为类是组成程序的最小单元。类测试的方法如图5.1所示:类方法1方法2方法3图5.1类测试方法从图5.1中可以看出,要为测试被测试的类单独编写一个测试类,针对类中的每个方法编写测试方法,以保证类中所有的方法的正确性。编写测试方法首先要确定一个合理的测试用例,即设计一套合适的输入数据,并根据正确的逻辑计算出其预期输出数据。然后编写测试代码,用测试用例中的输入数据去调用被测试的方法,判断其输出是否与预期的输出数据一致。如果一致则测试通过,否则需要重新修改代码。然而,有一些类并没有方法,只是数据的集合,例如实体类。对于这些类的测试通人工判断其正确性。在类测试之后,就是功能测试。功能测试针对的是单个功能对需求的满足程度。功能测试包括两部分:界面逻辑测试和业务逻辑测试。这两部分可以分开进行。界面逻辑测试的内容是对功能界面的输入输出数据的正确性进行测试。业务逻辑测试是对实现功能的业务逻辑代码进行测试。这些业务逻辑代码,通常会包含多个类的方法,因此这是对多个方法之间相互协作的测试。功能测试之后,是集成测试。集成测试针对是各个功能之间交互的正确性,以及对功能执行顺序约束的正确性。集成测试的目标是已经完成组装的系统,需要考虑数据在功能间传递的时候是否会丢失,一个功能是否会对另一个功能产生不利的影响,是否存在功能叠加的造成误差放大。集成测试的测试用例的设计要考虑到各种边界和极端情况,还要考虑用户正常的功能操作流程。在任何情况下,最终的输入都要是合理的,并且满足要求的。最后是系统测试,要将软件系统和其依赖的软硬件环境作为一个整体进行测试,以测试软件系统的环境适应能力,确定其可靠性、可移植性和环境适应性是否满足设计要6.2测试用例的编写测试用例的编写要包含以下内容:1.用例分类包括类测试用例、集成测试用例、系统测试用例。2.用例编号为每个用例设定一个全局唯一的编号,方便识别。3.测试对象要说明测试的对象的名称和版本。4.测试目标说明该用例要达到的测试目的。5.预置条件说明该用例的使用需要满足什么前提条件。6.输入数据用例传递给测试对象的输入。7.预期输出这是根据正确的逻辑计算出来的结果。8.操作步骤对使用该用例测试是的步骤进行说明。类测试用例的操作步骤就是对系统的各个方法进行调用并且对比执行结果和预期的结果是否一致。使用集成测试用例和系统测试用例对系统进行测试需要说明具体的操作步骤,不同的操作步骤可能导致不同的测试结果,甚至会错过发现错误的机会。本文编写了12个类测试用例,18个功能测试用例和22个集成测试用例以及6个系统测试用例。通过执行这些测试比对执行结果来确保系统的正确性。6.3系统测试结果系统在各个测试阶段都出现了不同数量的Bug,如图5.2所示。每个测试阶段,都要在完全消除错误的情况下,即Bug数为0的情况才

温馨提示

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

评论

0/150

提交评论