java 制作抽奖小程序

1、可添加奖项(如1、MP3;2、手机;3、谢谢光临);2、中奖机率(如1、1%;2、2%,3、97%);1楼太粗糙了吧,要可以添加奖项,和设置中率!... 1、可添加奖项(如1、MP3;2、手机;3、谢谢光临);
2、中奖机率(如1、1%;2、2%,3、97%);
1楼太粗糙了吧,要可以添加奖项,和设置中率!
展开
 我来答
月光雪松
2011-04-27 · TA获得超过476个赞
知道小有建树答主
回答量:338
采纳率:100%
帮助的人:233万
展开全部

帮你做了一个,不知是否满意呢?

import java.applet.Applet;

import java.awt.Button;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.util.Random;

import java.util.Vector;

public class Lottery extends Applet {

 private static final long serialVersionUID = 1L;

 int w,h;

 Button ok,out,setup;

 String[] msg;

 TextField[] gaiLv;

 TextField[] jiangPin;

 int mx,ml;

 int maxNum;

 Random ran;

 Vector<Integer> fist;

 Vector<Integer> sec;

 Vector<Integer> third;

 Vector<Integer> lucky;

 boolean lot=false;

 boolean iserr=false;

 boolean issetup=false;

 String mesg="输入错误";

 String priseMsg="继续努力!";

 public void init(){

  w=400;

  h=220;

  mx=20;

  ml=40;

  ran=new Random();

  this.setSize(w, h);

  this.setLayout(null);

  ok=new Button("抽奖");

  out=new Button("退出");

  setup=new Button("确认设置");

  msg=new String[4];

  msg[0]="一等奖";

  msg[1]="二等奖";

  msg[2]="三等奖";

  msg[3]="幸运奖";

  gaiLv=new TextField[4];

  jiangPin=new TextField[4];

  

  for(int i=0;i<4;i++){

   gaiLv[i]=new TextField("0.0"+(i+1));

   this.add(gaiLv[i]);

   gaiLv[i].setBounds(mx+ml, 75+i*26, 60, 18);

   

   jiangPin[i]=new TextField();

   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(new LotButtonAction(this));

  this.add(out);

  out.setBounds(330, 180, 60, 28);

  out.addActionListener(new LotButtonAction(this));

  

  this.add(setup);

  setup.setBounds(110, 180, 80, 24);

  setup.addActionListener(new LotButtonAction(this));

  

 }

 

 public void paint(Graphics g){

  g.setColor(Color.white);

  g.fillRect(0, 0, this.getWidth(), this.getHeight());

  g.setColor(new Color(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(int i=0;i<msg.length;i++){

   g.setColor(new Color(255-(i*30),45,89));

   g.drawString(msg[i], 20, 90+i*26);

  }

  if(lot==true){

   g.setColor(new Color(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);

  }

  

 }

 

 public void getLucky(){

  float firu=1;

  float secu=1;

  float thiu=1;

  float fouu=1;

  float minu=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;

  }

  float aNum=1/minu;

  maxNum=(int)aNum;

  int count=(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;

 }

 

 protected Vector<Integer> getLotteryVec(int maxNum,int num){

  Vector<Integer> result=new Vector<Integer>();

  for(int i=0;i<num;i++){

   result.add(ran.nextInt(maxNum));

  }

  return result;

 }

 

 protected int getaNum(){

  return ran.nextInt(maxNum);

 }

 

 public int isLucky(int pNum){

  for(int i=0;i<fist.size();i++){

   if(fist.get(i)==pNum){

    return 1;

   }

  }

  for(int i=0;i<sec.size();i++){

   if(sec.get(i)==pNum){

    return 2;

   }

  }

  for(int i=0;i<third.size();i++){

   if(third.get(i)==pNum){

    return 3;

   }

  }

  for(int i=0;i<lucky.size();i++){

   if(lucky.get(i)==pNum){

    return 4;

   }

  }

  

  return -1;

 }

 

 public void ButtonActionPerformed(ActionEvent e){

  String acName=e.getActionCommand();

  if(acName.equals("抽奖")){

   if(issetup==false){

    priseMsg="请先设置参数!";

    lot=true;

    repaint();

    lot=false;

    return;

   }

   lot=true;

   priseMsg=getResult(getaNum());

   repaint();

  // lot=false;

  }else if(acName.equals("退出")){

   this.setVisible(false);

   this.stop();

   this.destroy();

   System.exit(0);

  }else if(acName.equals("确认设置")){

   lot=false;

   getLucky();

   repaint();

  }

 }

 

 public String getResult(int num){

  int resu=isLucky(num);

  String result="";

  switch(resu){

  case -1:

   result="继续努力!";

   break;

  case 1:

   result="恭喜你!一等奖!\n获得"+jiangPin[0].getText();

   break;

  case 2:

   result="恭喜你!二等奖!\n获得"+jiangPin[1].getText();

   break;

  case 3:

   result="恭喜你!三等奖!\n获得"+jiangPin[2].getText();

   break;

  case 4:

   result="恭喜你!幸运奖!\n获得"+jiangPin[3].getText();

   break;

  default:

   result="继续努力!";

  }

  return result+num;

 }

}

class LotButtonAction implements java.awt.event.ActionListener{

 Lottery su;

 public LotButtonAction(Lottery bun){

  this.su=bun;

 }

 @Override

 public void actionPerformed(ActionEvent e) {

  su.ButtonActionPerformed(e);

  

 }

 

}

1123419ql
2011-04-25 · TA获得超过302个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:181万
展开全部
import java.util.Random;

public class tEST {
public static void main(String[] args) {
System.out.println("Begin:");
Random random = new Random();
int i = random.nextInt(101);
if(i==1){
System.out.println("1、MP3.");
}else if(i==2||i==3){
System.out.println("2、手机.");
}else{
System.out.println("3、谢谢光临.");
}
}
}
追问
要可以添加奖项,和设置中率!
追答
做好了  可是这边只能发999个字,发不过去呀  上班时间没事做  帮你写的  测试通过...功能齐全

我开了一个问题,贴在里面

http://zhidao.baidu.com/question/258279654.html?fr=middle_ask
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梁萧_花晓霜
2011-04-25 · TA获得超过670个赞
知道小有建树答主
回答量:553
采纳率:0%
帮助的人:247万
展开全部
这种找答案的,真没意思。。。。。唉。
追问
要不是时间急,我不会来的,我做了一个,效率不怎么好,想找一个参考!
追答
可以参考一下我的方案?
弄一个List分别是奖项跟中奖率
摇奖方法:
然后从按照一个顺序减去这个中奖率,什么时候随机出来的数字小于等于0了,就是这个奖项了
调用摇奖方法前,将List生成,并且当参数传进去,随便添加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式