java 实现的 银行取号 队列
来源:互联网 发布:ml域名注册教程 编辑:程序博客网 时间:2024/05/29 12:20
package com.union.so.dto;
class Queue extends java.util.Vector {
public Queue() {
super();
}
public synchronized void enq(Object x) {
super.addElement(x);
}
public synchronized Object deq() {
/* 队列若为空,引发EmptyQueueException异常 */
if (this.empty()){
System.out.println("当前队列为空!");
return null;
}
//throw new EmptyQueueException();
Object x = super.elementAt(0);
super.removeElementAt(0);
return x;
}
public synchronized Object front() {
if (this.empty())
throw new EmptyQueueException();
return super.elementAt(0);
}
public boolean empty() {
return super.isEmpty();
}
public synchronized void clear() {
super.removeAllElements();
}
public int search(Object x) {
return super.indexOf(x);
}
}
class EmptyQueueException extends java.lang.RuntimeException {
public EmptyQueueException() {
super("为空");
}
}
class QueueMess {
Queue VipQueue;// vip
Queue CommonQueue;// 普通
int vipCnt;// vip客户客户数目
int commonCnt;// 普通客户数目
public QueueMess() {
VipQueue = new Queue();
CommonQueue = new Queue();
vipCnt = 0;
commonCnt = 0;
}
/**
* 取号
*/
public void fetchCode(int ltype) {
switch (ltype) { // 客户类型
case 1: {
vipCnt++;
System.out.println("您好,vip客户,编号:VIP" + vipCnt + "前面等候人数:"
+ VipQueue.size());
VipQueue.addElement(vipCnt);
break;
}
case 2: {
commonCnt++;
System.out.println("您好,普通客户,编号:common" + commonCnt
+ "前面等候人数:" + CommonQueue.size());
CommonQueue.addElement(commonCnt);
break;
}
}
}
/**
* 处理号
*/
public void dealingCode(int ltype) {
switch (ltype) { // 客户类型
case 1: {
System.out.println("您好,vip客户,编号:VIP" + VipQueue.deq()
+ "请到vip窗口办理业务");
break;
}
case 2: {
System.out.println("您好,普通客户,编号:Common" + CommonQueue.deq()
+ "请到普通窗口办理业务");
break;
}
}
}
}
public class TestQuero {
public static void main(String[] args){
QueueMess queueMess = new QueueMess();
queueMess.fetchCode(1);
queueMess.fetchCode(1);
queueMess.dealingCode(1);
queueMess.dealingCode(1);
queueMess.fetchCode(1);
queueMess.fetchCode(2);
queueMess.fetchCode(2);
queueMess.fetchCode(2);
queueMess.dealingCode(1);
queueMess.dealingCode(2);
queueMess.dealingCode(2);
queueMess.fetchCode(1);
queueMess.fetchCode(1);
queueMess.dealingCode(2);
queueMess.dealingCode(1);
queueMess.dealingCode(1);
}
}
-----------------运行结果---------
您好,vip客户,编号:VIP1前面等候人数:0
您好,vip客户,编号:VIP2前面等候人数:1
您好,vip客户,编号:VIP1请到vip窗口办理业务
您好,vip客户,编号:VIP2请到vip窗口办理业务
您好,vip客户,编号:VIP3前面等候人数:0
您好,普通客户,编号:common1前面等候人数:0
您好,普通客户,编号:common2前面等候人数:1
您好,普通客户,编号:common3前面等候人数:2
您好,vip客户,编号:VIP3请到vip窗口办理业务
您好,普通客户,编号:Common1请到普通窗口办理业务
您好,普通客户,编号:Common2请到普通窗口办理业务
您好,vip客户,编号:VIP4前面等候人数:0
您好,vip客户,编号:VIP5前面等候人数:1
您好,普通客户,编号:Common3请到普通窗口办理业务
您好,vip客户,编号:VIP4请到vip窗口办理业务
您好,vip客户,编号:VIP5请到vip窗口办理业务
当前队列为空!
您好,vip客户,编号:VIPnull请到vip窗口办理业务
- java 实现的 银行取号 队列
- java笔记 银行取号系统
- 仿银行取号
- Java实现-队列中取最大值操作
- java的同步三种方式--银行取钱问题
- 队列基本操作及银行简易排号的实现
- java 多线程基础之银行取号排队系统
- java 多线程基础之银行取号排队系统
- Java -- 队列(模拟银行的排队办理业务)
- Java--银行类的初步实现
- 银行取号业务系统
- JAVA实现银行系统
- java 实现的队列
- java 队列的实现
- 队列的实现(JAVA)
- 队列的实现-java
- 队列的java实现
- 黑马程序员-----java基础二十四(银行柜台取票管理方案代码实现)
- 读书笔记:关于foreach,IEnumerable,IEnumerator,CollectionBase
- 好累的一天... ...
- 学习算法
- jstl的c 标签用法
- http://o-hand.com/
- java 实现的 银行取号 队列
- Android 开发笔记—— Service
- H.264学习历程
- Jasperreport利用子报表实现合并行
- ClearQuest对Oracle 11g的支持
- SiteMesh入门篇(一)
- Ubuntu下查看软件版本及安装位置
- 进程通信之(一,二) 信号机制实验
- joomla模块扩展与SEO