java银行叫号_银行排队叫号系统
现在银行遍地开花,在城市了差不多每隔200米就可以看到一家银行。在银行叫号排队也就成了很平常的事情。但是很让人生气的是在咱们这个世界上最大的社会主义国家里,在银行排队却很不公平,咱们这些没钱的人(在银行里存钱不多,持普通卡)每次排队都要等很长一段时间才能办理业务,而且没有工作人员来招呼,而那些有钱人(在银行里存了很多钱,持“金卡”)却不用等,随时可以办理业务,还美其名曰“金卡”特权。难道有钱就有特权吗?气愤中……...
还是说这个系统吧:
银行大厅里有一个叫号机(顾客客户端),如果持普通卡点一下办理业务按钮就会打印一张小条,显示你的号码和排在你前面的人数;如果持金卡,点一下办理业务就会提示下一位要办理的客户就是你。
每个业务办理窗口都有一个工作人员客户端,点击下一位就会从等待的客户队列中取出第一位到该窗口办理。
客户,也就是等待的人,要有号码、排在前面的人数等属性,然后实现这些属性的set、get方法。
Waiter
Waiterpackage queuebanknew;
public class Waiter {
private int num;
private int frontNum;
private int flag;
public int getFlag() {
return flag;
}
public void setFlag(int flag) {
this.flag = flag;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getFrontNum() {
return frontNum;
}
public void setFrontNum(int frontNum) {
this.frontNum = frontNum;
}
}
工作人员,也就是窗口的处理业务的人员,她们有自己的编号,姓名,顾客,实现这些属性的set、get方法,还加入了一段工作过程的代码。
Counter
Counterpackage queuebanknew;
public class Counter {
private int id;
private String name;
private Waiter w;
public Counter(Waiter waiter) {
this.w=waiter;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Waiter getW() {
return w;
}
public void setW(Waiter w) {
this.w = w;
}
public void handBussines(){
System.out.println("正在处理:"+this.w.getNum()+"号");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("处理完毕:"+this.getW().getNum());
}
}
测试一下:
TestBankQueuepackage queuebanknew;
import java.util.Queue;
public class TestBankQueue {
/**
* @param args
*/
public static void main(String[] args) {
QueueServer qs = new QueueServer();
Queue waiterList = qs.init();//初始化10个等待者
Waiter waiter= null;
while(true){//模拟工作人员处理业务
waiter = waiterList.poll();
if(waiter != null){
Counter counter = new Counter(waiter);
counter.handBussines();
}else{
break;
}
}
}
}
结果:
服务器端:
QueueServerpackage queuebanknew;
import java.util.LinkedList;
public class QueueServer {
LinkedList waiterList = new LinkedList();
public LinkedList init(){
for(int i=1;i<=10;i++){
Waiter w = new Waiter();
w.setNum(i);
w.setFrontNum(i-1);
waiterList.offer(w);
}
return waiterList;
}
}
BankWorkerUI
工作人员客户端:
BankWorkerUIpackage queuebanknew;
import java.util.Queue;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class BankWorkerUI {
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(327, 253);
shell.setText("银行排队---工作人员客户端");
//新插入的界面核心代码
QueueServer qs = new QueueServer();
final Queue waiterList = qs.init();
final Text txt = new Text(shell,SWT.MULTI);
txt.setBounds(65,30,180,70);
//事件代码里要访问button
final Button button = new Button(shell,SWT.Activate);
button.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
Waiter waiter = waiterList.poll();
if(waiter!=null){
txt.setText(waiter.getNum()+"号顾客到1号窗口办理");
}else{
txt.setText("没人办理业务");
}
}
});
button.setBounds(90, 141, 100, 25);
button.setText("下一个");
shell.layout();
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
}
}
WaiterQueueUI
客户的客户端:
WaiterQueueUIpackage queuebanknew;
import java.util.LinkedList;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class WaiterQueueUI {
public static void main(String[] args){
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setBounds(100, 100, 570, 380);
//shell.setMaximized(true);
shell.setText("银行排队----顾客客户端");
//界面核心代码
QueueServer qs = new QueueServer();
final LinkedList waiterList = qs.init();
final Text txt = new Text(shell,SWT.MULTI);
txt.setBounds(50,50,200,150);
//事件代码里要访问button,所以要添加final
final Button button = new Button(shell,SWT.Activate);
button.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
Waiter waiter = new Waiter();
waiter.setNum(waiterList.size()+1);
waiter.setFrontNum(waiterList.size());
waiterList.offer(waiter);
if(waiterList.size()<=20){
txt.setText("您现在排在"+waiter.getNum()+"位置上\n您前面有"+waiter.getFrontNum()+"个人,请耐心等待!!");
}else{
txt.setText("您前面已经排20多人,请考虑!\n"+"您现在排在"+waiter.getNum()+"位置上,\n您前面有"+waiter.getFrontNum()+"个人,请耐心等待!!");
}
}
});
button.setBounds(75, 250, 150, 50); // 设置按钮位置
button.setFont(new Font(display,"宋体",12,SWT.BOLD));
button.setText("个人业务");// 设置按钮上的文字
//------------------------------------------------------------------------
final Text goldTxt = new Text(shell,SWT.NULL);
goldTxt.setBounds(300,50,200,150);
//事件代码里要访问button,所以要添加final
final Button goldButton = new Button(shell,SWT.Activate);
goldButton.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
Waiter w = new Waiter();
w.setFlag(1);
waiterList.addFirst(w);
goldTxt.setText("金卡用户,下一位就是您!");
}
});
goldButton.setBounds(325, 250, 150, 50); // 设置按钮位置
goldButton.setFont(new Font(display,"宋体",12,SWT.BOLD));
goldButton.setText("金卡通道");// 设置按钮上的文字
// ------------------END---------------------------------------------
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}
看一下运行结果:
posted on 2010-11-01 17:16 Mineralwasser 阅读(533) 评论(0) 编辑 收藏
java银行叫号_银行排队叫号系统相关推荐
- JAVA学习笔记_银行账户系统
大家好,我是一枚JAVA学习的小白,初次来到SCND还请多多指教!!!! 最近上编程课学习都挺晚的,没时间逛论坛了,今天休息正好也赶上线上,所以来发点学习笔记,一起讨论学习.(看我这个标点符号就知道我 ...
- 生命银行怎么样_银行双职工的家庭现状...
本文来源:邓行长 和大多数银行女一样, 我和老公也是同在银行上班相识, 14年结婚,15年9月,大儿子出生, 然后婆婆跟妈妈轮流照顾小孩, 18年1月,小儿子出生. 从此便开始了歇斯里底,腥风血雨的生 ...
- c语言 java 性能 测试_这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第...
这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第一个是对的啊提交序号1269960作者彭云成提交时间02-0507:49:27评测结果运行错误得分.. ...
- 生命银行怎么样_银行双职工家庭现状实录
和大多数银行女一样,我和老公也是同在银行上班相识,14年结婚,15年9月,大儿子出生,然后婆婆跟妈妈轮流照顾小孩,18年1月,小儿子出生,从此便开始了歇斯里底,腥风血雨的生活. 所有一切根源就是因为二 ...
- java 堡垒机_开源堡垒机系统Teleport部署教程
认识Teleport 在开源堡垒机领域, 很多人都知道jumpserver, 但是jumpserver安装相对较复杂, 新手容易出现各种坑. 在这里介绍一款简单易用的开源堡垒机系统: Teleport ...
- java 通知模式_设计模式:通知系统
我正在开发一个将使用社交网络功能的网站(例如facebook) . 我想实现一个通知系统,显示诸如"X将你添加为朋友","Y邀请你参加聚会","Z已经 ...
- 16版.就诊时排队叫号
MainClass public class MainClass {public static void main(String[] args) {// 创建默认叫号排队器QueueCaller qc ...
- 基于java+ssm+vue+mysql的银行排队叫号系统
项目介绍 银行排队叫号系统是以科学合理的机构组织合作.流畅疏通的信息渠道为平台,以客户基本信息.计算机.Internet网络.网络管理软件信息技术为手段建立的信息服务管理系统.系统将借助高速和先进的计 ...
- mfc 子窗体 按钮不触发_资深程序员用c++开发MFC银行排队叫号系统,小白看了也能学会...
这个C++ 银行排队叫号系统是看了书后写出来的程序,运用于MFC理念编写,我看的书是谭浩强的<C++面向对象程序设计>相对计科的书少了前六章 直接从对象讲起,这本书也是本班使用人数最多的一 ...
- 模拟银行窗口排队叫号系统的运作
最近在网上看到了一道面试题,初看很简单,细看有点意思的一道题目: http://blog.csdn.net/zhangxiaoxiang/archive/2011/04/01/6294132.aspx ...
最新文章
- Effective.Java第23-33条(泛型相关)
- 使用Spring-data-jpa(1)(三十)
- MVC把随机产生的字符串转换为图片
- 《代码大全》阅读笔记02
- 装完B就跑,这几个Linux指令真的Diǎo
- linux系统root默认密码是多少钱,linux root默认密码忘记后的解决方法
- 关于WebService中用到的QName详解
- 详解计算机内部存储数据的形式 二进制数
- 交流继电器rc吸收电路_使用固态继电器的注意事项
- Qt学习笔记-Qt5程序开机自启动(windows)
- Eclipse Debug不能热部署解决
- qt qthead里如何响应信号_QT使用教程(五)之程序编写
- 模拟登陆教务处获取成绩
- 15-1 并发版爬虫架构
- python全栈马哥_马哥2018python全栈视频
- ssm框架组件及介绍
- 水星路由器DNS服务器未响应,为什么新版水星路由器不能上网
- java爆炸图片切换,JavaScript实现爆炸碎片的 图片切换 效果
- RL论文阅读【一】Playing Atari with Deep Reinforcement Learning
- 现有论文和作者两个实体,论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。请完成以下操
热门文章
- 【ihaonet微测试】你出题,我开发
- Stimulsoft Reports.Web 2022.2.3 Crack
- 详细的设计文档该怎么写?请注意这些地方...
- oracle怎么该字体,oracle中修改国家字符集(转)
- 计算机辅助工程分析及应用论文,浅谈计算机辅助工程(CAE) 毕业设计(论文).doc...
- 我在GitHub上找到了这些游戏项目,刺激!
- usb3.0速度测试软件,USB3.0芯片速度测试比较
- 三边测距定位算法详解
- 为什么acdsee服务器怎在运行,为何打开网页时会出现安装acdsee 5.0.1 powerpack
- 站长必备-伪原创原创度检测软件v1.3 (支持百度/谷歌/360/搜狗/神马/微信)