万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!
随笔 - 189,  文章 - 0,  评论 - 7,  阅读 - 14万

如题,书上的例子。

营业员类:

复制代码
//营业员类
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分钟

posted on   万金流  阅读(167)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?

点击右上角即可分享
微信分享提示