黑马程序员_银行业务调度系统

------- android培训java培训、期待与您交流! ----------

一、需求分析:

Ø 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。

 

Ø 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。

 

Ø 异步随机生成各种类型的客户,生成各类型用户的概率比例为:

 

       VIP客户:普通客户:快速客户 = 163

 

Ø 客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。

 

Ø 各类型客户在其对应窗口按顺序依次办理业务。

 

Ø VIP6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。

 

Ø 随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。

 

Ø 不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。

根据业务需求,案例的流程如下图:

二、用面向对象的思惟设计案例:

     根据业需求,案例应分为四个模块,

l 客户取号模块

l 客户服务号码管理模块

l 窗口服务模块

l 业务类型模块

l 客户生成和初始化模块

三、客户取号模块

        客户取号模块的主要职责为给客户分配业务服务号码,当有客户过来时,就会根据不同的客户,选择不同的业务。此模块依赖于号码管理模块,当调用此模块的取号方法时,就会调用号码管理模块生存业务号码,记录在号码管理模块中,并返回一个客户所需的号码。代码如下:

------------------------------------------------------------------------------------

package com.itcast.bank;

 

public class ClientNumberGenerate {

        private NumberManager numberManager=NumberManager.getNewInstance();

        public String getCommonNumber() {

                  return numberManager.setCommonNumber();

        }

 

        public String getExpressNumber() {

                  return numberManager.setExpressNumber();

        }

 

        public String getVIPNumber() {

                  return numberManager.setVIPNumber();

        }

}

------------------------------------------------------------------------------------

四、号码管理模块

        号码管理模块的职责是为二,首先,为客户取号模块服务,生成客户的业务列队号。返回给客户,并记录在对应的集合中,第二为:为窗口提供客户等待办理的业务号吗,窗口模块到号码管理模块去取号为客户服务。

        号码分为三类,第一类为以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值