Ⅰ 抽獎java程序(是作業,急需
本來老早都給你弄好了,可你也不操心,一直沒有給你發;現在就這樣,需要改的話,說一下
/**
* 根據倒敘的字元串,獲取與最後一位相同的位數
* @param string -倒敘後的字元串
* @return -後幾位相同
*/
public static int getString( String string){
String string1 = string+"-";
//正則
String[] arr1 = string1.split(string1.toCharArray()[0]+"");
String string2 = string1.substring(0,arr1.length-1)+"-";
String[] arr2 = string2.split(string2.toCharArray()[0]+"");
return arr1.length==arr2.length?arr1.length-1:
getString(string.substring(0,arr1.length-1))
;
}
/**
* 後幾位相同
* @param num
* @return
*/
public static int get(Integer num,Integer o){
String string = (num+o)+"";
StringBuffer buffer = new StringBuffer(string);
string = buffer.reverse().toString();//字元串倒敘
int count = getString(string);
return count==3&&o==0?3:
count==4&&o==0?2:
count==6&&o==0?1:
count==3&&o==1?31:
count==4&&o==1?21:
count==6&&o==1?11:
count==3&&o==-1?32:
count==4&&o==-1?22:
count==6&&o==-1?12: -1;
}
public static void main(String[] args) {
Map<String,String> map = new TreeMap<>();
Set<Integer> set = new HashSet<>();
set.add(402223);
set.add(402221);
set.add(401223);
set.add(401221);
set.add(222223);
set.add(222221);
int b = 0,n=30;
while (true){
int random = (int) (Math.random()*(1000000-100000) + 100000);
set.add(random);
if (set.size() == n){
break;
}
}
for (Integer key:set){
int count = get(key,0);
//最後一個數字是0或9的話就只有一個
count = count < 0&&key%10!=9?get(key,1):count;
count = count < 0&&key%10!=1?get(key,-1):count;
String str = count>0?(
count/10==0?(
count==3?"third":count==2?"second":"first"
)
:(
"adjacent"
)
):
"blank";
//"歡迎再來";
map.put("買到的號碼:"+key, str);
}
System.out.println(map);
}
Ⅱ 用Java編寫一個抽獎游戲要求: 1.用戶單擊「開始」按鈕進行滾動抽獎,單擊「停止」按鈕即可產生1
使用 ArrayList<Integer> 放那些待抽的數,,,,抽一個、delete一個。。。。。。
Ⅲ 用java做一個抽獎的代碼
要在cmd下運行啊 我想你安裝JDK沒?
import java.util.*;
class Test{
private int maxSize=0;
private int selectSize=0;
private List<Integer> list=new ArrayList<Integer>();
private int[] one=new int[7];
public Test(int maxSize,int selectSize){
this.maxSize=maxSize;
this.selectSize=selectSize;
one=new int[selectSize];
for(int i=1;i<=maxSize;i++)
list.add(Integer.valueOf(i));
}
public void open(){
List<Integer> temp=new ArrayList<Integer>();
temp.addAll(list);
int[] p=new int[selectSize];
int tag=0;
for(int i=0;i<selectSize;i++){
tag=(int)(Math.random()*555555%temp.size());
p[i]=(Integer)temp.get(tag).intValue();
temp.remove(tag);
}
one=p;
}
public void paixu(){
int temp=0;
for(int i=0;i<selectSize;i++){
for(int j=0;j<selectSize-1;j++){
if(one[j]>one[j+1]) {temp=one[j];one[j]=one[j+1];one[j+1]=temp;}
}
}
}
public void printOpen(){
open();
paixu();
for(int i=0;i<one.length;i++)
System.out.print(one[i]+" ");
System.out.println();
}
static public void main(String[] str){
Test t=new Test(33,6); //彩票類型:33選6
for(int i=0;i<10;i++) //開10次獎
t.printOpen();
}
}
Ⅳ 做一個JAVA的抽獎系統
用隨機的辦法 來 作為抽獎結果 是誤人的。。。。
理想辦法是生成抽獎池
然後以隨機數的辦法生成數據進入抽獎池中抽取獎品
並且加入判斷語句來過濾已經抽取出來的獎品 一直到獎池為空
Ⅳ 關於java抽獎代碼
intSjs=newRandom().nextInt(10)+1;
if(Sjs==1)
{
System.out.println("您抽到的是一等獎");
}
elseif(Sjs>1&&Sjs<4)
{
System.out.println("您抽到的是二等獎");
}
elseif(Sjs>3&&Sjs<7)
{
System.out.println("您抽到的是三等獎");
}
else
{
System.out.println("謝謝參與");
}
你這個if判斷語句後面是沒有分號的,
Ⅵ 怎麼用JAVA寫一個主要用很貴的物品抽獎而且是轉盤的且概率是千萬分之一提問
在一千萬中隨機生成一個隨機數就行
Ⅶ java 製作抽獎小程序
幫你做了一個,不知是否滿意呢?
importjava.applet.Applet;
importjava.awt.Button;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.awt.TextField;
importjava.awt.event.ActionEvent;
importjava.util.Random;
importjava.util.Vector;
{
=1L;
intw,h;
Buttonok,out,setup;
String[]msg;
TextField[]gaiLv;
TextField[]jiangPin;
intmx,ml;
intmaxNum;
Randomran;
Vector<Integer>fist;
Vector<Integer>sec;
Vector<Integer>third;
Vector<Integer>lucky;
booleanlot=false;
booleaniserr=false;
booleanissetup=false;
Stringmesg="輸入錯誤";
StringpriseMsg="繼續努力!";
publicvoidinit(){
w=400;
h=220;
mx=20;
ml=40;
ran=newRandom();
this.setSize(w,h);
this.setLayout(null);
ok=newButton("抽獎");
out=newButton("退出");
setup=newButton("確認設置");
msg=newString[4];
msg[0]="一等獎";
msg[1]="二等獎";
msg[2]="三等獎";
msg[3]="幸運獎";
gaiLv=newTextField[4];
jiangPin=newTextField[4];
for(inti=0;i<4;i++){
gaiLv[i]=newTextField("0.0"+(i+1));
this.add(gaiLv[i]);
gaiLv[i].setBounds(mx+ml,75+i*26,60,18);
jiangPin[i]=newTextField();
this.add(jiangPin[i]);
jiangPin[i].setBounds(mx+ml*3,75+i*26,80,18);
}
this.add(ok);
ok.setBounds(260,180,60,28);
ok.addActionListener(newLotButtonAction(this));
this.add(out);
out.setBounds(330,180,60,28);
out.addActionListener(newLotButtonAction(this));
this.add(setup);
setup.setBounds(110,180,80,24);
setup.addActionListener(newLotButtonAction(this));
}
publicvoidpaint(Graphicsg){
g.setColor(Color.white);
g.fillRect(0,0,this.getWidth(),this.getHeight());
g.setColor(newColor(230,255,230));
g.fillRect(0,0,w,30);
g.setColor(Color.BLUE);
g.drawString("JAVA抽獎系統",130,20);
g.setColor(Color.ORANGE);
g.drawRect(10,40,230,170);
g.setColor(Color.BLACK);
g.drawString("設置",mx,60);
g.drawString("概率",mx+ml,60);
g.drawString("獎品",mx+ml*3,60);
for(inti=0;i<msg.length;i++){
g.setColor(newColor(255-(i*30),45,89));
g.drawString(msg[i],20,90+i*26);
}
if(lot==true){
g.setColor(newColor(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255)));
if(priseMsg.length()<=7){
g.drawString(priseMsg,260,100);
}else{
g.drawString(priseMsg.substring(0,5),260,100);
g.drawString(priseMsg.substring(5),260,120);
}
}
if(iserr==true){
g.drawString(mesg,260,100);
}
}
publicvoidgetLucky(){
floatfiru=1;
floatsecu=1;
floatthiu=1;
floatfouu=1;
floatminu=1;
if(gaiLv[0].getText().trim().length()>1){
firu=Float.parseFloat(gaiLv[0].getText());
if(firu<=0||firu>=1){
iserr=true;
return;
}
if(firu<minu){
minu=firu;
}
}
if(gaiLv[1].getText().trim().length()>1){
secu=Float.parseFloat(gaiLv[1].getText());
if(secu<=0||secu>=1){
iserr=true;
return;
}
if(secu<minu){
minu=secu;
}
}
if(gaiLv[2].getText().trim().length()>1){
thiu=Float.parseFloat(gaiLv[2].getText());
if(thiu<=0||thiu>=1){
iserr=true;
return;
}
if(thiu<minu){
minu=thiu;
}
}
if(gaiLv[3].getText().trim().length()>1){
fouu=Float.parseFloat(gaiLv[3].getText());
if(fouu<=0||fouu>=1){
iserr=true;
return;
}
if(fouu<minu){
minu=fouu;
}
}
if(minu>=1||minu<=0){
iserr=true;
return;
}
floataNum=1/minu;
maxNum=(int)aNum;
intcount=(int)(firu/minu);
if(firu!=1){
fist=getLotteryVec(maxNum,count);
}else{
fist.removeAllElements();
}
count=(int)(secu/minu);
if(secu!=1){
sec=getLotteryVec(maxNum,count);
}else{
sec.removeAllElements();
}
count=(int)(thiu/minu);
if(thiu!=1){
third=getLotteryVec(maxNum,count);
}else{
third.removeAllElements();
}
count=(int)(fouu/minu);
if(fouu!=1){
lucky=getLotteryVec(maxNum,count);
}else{
lucky.removeAllElements();
}
issetup=true;
iserr=false;
}
protectedVector<Integer>getLotteryVec(intmaxNum,intnum){
Vector<Integer>result=newVector<Integer>();
for(inti=0;i<num;i++){
result.add(ran.nextInt(maxNum));
}
returnresult;
}
protectedintgetaNum(){
returnran.nextInt(maxNum);
}
publicintisLucky(intpNum){
for(inti=0;i<fist.size();i++){
if(fist.get(i)==pNum){
return1;
}
}
for(inti=0;i<sec.size();i++){
if(sec.get(i)==pNum){
return2;
}
}
for(inti=0;i<third.size();i++){
if(third.get(i)==pNum){
return3;
}
}
for(inti=0;i<lucky.size();i++){
if(lucky.get(i)==pNum){
return4;
}
}
return-1;
}
(ActionEvente){
StringacName=e.getActionCommand();
if(acName.equals("抽獎")){
if(issetup==false){
priseMsg="請先設置參數!";
lot=true;
repaint();
lot=false;
return;
}
lot=true;
priseMsg=getResult(getaNum());
repaint();
//lot=false;
}elseif(acName.equals("退出")){
this.setVisible(false);
this.stop();
this.destroy();
System.exit(0);
}elseif(acName.equals("確認設置")){
lot=false;
getLucky();
repaint();
}
}
publicStringgetResult(intnum){
intresu=isLucky(num);
Stringresult="";
switch(resu){
case-1:
result="繼續努力!";
break;
case1:
result="恭喜你!一等獎! 獲得"+jiangPin[0].getText();
break;
case2:
result="恭喜你!二等獎! 獲得"+jiangPin[1].getText();
break;
case3:
result="恭喜你!三等獎! 獲得"+jiangPin[2].getText();
break;
case4:
result="恭喜你!幸運獎! 獲得"+jiangPin[3].getText();
break;
default:
result="繼續努力!";
}
returnresult+num;
}
}
.awt.event.ActionListener{
Lotterysu;
publicLotButtonAction(Lotterybun){
this.su=bun;
}
@Override
publicvoidactionPerformed(ActionEvente){
su.ButtonActionPerformed(e);
}
}
Ⅷ 求Java實現轉盤轉動功能,抽獎,坐等
轉盤轉動就是圖片,定義一個隨機數random;
if(random==1){
畫中獎的圖片
}else{
畫不中獎的圖片}
Ⅸ 用java完成一個抽獎的程序。 每次運行程序,都會從以下的抽獎結果中隨機顯示一個出來:
生成100個對象,對象有個屬性,其中10個是大獎,40個是小獎,50個是無獎。
放到一個List里。
每次抽中的步驟
1、隨機生成0-List長度之間的數值 ,去取List中的相應對象,並移除這個對象。
代碼如下。:
獎品對象類:
public class PrizeBean {
private String type;
public String getType() {
return eggType;
}
public void setType(String eggType) {
this.eggType = eggType;
}
}
獎品池初始化代碼段:
{
List prizebeanList = new ArrayList();
for (int i = 0; i < 10; i++) {
PrizeBean prizeBean = new PrizeBean();
prizeBean.setType(「大獎「);
prizebeanList.add(prizeBean);
}
for (int i = 0; i < 40; i++) {
PrizeBean prizeBean = new PrizeBean();
prizeBean.setType(「小獎「);
prizebeanList.add(prizeBean);
}
for (int i = 0; i < 50; i++) {
PrizeBean prizeBean = new PrizeBean();
prizeBean.setType(「無獎「);
prizebeanList.add(prizeBean);
}
}
抽獎代碼段:
/**
*獎品池已經空的,肯定返回無獎了。。。
**/
if(prizebeanList.size()==0){
- 沒有中獎哦,下次加油!
return;
}
/**
* 隨機生成,獎品池中獎品數量的數字。。取出獎品池中的數字。。移除記錄。返回。。
*/
int resultnum = (int) (Math.random() * prizebeanList.size());
PrizeBean resultPrizeBean = prizebeanList.get(resultnum);
prizebeanList.remove(resultPrizeBean);
if(resultPrizeBean.getType() .eqauls("大獎"){
- 恭喜,大獎!
}else if(resultPrizeBean.getType() .eqauls("小獎"){
- 運氣不錯哦,小獎!
}else{
- 沒有中獎哦,下次加油!
}.
Ⅹ 跪求java 抽獎程序 含資料庫
程序循環應該寫在開始按鈕的監聽里,當按下開始按鈕後,程序開始循環,當按停止按鈕時,循環停止. 你可以用while循環, 條件是一個boolean型的值,當按開始值為true,當按停止值為false.
昨天幫一個哥們改了一個JAVA的模擬抽獎程序,有點意思。自己還給它加了一個暗箱,嘿嘿。暗箱還是比較暗,而且作用效果不錯,准備再改改。改好了發源碼!
本程序用於模擬抽獎,可用於日常的單位、公司進行抽獎活動。
具體的演算法思想是:
首先從一個文本文件中讀取參加抽獎的人員信息,該信息有一定的格式既:姓名-手機號碼(根據具體情況而定,切記中間是字元「-」,否則無法讀入)。如下圖:
程序將讀入的信息裝入兩個VECTOR中(v_identNumber和v_name)。點擊「開始」按鈕進行抽獎操作。
後台的數據產生是利用JAVA的偽隨機函數。根據隨機數產生展現在前台的字元,每次間隔的時間是0.05秒。
用戶點擊「停止」按鈕,操作線程就掛起,這時產生相應的中獎號碼(即前台展示的號碼),中獎號碼存儲在v_printident中。v_printident同樣是VECTOR類型的。
本系統設置的是將產生3個3等獎,2個2等獎,1個1等獎還有一個特等獎。系統將根據用戶點擊按鈕次數來確定產生幾等獎。
獎項全部產生以後,點擊保存,可以將結果信息保存在當前目錄下的result.txt中。
關於暗箱的說明:
基本說明:
暗箱操作不是光明正大的行為,但是作為一個小小的研究對象,本人覺得還是有點意思。
具體功能:
可以實現對制定人員的獲獎操作,可以實現對特等獎的產生操作。
實現機制:
首先,用戶讀入指定獲獎的人員文件,數據的格式為:姓名*號碼切記是(「*」,否則無法讀入)。在人員文件的最後一行,是控制中獎力度的key,具體格式為「 *key」(切記前面要有一個空格鍵),如下圖:
關於key的說明:
Key的值可以設置1到10,如果沒有在這個范圍,系統將自動設置key為5
系統的key設置得越大,指定人員的獲獎概率就越大。具體公式:key/(總人數*指定人數)
如果key的值設置為10,系統將會產生特等獎,獲得者為制定人員的第一項,但是除了特等獎,不會再對其他人員有任何操作(相當於只能產生特等獎)。
其他一些說明讀者自己去看程序,這里不再贅述。程序很簡單(在後面的):