中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java實現抽獎系統

發布時間:2020-06-03 15:05:20 來源:億速云 閱讀:311 作者:Leah 欄目:編程語言

這篇文章給大家分享的java實現抽獎系統的步驟,相信大部分人都還沒學會這個技能,為了讓大家學會,給大家總結了以下內容,話不多說,一起往下看吧。

需求

要求是開發幸運抽獎系統,客戶必須首先注冊成為該商場會員,會員登錄成功后,就可以參加抽獎活動了。
注冊

用戶選擇“注冊”菜單,進入注冊界面。輸入用戶名和密碼后,系統提示注冊成功,并給出會員卡號。
登錄

注冊成功后,用戶選擇“登錄”菜單,進入登錄界面。輸入注冊時的用戶名和密碼。登錄成功,系統提示歡迎信息。如果用戶和密碼輸入錯誤,提示用戶繼續輸入,最多有3次機會。
抽獎

登錄成功后,用戶選擇“抽獎”菜單,進入幸運抽獎界面。輸入會員卡號,系統生成5個4位隨機數作為幸運數字。如果會員卡號是其中之一,則成為本日幸運會員。
源代碼
import java.math.BigDecimal;import java.util.ArrayList;import java.util.List;
import com.thinkive.base.jdbc.DataRow;
public class TurnTable {

static Object[][] prizeArr = new  Object[][]{  
    //里面的指針轉動  
    {1,"一等獎",0.0001},  
    {2,"不要灰心",39.9994}, 
    {3,"祝您好運",20.0},  
    {4,"二等獎",0.0002},  
    {5,"再接再厲",20.0},  
    {6,"運氣先攢著",10.0},  
    {7,"三等獎",0.0003},  
    {8,"謝謝參與",10.0} 
};
Object result[] = award(prizeArr);//抽獎后返回獎品等級及獎品描述

//抽獎后返回獎品等級及獎品描述  
public static Object[] award(Object[][] prizeArr){  
    //概率數組  
    float obj[] = new float[prizeArr.length];  
    for(int i=0;i<prizeArr.length;i++){  
        obj[i] = Float.parseFloat(prizeArr[i][2].toString());  
    }  
    Integer prizeId = getRand(obj); //根據概率獲取獎項號碼  
    String msg = (String) prizeArr[prizeId][1];//獎品信息
    Integer prizeIds = prizeId +1;
    System.out.println("獎品號: "+prizeIds +" 獲獎等級:"+msg);  

    return new Object[]{prizeId,msg};  
}

//根據概率獲取獎項  
public static Integer getRand(float obj[]){  
    Integer result = null;  
    try {  
        float sum = 0.0f;//概率數組的總概率精度   
        float min = 0.0f;//
        for(int i=0;i<obj.length;i++){
            BigDecimal beforSum = new BigDecimal(Float.toString(sum));
            BigDecimal objValue = new BigDecimal(Float.toString(obj[i]));
            sum = beforSum.add(objValue).floatValue();
        }  
        for(int i=0;i<obj.length;i++){//概率數組循環  
            BigDecimal db = new BigDecimal(Math.random() * (sum - min) + min);
            BigDecimal b = new BigDecimal(Float.toString(obj[i]));
            if(compareMethod(db,b) == -1){//中獎 
                result = i;  
                break;  
            }else{  
                sum -=obj[i];  
            }  
        }  
    } catch (Exception e) {  
        e.printStackTrace();  
    }
    /**
     * 獎品控制代碼,這里可以控制我們的獎品的等級
     * **/
    return result;  
}

public static void main(String[] args) {
    DataRow data = new DataRow();//此處DataRow為封裝了的 HashMap
    List<DataRow> resultList = new ArrayList<DataRow>();
    for (int i = 0; i < 10000; i++) {
        int k = 1;
        Object result[] = award(prizeArr);//抽獎后返回角度和獎品等級
        String prize = "";
        String comment = "";
        for (Object object : result) {
            if(k==1){
                prize = object.toString();
            }else if(k==2){
                comment = object.toString();
            }
            k++;
        }
        if(k==3){
            data.set("prize", Integer.valueOf(prize)+1);
            data.set("comment", comment);
            resultList.add(data);
        }
    }
}

public static int compareMethod(BigDecimal a,BigDecimal b){
    return a.compareTo(b);
}}

關于java實現抽獎系統就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克| 色达县| 斗六市| 准格尔旗| 石柱| 漳平市| 大名县| 华容县| 城市| 武穴市| 马边| 长子县| 沁阳市| 镇雄县| 鄂尔多斯市| 大安市| 井研县| 三原县| 礼泉县| 佛山市| 肇庆市| 霍山县| 滦平县| 甘德县| 岳普湖县| 谢通门县| 高要市| 郓城县| 嵊州市| 吴旗县| 虹口区| 南投县| 德化县| 叙永县| 伊金霍洛旗| 玉屏| 扶余县| 静乐县| 上杭县| 贵州省| 孙吴县|