文档详情

18银行业务调用系统.docx

发布:2017-03-04约1.03万字共10页下载文档
文本预览下载声明
银行业务调度系统的项目需求模拟实现银行业务调度系统逻辑,具体需求如下:1. 银行内有6个业务窗口,1-4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。2. 有三种对于类型的客户:VIP客户,普通客户,快速客户3. 异步随机生成各种类型的客户,生成各类型用户的概率比例为:VIP客户:普通客户:快速客户 = 1:6:34. 客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值5. 各类型客户在其对应窗口按顺序依次办理业务。6. 当VIP窗口和快速窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。7. 随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。7. 不要求GUI,只考虑系统逻辑实现,可通过log方式展现程序运行结果。面向对象的分析与设计三种对应类型的客户:VIP客户,普通客户,快速客户,异步随机生成各种类型的客户,个类型客户在其对应窗口按顺序依次办理业务。首先需要一个号码管理器对象,不断产生号码,也就随机生成了客户。三类客户,每类客户的号码编排都是完全独立的,所以本系统需要三个号码管理器对象。类图:NumberManager类????????????? 定义一个用于存储上一个客户号码的成员变量和用于存储所有等待服务的客户号码的队列集合。????????????? 定义一个产生新号码的方法和获取马上要为之服务的号码的方法,这两个方法被不同的线程操作了相同的数据,所有,要进行同步。[java]?view plaincopyimport?java.util.ArrayList;??import?java.util.List;????public?class?NumberManager?{??????private?int?lastNumber?=?0;??????private?List?queueNumbers?=?new?ArrayList();????????????public?synchronized?Integer?generateNewNumber(){??????????queueNumbers.add(++lastNumber);??????????return?lastNumber;??????}????????????public?synchronized?Integer?fetchNumber(){??????????if(queueNumbers.size()0){??????????????return?(Integer)queueNumbers.remove(0);??????????}else{??????????????return?null;??????????}??????}??}??NumberMachine类????????????? 定义三个成员变量分别指向三个NumberManager对象,分别表示普通、快速和VIP客户的号码管理器,定义三个对应的方法来返回这三个NumberManager对象????????????? 将NumberMachine类设计成单例。[java]?view plaincopypublic?class?NumberMachine?{????????????private?NumberMachine(){}??????private?static?NumberMachine?instance?=?new?NumberMachine();??????public?static?NumberMachine?getInstance(){??????????return?instance;??????}????????????private?NumberManager?commonManager?=?new?NumberManager();??????private?NumberManager?expressManager?=?new?NumberManager();??????private?NumberManager?vipManager?=?new?NumberManager();??????public?NumberManager?getCommonManager()?{??????????return?commonManager;??????}??????public?NumberManager?getExpressManager()?{??????????return?expressManager;??????}??????public?NumberManager?ge
显示全部
相似文档