這篇文章給大家分享的java實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)的步驟,相信大部分人都還沒(méi)學(xué)會(huì)這個(gè)技能,為了讓大家學(xué)會(huì),給大家總結(jié)了以下內(nèi)容,話不多說(shuō),一起往下看吧。
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到濮陽(yáng)縣網(wǎng)站設(shè)計(jì)與濮陽(yáng)縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋濮陽(yáng)縣地區(qū)。
需求
要求是開(kāi)發(fā)幸運(yùn)抽獎(jiǎng)系統(tǒng),客戶(hù)必須首先注冊(cè)成為該商場(chǎng)會(huì)員,會(huì)員登錄成功后,就可以參加抽獎(jiǎng)活動(dòng)了。
注冊(cè)
用戶(hù)選擇“注冊(cè)”菜單,進(jìn)入注冊(cè)界面。輸入用戶(hù)名和密碼后,系統(tǒng)提示注冊(cè)成功,并給出會(huì)員卡號(hào)。
登錄
注冊(cè)成功后,用戶(hù)選擇“登錄”菜單,進(jìn)入登錄界面。輸入注冊(cè)時(shí)的用戶(hù)名和密碼。登錄成功,系統(tǒng)提示歡迎信息。如果用戶(hù)和密碼輸入錯(cuò)誤,提示用戶(hù)繼續(xù)輸入,最多有3次機(jī)會(huì)。
抽獎(jiǎng)
登錄成功后,用戶(hù)選擇“抽獎(jiǎng)”菜單,進(jìn)入幸運(yùn)抽獎(jiǎng)界面。輸入會(huì)員卡號(hào),系統(tǒng)生成5個(gè)4位隨機(jī)數(shù)作為幸運(yùn)數(shù)字。如果會(huì)員卡號(hào)是其中之一,則成為本日幸運(yùn)會(huì)員。
源代碼
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[][]{
//里面的指針轉(zhuǎn)動(dòng)
{1,"一等獎(jiǎng)",0.0001},
{2,"不要灰心",39.9994},
{3,"祝您好運(yùn)",20.0},
{4,"二等獎(jiǎng)",0.0002},
{5,"再接再厲",20.0},
{6,"運(yùn)氣先攢著",10.0},
{7,"三等獎(jiǎng)",0.0003},
{8,"謝謝參與",10.0}
};
Object result[] = award(prizeArr);//抽獎(jiǎng)后返回獎(jiǎng)品等級(jí)及獎(jiǎng)品描述
//抽獎(jiǎng)后返回獎(jiǎng)品等級(jí)及獎(jiǎng)品描述
public static Object[] award(Object[][] prizeArr){
//概率數(shù)組
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); //根據(jù)概率獲取獎(jiǎng)項(xiàng)號(hào)碼
String msg = (String) prizeArr[prizeId][1];//獎(jiǎng)品信息
Integer prizeIds = prizeId +1;
System.out.println("獎(jiǎng)品號(hào): "+prizeIds +" 獲獎(jiǎng)等級(jí):"+msg);
return new Object[]{prizeId,msg};
}
//根據(jù)概率獲取獎(jiǎng)項(xiàng)
public static Integer getRand(float obj[]){
Integer result = null;
try {
float sum = 0.0f;//概率數(shù)組的總概率精度
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++){//概率數(shù)組循環(huán)
BigDecimal db = new BigDecimal(Math.random() * (sum - min) + min);
BigDecimal b = new BigDecimal(Float.toString(obj[i]));
if(compareMethod(db,b) == -1){//中獎(jiǎng)
result = i;
break;
}else{
sum -=obj[i];
}
}
} catch (Exception e) {
e.printStackTrace();
}
/**
* 獎(jiǎng)品控制代碼,這里可以控制我們的獎(jiǎng)品的等級(jí)
* **/
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);//抽獎(jiǎng)后返回角度和獎(jiǎng)品等級(jí)
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);
}
}
關(guān)于java實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。
當(dāng)前名稱(chēng):java實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)
當(dāng)前鏈接:http://jinyejixie.com/article4/pgeioe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、商城網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)