这次练习的小项目是模拟银行的排队系统。别且使用 SWT 通过 UI 进行模拟操
作
情景再现:当客户来到银行进行办理业务的时候会因为人多产生拥挤的现
象,所以银行业务大厅需要一款能够进行排队并且打印出号码的系统,用来解
决拥挤现象。但是如果有 VIP 用户前来办理业务则可以享受优先办理业务的权
限。
业务需求:能够进行排队,给每个人编排上正确的号码,VIP 用户优先办
理。
设计思路:设计一个排队的 UI,里面有两个按钮模拟普通客户和 VIP 用
户的区别,点击不同的按钮辨认客户身份,进行不同的编排。设计一个业务员
使用的 UI,因为在内存层面还不能实现不同窗口中数据的访问,所以设定两个
按钮,一个是模拟业务员招待下一个用户,另一个模拟在处理普通业务时有
VIP 的到来。客户队列使用容器类接口 Queue 和 LinkedList 类。使用两个队列,
一个是普通客户的队列,另一个是 VIP 用户的队列。
实现代码如下:①:创建客户类:
public class Waiter {
private int num;//客户排到的号码
private int frontNum;//客户前面还有多少人
//生成 set 和 get 方法,对属性进行封装
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;
}
}
②:创建 Server 类,表示现在已经有顾客已经排上好了队:
import java.util.*;
public class QueueServer {
//实例一个普通客户队列
Queue<Waiter> waiterList = new LinkedList<Waiter>();
//普通用户队列添加已经排好队的人
public Queue<Waiter> init()
{
for(int i=1;i<=30;i++){
Waiter w = new Waiter();
w.setNum(i);
w.setFrontNum(i-1);