如题,书上的例子。
营业员类:
//营业员类
public class Yyy
{
int xian,spend;//营业员空闲时刻,办理一个业务花费的时间
public Yyy(int _xian,int _spend)
{
xian=_xian;
spend=_spend;
}
}
营业厅类:
public class Yyt
{
public Yyy[] a;//这个营业厅有三个营业员
public int dd=0,c=0;//统计客户等待总时间和总客户数
public Yyt()
{
a=new Yyy[3];
a[0]=new Yyy(0, 4);
a[1]=new Yyy(0, 5);
a[2]=new Yyy(0, 6);
}
//接待一个“arrived”时间到达的客户
public void jiedai(int arrived)
{
//找出最先空闲的营业员
int p=0;
if(a[p].xian>a[1].xian)
{
p=1;
}
if(a[p].xian>a[2].xian)
{
p=2;
}
//接待客户,累加等待时间
if(a[p].xian>arrived)//客户先到,营业员后空闲
{
a[p].xian+=a[p].spend;//营业员下次空闲的时间
//总等待时间增加
dd+=a[p].xian-arrived;
}
else
{
a[p].xian=arrived+a[p].spend;//营业员下次空闲的时间
//总等待时间增加
dd+=a[p].spend;
}
//总人数增加
c++;
}
public void countAll()
{
System.out.println("累计服务"+c+"人,累计服务"+dd+"分钟,平均每人等候约"+dd/c+"分钟");
}
}
主类,包含用户队列及入队初始化,之后出队接受服务。
代码如下:
import java.util.LinkedList;
import java.util.Queue;
public class c1 {
public static void main(String[] args)
{
Yyt a=new Yyt();
Queue<Integer> guests=new LinkedList<Integer>();
for (int i = 0; i <6; i++)
{
guests.offer(1*i);
}
while(!guests.isEmpty())
{
a.jiedai(guests.poll());
}
a.countAll();
}
}
运行结果:
累计服务6人,累计服务34分钟,平均每人等候约5分钟