关于银行调度系统的思考:

关于银行调度系统的思考:

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

 2、有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。
 
 3、异步随机生成各种类型的客户,生成各类型用户的概率比例为:
  VIP客户:普通客户:快速客户  =  1 :6 :3。

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

 5、各类型客户在其对应窗口按顺序依次办理业务。
 
 6、当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务
    而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。

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

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

二、需求分析:
 (1)、该系统是一个客户与服务的处理系统。

 (2)、客户分为3个等级,每个等级有对应的类型的窗口

 (3)、我们将客户按其级别分为三个队列:Ordinary(普通队列)、Fast(快速队列)、Vip(VIP队列)。
  我们根据高级别队列是否为空,来考虑从低级别队列中取出客户处理:
   1、当V为空,可以从F队列中提取客户处理。
   2、当F为空,可以从O队列中提取客户处理。

 (4)、剩下的便是异步随机生成客户和客户处理时间。

三、系统的设计与实现:
 (1)、系统涉及的对象:
  
  窗口:窗口处理客户业务的时间限制。四个普通窗口,一个快速窗口,一个VIP窗口。
  客户:客户处理时间是客户的属性。
  队列:三个队列,一个是普通客户队列,一个是快速客户队列,一个是VIP客户队列。

 (2)、按需求逻辑分析:
  · 一个窗口类:产生四个窗口对象,每个窗口有处理业务方法。
  · 客户: 异步随机生成客户对象,
  · 队列:三个队列对象,每个客户按级别加入队列。

 (3)、窗口类:
  成员域:
      处理业务时间限制
      客户 = null:
  成员方法:
      提取客户的方法(一句需求分析中的队列原理):(该方法中包含判断当前客户类型列表是否为空、若为空则从下一级列表中载入对象)
      处理客户业务方法:

 (4)、客户:
  成员域:
      客户处理时间:
      客户类型:
      客户业务:
   成员方法:
      获取、设置客户处理时间
      获取客户类型

 (5)、队列:
   成员域:
   队列类型:
   队列客户成员列表:
   成员方法:
   载入客户:
   提取客户:
  
  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值