- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1道面试题(银行业务调度系统)
模拟实现银行业务调度系统逻辑,具体需求如下:
?银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。
?有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。
?异步随机生成各种类型的客户,生成各类型用户的概率比例为:
VIP客户:普通客户:快速客户 = 1 :6 :3。
?客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。
?各类型客户在其对应窗口按顺序依次办理业务。
?当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。
?随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。
?不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。
解题思路
?面向对象的分析和设计:
(一)有三种对应类型的客户:VIP客户,普通客户,快速客户,异步随机生成各种类型的客户,各类型客户在其对应窗口按顺序依次办理业务。
1.首先,经常在银行办理业务的人更有利于理解本系统,例如,我经常陪老婆跑银行,对银行的这个业务算是比较熟悉了,我知道每一个客户其实就是由银行的一个取号机器产生号码的方式来表示的。所以,我想到要有一个号码管理器对象,让这个对象不断地产生号码,就等于随机生成了客户。
2.由于有三类客户,每类客户的号码编排都是完全独立的,所以,我想到本系统一共要产生三个号码管理器对象,各自管理一类用户的排队号码。这三个号码管理器对象统一由一个号码机器进行管理,这个号码机器在整个系统中始终只能有一个,所以,它要被设计成单例。
(二)各类型客户在其对应窗口按顺序依次办理业务 ,准确地说,应该是窗口依次叫号。
1.各个窗口怎么知道该叫哪一个号了呢?它一定是问的相应的号码管理器,即服务窗口每次找号码管理器获取当前要被服务的号码。
2.如果我不是多次亲身经历银行的这种业务,再加之积累了大量面向对象的应用开发经验,我也不知道能否轻松进行这种设计,能否发掘出其中隐含的对象信息,我真说不出具体的经验是什么,就是日积月累出来的一种感觉。
(三)类图:
?类的编码实现
(一)NumberManager类
1.定义一个用于存储上一个客户号码的成员变量和用于存储所有等待服务的客户号码的队列集合。
2.定义一个产生新号码的方法和获取马上要为之服务的号码的方法,这两个方法被不同的线程操作了相同的数据,所以,要进行同步。
源码如下:
package cn.itcast.bankqueue;
import 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类
1.定义三个成员变量分别指向三个NumberManager对象,分别表示普通、快速和VIP客户的号码管理器,定义三个对应的方法来返回这三个NumberManager对象。
2.将NumberMachine类设计成单例。
源码如下:
package cn.itcast.bankqueue;
public class NumberMachine {
private NumberMachine(){}
private static NumberMachine instance = new NumberMachine();
public static NumberMachine getInstance(){
return instance;
}
private Numb
您可能关注的文档
- 1班语文11月月考质量分析.doc
- 1注重让学生在表演中掌握及巩固知识所有的语言必定有一定的场景或背景.doc
- 1瓶葡萄酒中蕴涵着比所有书籍更多的哲理b.doc
- 1生中15个温馨的小片段.doc
- 1生中孩子应具备的9种能力.doc
- 1现在小汽车司机前仪表盘上大都有1个用来提醒司机车门是否关好的指示灯.doc
- 1瓶葡萄酒的碳足迹.doc
- 1生中我们还剩下的陪父母的时间.docx
- 1班北辛中学孟宪秀2015年首届班主任提高班学习心得.doc
- 1生中至少这样爱1次.doc
- 2025年初级卫生职称-初级药学-药学(士)[代码:101]历年参考题典型考点含答案解析.docx
- 2025年事业单位工勤技能-内蒙古-内蒙古机械冷加工四级(中级工)历年参考题典型考点含答案解析.docx
- 高分子链经纳米孔移位的动力学模拟.pdf
- 2025年事业单位工勤技能-云南-云南地图绘制员二级(技师)历年参考题典型考点含答案解析.docx
- 模板医德医风考评表.doc
- 2025年事业单位笔试-甘肃-甘肃临床医学工程技术(医疗招聘)历年参考题典型考点含答案解析.docx
- 新概念英语第54课练习题.pdf
- 2025年事业单位工勤技能-宁夏-宁夏热力运行工二级(技师)历年参考题典型考点含答案解析.docx
- 2025年山西建筑职业技术学院单招笔试语文试题库含答案解析.docx
- 2025年事业单位工勤技能-湖南-湖南图书资料员一级(高级技师)历年参考题典型考点含答案解析.docx
最近下载
- 《职业能力倾向测验》D类.pptx VIP
- 司法鉴定程序通则课件.ppt VIP
- ZZ027 婴幼儿保育赛项正式赛卷及评分标准完整版包括所有附件-2023年全国职业院校技能大赛赛项正式赛卷.pdf VIP
- 焊接工程技术交底.docx VIP
- (2025年)体育教师考编题库(附答案).docx VIP
- 海浦蒙特MTCC-V2A经典系列别墅电梯控制柜用户手册-中-V1.0.pdf VIP
- 糖尿病周围神经病变中医诊疗方案(2021年版).doc VIP
- ZZ029 养老照护赛项正式赛卷完整版包括所有附件-2023年全国职业院校技能大赛赛项正式赛卷.pdf VIP
- 2025课堂惩罚 主题班会:马达加斯加企鹅课堂惩罚 课件(共22张PPT内嵌视频).pptx VIP
- 糖尿病周围神经病变中医临床诊疗指南(2016年版).pdf VIP
原创力文档


文档评论(0)