首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师_<<银行业务调度系统>>

2013-10-28 
黑马程序员_银行业务调度系统---------------------ASP.NetAndroidIOS开发、.Net培训、期待与您交流! --

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

---------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------




1. 银行业务管理系统        1. 需求

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

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

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

 

        VIP客户:普通客户 :快速客户 =  1 :6 :3。


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

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

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

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

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

 

          2. 面向对象设计                 1. 客户与号码的设计

对于不同的客户,普通,快速客户,VIP客户,他们必须首先获得号码,来表示本客户是第几个客户,那么我们就使用集合来存储,便于操作。

               2. 号码管理

    我们要使用线程来模拟选号,窗口对客户的服务,那么我们就需要线程池 和定时器。

               3.服务窗口

   我们要定义号码管理类,那么在银行中有那么可以选号机器,并且只有一台,所以我们要有号码机器类,用于管理各个类型的号码管理。现实生活中是窗口中的工作人员通知已经有顺序的客户人员。并且对不同的客户限制不同的服务时间

 

       3.编写               1.NumberManage
  号码管理器
    1.lastNumber:表示本类型的号码数
    2.queueNumber:号码队列,模仿的是抽到号码的人进行排队
    3.设置了抽取号码(generateNewManage)和取出号码(fetchServiceNumber)
    4.抽取号码:就是获得号码后把存储到集合中。取出号码:就是把集合中的第一个号码删除,相当于队列
    5.因为操作的是同一个队列,共享数据,所以要进行同步,增加锁
    6.需要有普通,快速和VIP的号码管理器


黑马软件工程师_<<银行业务调度系统>>黑马软件工程师_<<银行业务调度系统>>
2.总结

     1.用到的知识

       

      1.面向对象的设计

      2.枚举(CustomerType)

      3.线程(线程池,定时器)

      4.单例设计模式(NumberMachine)

     2.完善

         把服务和提示信息都提取出来,那么就是代码简单化了。




---------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


热点排行