java怎么做出简单的抽奖程序?实例代码展示

BSO 2020-08-31 11:14:52 java常见问答 8619

自从20世纪90年代以来,java编程语言的发展如火如荼,不仅仅应用于高新产业的壮大发展,还涉及到了我们的日常生活,为我们的生活带来了更多的便利与快捷方法。今天主要为大家介绍一下,如何用java做出一个简单的抽奖程序,并且通过一个实例代码为大家展示。

首先,我们要确定一个基本思路。第一步:确定我们需要的奖项,比如:一等奖、二等奖、三等奖、谢谢惠顾;第二步:设置4个区间,0~5是一等奖、6~15是二等奖、16~40是三等奖、剩下的40~100是谢谢惠顾;第三步:产生一个随机数,判断随机数在哪个区间之内,就会获得相应的奖项;

这是一个比较简单的程序设计,接下来为大家展示实例代码。

public JsonResult luckyDraw()
{
    JsonResult jsonResult = new JsonResult("200");
    jsonResult.setFlag(true);
    jsonResult.setMsg("抽奖成功");
    //定义中奖率分母百分之
    int probabilityCount = 100;
    //最小概率
    String min = "min";
    //最大概率
    String max = "max";
    Integer tempInt = 0;
    //待中将商品数组
    Map < String, Map < String, Integer >> prizeMap = new HashMap < > ();
    //获取商品列表
    List < Prize > prizeList = prizeDao.findAll();
    for (Prize prize: prizeList)
    {
        Map < String, Integer > oddMap = new HashMap < > ();
        //最小概率值
        oddMap.put(min, tempInt);
        tempInt = tempInt + prize.getPrizeOdd();
        //最大概率
        oddMap.put(max, tempInt);
        prizeMap.put(prize.getId(), oddMap); //(奖品id,最小概率~最大概率)
    }
    //随机一个数字
    int index = (int)(Math.random() * probabilityCount);
    Prize prize = null; //中奖商品容器
    Set < String > prizeIds = prizeMap.keySet(); //拿到所有奖品id
    for (String prizesId: prizeIds)
    {
        Map < String, Integer > oddMap = prizeMap.get(prizesId); //商品的概率
        Integer minNum = oddMap.get(min);
        Integer maxNum = oddMap.get(max);
        //校验index在那个商品概率中间
        if (minNum <= index && maxNum > index)
        {
            prize = prizeDao.getOne(prizesId);
            break;
        }
    }
    if (prize == null)
    {
        prize = null;
    }
    jsonResult.setObj(prize.getPrizeName());
    return jsonResult;
}

运行结果如下:

java抽奖程序


以上就是有关于如何用java做出一个简单的抽奖程序,这个方法使用范围还是比较广泛的。如果对java感兴趣,想要了解更多java经典例子,敬请关注奇Q工具网。

推荐阅读:

java移位运算符包括哪些?详细实例展示

java工厂模式例子,java实例代码

java如何实现进度条开发的流程?详细实例展示