幸运抽奖java代码-个人编程
- 格式:docx
- 大小:20.31 KB
- 文档页数:3
Java实现⼤转盘抽奖需要⽤到注意:⼤转盘抽奖各奖项中奖概率之和为 1。
奖品列表中的概率为累加概率,需要按照添加进列表的顺序进⾏累加,添加顺序不做要求。
实际中使⽤需要考虑奖品数量限制等业务需求,该代码只是个简单的抽奖demo。
奖品数量限制的话,如果需要保证剩余奖品概率⽐例不变,需要重新构建奖品列表。
package com.wangbo.choujiang;import java.util.ArrayList;import java.util.List;import java.util.Random;/*** ⼤转盘抽奖* @author wangbo* @date 2019-05-22 14:54:47*/public class Test1 {public static void main(String[] args) {List<Award> awardList = new ArrayList<Award>();Award award1 = new Award();award1.setAwardName("⼿机");//10%award1.setProbability(0.1);awardList.add(award1);Award award2 = new Award();award2.setAwardName("⽔杯");//20%award2.setProbability(0.2+0.1);//概率加上上⼀个奖品的概率(累加)awardList.add(award2);Award award4 = new Award();award4.setAwardName("⿏标");//10%award4.setProbability(0.1+0.2+0.1);awardList.add(award4);Award award5 = new Award();award5.setAwardName("谢谢惠顾");//60%award5.setProbability(1d);//最后⼀个肯定是1awardList.add(award5);Random random = new Random();int a = 0,b = 0,c = 0,d = 0;for (int i = 0; i < 10000; i++) {Double userSelect = random.nextDouble();//0.0-1.0的double随机数(不包括1.0)String awardName = duageAward(userSelect, awardList);//信息统计if ("⼿机".equals(awardName)) {a++;}else if ("⽔杯".equals(awardName)) {b++;}else if ("⿏标".equals(awardName)) {c++;}else if ("谢谢惠顾".equals(awardName)){d++;}}System.out.println("⼿机 " + a + " 次");System.out.println("⽔杯 " + b + " 次");System.out.println("⿏标 " + c + " 次");System.out.println("谢谢惠顾 " + d + " 次");}/*** 选奖品* @param userSelect* @param awardList* @return*/public static String duageAward(Double userSelect, List<Award> awardList){for (Award award : awardList) {if(userSelect < award.getProbability()){return award.getAwardName();}}return null;}}class Award{private String awardName;private Double probability;public String getAwardName() {return awardName;}public Double getProbability() {return probability;}public void setAwardName(String awardName) {this.awardName = awardName;}public void setProbability(Double probability) {this.probability = probability;}}运⾏结果:。
java幸运抽奖系统课程设计一、课程目标知识目标:1. 学生能掌握Java基本语法和面向对象编程思想,如类与对象、方法、属性等。
2. 学生能理解并运用Java中的随机数生成方法,实现抽奖逻辑。
3. 学生能运用Java的流程控制语句(如if-else、switch-case、for循环等)编写抽奖系统的各个功能模块。
技能目标:1. 学生能够独立设计并编写一个简单的Java幸运抽奖系统,具备基本的编程实践能力。
2. 学生能够运用调试工具找出并修正程序中的错误,提高程序调试能力。
3. 学生能够通过编写文档和演示,清晰地向他人介绍自己的程序设计思路和功能实现。
情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣和热情,增强学习动力。
2. 学生能够体会到团队合作的重要性,提高沟通协作能力。
3. 学生能够在程序设计过程中,培养解决问题的耐心和毅力,形成良好的学习习惯。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握Java编程基础知识的基础上,通过设计并实现一个幸运抽奖系统,提高编程实践能力和逻辑思维能力。
课程目标具体、可衡量,有助于学生和教师在教学过程中明确预期成果,为后续的教学设计和评估提供依据。
二、教学内容1. Java基本语法复习:变量、数据类型、运算符、控制流程(if-else、switch-case、for循环等)。
2. 面向对象编程基础:类与对象、构造方法、封装、继承、多态。
3. 随机数生成:Random类、Math.random()方法,以及如何在抽奖系统中应用随机数。
4. 数组的使用:声明、初始化、遍历数组,以及如何在抽奖系统中管理奖项和参与者。
5. 界面设计与交互:使用Scanner类进行用户输入,实现用户与抽奖系统的交互。
6. 编程实践:设计并实现一个简单的幸运抽奖系统,包括以下功能模块:- 添加奖项和参与者;- 抽取幸运者;- 显示抽奖结果;- 程序异常处理与调试。
java实现⼀个简单的抽奖功能基本思路 1、确定你要的奖项,⽐如:⼀等奖、⼆等奖、三等奖、谢谢惠顾; 2、设置4个区间,0~5是⼀等奖、6~15是⼆等奖、16~40是三等奖、剩下的40~100是谢谢惠顾; 3、产⽣⼀个随机数,判断随机数在哪个区间之内,就会获得相应的奖项;很简单的⼀个⽅法,刚好正在做的微信⼩程序这边有积分抽奖这个功能,就先写⼀个玩⼀玩,下⾯贴代码,因为很简单,所以后⾯我就不多逼逼了,⼤家⾃⼰看,如果有错误,欢迎指正!!1public JsonResult luckyDraw() {2 JsonResult jsonResult=new JsonResult("200");3 jsonResult.setFlag(true);4 jsonResult.setMsg("抽奖成功");56//定义中奖率分母百分之7int probabilityCount=100;89//最⼩概率10 String min="min";1112//最⼤概率13 String max="max";14 Integer tempInt=0;1516//待中将商品数组17 Map<String,Map<String,Integer>> prizeMap=new HashMap<>();1819//获取商品列表20 List<Prize> prizeList=prizeDao.findAll();2122for(Prize prize:prizeList) {23 Map<String, Integer> oddMap=new HashMap<>();24//最⼩概率值25 oddMap.put(min, tempInt);26 tempInt=tempInt+prize.getPrizeOdd();27//最⼤概率28 oddMap.put(max, tempInt);29 prizeMap.put(prize.getId(), oddMap);//(奖品id,最⼩概率~最⼤概率)30 }3132//随机⼀个数字33int index=(int) (Math.random()* probabilityCount);34 Prize prize=null;//中奖商品容器35 Set<String> prizeIds=prizeMap.keySet();//拿到所有奖品id36for(String prizesId:prizeIds) {37 Map<String, Integer> oddMap=prizeMap.get(prizesId);//商品的概率38 Integer minNum=oddMap.get(min);39 Integer maxNum=oddMap.get(max);4041//校验index在那个商品概率中间42if(minNum <=index && maxNum > index) {43 prize=prizeDao.getOne(prizesId);44break;45 }46 }4748if(prize == null) {49 prize=null;50 }5152 jsonResult.setObj(prize.getPrizeName());53return jsonResult;54 }测试结果如下:。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>MyHtmlj.html</TITLE><META http-equiv=keywords content=keyword1,keyword2,keyword3><META http-equiv=description content="this is my page"><META http-equiv=content-type content="text/html; charset=UTF-8"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--><META content="MSHTML 6.00.2900.3492" name=GENERA TOR></HEAD><BODY><center><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><font size=20 color=red >抽奖</font><BR><TABLE border=0><TR><TD><font color=blue size="4">一等奖:</font></TD><TD id=p1></TD></TR><TR><TD><font color=blue size="4">二等奖:</font></TD><TD id=p2></TD></TR><TR><TD><font color=blue size="4">三等奖:</font></TD><TD id=p3></TD></TR></TABLE><br/><INPUT id="start" onclick=fRandom() type=button value="开始抽奖"><INPUT id="stop" onclick=sRandom() type=button value="停止抽奖" ><SCRIPT type=text/javascript>var t=new Array("刘备","张飞","关羽","张三","李四","王五");var tt;fRandom();function fRandom(){p1.innerHTML = t[Math.floor(Math.random()*6)];p2.innerHTML = t[Math.floor(Math.random()*6)]+" "+t[Math.floor(Math.random()*6)];p3.innerHTML = t[Math.floor(Math.random()*6)]+" "+t[Math.floor(Math.random()*6)]+""+t[Math.floor(Math.random()*6)];tt=setTimeout(fRandom,1000);start.disabled=true;stop.disabled=false;}function sRandom(){clearTimeout(tt);stop.disabled=true;start.disabled=false;}</SCRIPT></center></BODY></HTML>。
幸运⼤转盘抽奖抽奖算法程序实现逻辑近期碰到的⼀个需求,实现⼀个类似⼤转盘抽奖的功能,需⾃定义奖项,各奖项中奖概率,当⽇抽奖最⼤次数,抽奖成本等。
分享⼀个简单的java代码的实现的思路,有不⾜之处感谢各位指正。
初步⽅法⾸先要定义⼏个奖品,例如:iphone 中奖机率 10%100元购物卷中奖机率 30%10元购物卷中奖机率 50%总的中奖机率是 10%+30%+50%=90%剩余10%是谢谢惠顾,不中奖的设计思路这个是把所有商品按照概率分配到数组⾥⾯A[0] = iphoneA[1] = iphoneA[2] = iphone...A[10] = iphoneA[11] = 100元购物卷A[12] = 100元购物卷...然后随机⼀个0到99的数字,例如现在随机的数字是2那么A[2]就是中奖的商品A[2] = iphone//定义中奖率分母百分之int probabilityCount = 100;String[] prizesId = new String[probabilityCount];//获取商品列表List<AdPrizeInfo> prizeInfoList = prizeInfoService.getPrizeInfo();int num = 0;//循环所有商品for (AdPrizeInfo prize : prizeInfoList) {Integer probability = prize.getOdds();//循环商品概率for (int i = 0; i < probability; i++) {prizesId[num] = prize.getId();num ++;}}//随机⼀个数字int index = (int) (Math.random() * probabilityCount);//获取到随机商品IDString prizeId = prizesId[index];优化⽅法设计思路以上⽅法如果⼤概率的话,是很吃内存的,整理优化为⼀下⽅法:使⽤范围算法//定义中奖率分母百分之int probabilityCount = 100;//最⼩概率值String min = "min";//最⼤概率值String max = "max";Integer tempInt = 0;//待中奖商品数组Map<String,Map<String,Integer>> prizesMap = new HashMap<>(); //获取商品列表List<AdPrizeInfo> prizeInfoList = prizeInfoService.getPrizeInfo(); for (AdPrizeInfo prize : prizeInfoList) {Map<String,Integer> oddsMap = new HashMap<>();//最⼩概率值oddsMap.put(min,tempInt);tempInt = tempInt + prize.getOdds();//最⼤概率值oddsMap.put(max,tempInt);prizesMap.put(prize.getId(),oddsMap);}//随机⼀个数字int index = (int) (Math.random() * probabilityCount);AdPrizeInfo prizeInfo = null;Set<String> prizesIds = prizesMap.keySet();for(String prizesId : prizesIds){Map<String,Integer> oddsMap = prizesMap.get(prizesId);Integer minNum = oddsMap.get(min);Integer maxNum = oddsMap.get(max);//校验index 再哪个商品概率中间if(minNum <= index && maxNum > index){prizeInfo = prizeInfoService.selectByPrimaryKey(prizesId);break;}}//如果为空,则没中奖if(prizeInfo == null){prizeInfo = null;}。
Java实现抽奖功能主要根据概率返回每次抽到的奖品,以下是抽奖⼯具类package com.ruoyi.project.dy.utils;import java.util.ArrayList;import java.util.List;import java.util.Random;/*** @description:* 抽奖⼯具类,概率和可以不等于1* 概率为百分数去掉百分号的部分,如10%,则为10* 抽奖操作如下:* 1.输⼊抽奖概率集合,【抽奖概率集合为{10.0, 20.0, 30.0}】* 2.⽣成连续集合,【⽣成的连续集合为{(0.0, 10.0],(10.0, 30.0],(30.0, 60.0]}】* 3.⽣成随机数,【⽣成⽅法为 random.nextDouble() * maxElement】* 4.判断随机数在哪个区间内,返回该区间的index【⽣成了随机数12.001,则它属于(10.0, 30.0],返回 index = 1】 ** */public class LotteryUtil {/*** 定义⼀个连续集合* 集合中元素x满⾜:(minElement,maxElement]* 数学表达式为:minElement < x <= maxElement**/public class ContinuousList {private double minElement;private double maxElement;public ContinuousList(double minElement, double maxElement){if(minElement > maxElement){throw new IllegalArgumentException("区间不合理,minElement不能⼤于maxElement!");}this.minElement = minElement;this.maxElement = maxElement;}/*** 判断当前集合是否包含特定元素* @param element* @return*/public boolean isContainKey(double element){boolean flag = false;if(element > minElement && element <= maxElement){flag = true;}return flag;}}private List<ContinuousList> lotteryList;//概率连续集合private double maxElement;//这⾥只需要最⼤值,最⼩值默认为0.0/*** 构造抽奖集合* @param list 为奖品的概率*/public LotteryUtil(List<Double> list){lotteryList = new ArrayList<ContinuousList>();if(list.size() == 0){throw new IllegalArgumentException("抽奖集合不能为空!");}double minElement = 0d;ContinuousList continuousList = null;for(Double d : list){minElement = maxElement;maxElement = maxElement + d;continuousList = new ContinuousList(minElement, maxElement);lotteryList.add(continuousList);}}/*** 进⾏抽奖操作* 返回:奖品的概率list集合中的下标*/public int randomColunmIndex(){int index = -1;Random r = new Random();double d = r.nextDouble() * maxElement;//⽣成0-1间的随机数if(d == 0d){d = r.nextDouble() * maxElement;//防⽌⽣成0.0}int size = lotteryList.size();for(int i = 0; i < size; i++){ContinuousList cl = lotteryList.get(i);if(cl.isContainKey(d)){index = i;break;}}if(index == -1){throw new IllegalArgumentException("概率集合设置不合理!");}return index;}public double getMaxElement() {return maxElement;}public List<ContinuousList> getLotteryList() {return lotteryList;}public void setLotteryList(List<ContinuousList> lotteryList) {this.lotteryList = lotteryList;}}该⼯具类的基本思想是,将抽奖概率分布到数轴上,如现有三个抽奖概率10、20、30,将三者依次添加到概率集合中,则构造的数轴为:010范围内表⽰概率10,1030范围内表⽰概率为20,3060范围内表⽰概率为30,数轴上的长度对应着相应的概率。
java抽奖程序源码及心得代码package liangmiao;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.*;import java.util.Timer;import java.io.*;class lmChouJiang {JFrame frame = new JFrame();JLabel label_name = new JLabel("姓名");JLabel label_num = new JLabel("学号");jPanel photo = new jPanel();JButton startButton = new JButton("开始抽奖");JButton stopButton = new JButton("结束抽奖");int index; // 保持学生信息与头像的同步ArrayList<Student> array = null; // 存储读出来的学生信息Timer timer;public lmChouJiang() {// 读取学生信息array = new ArrayList<Student>();try {BufferedReader bufferReader = new BufferedReader(new ("student/stu2.txt"));StringBuffer stringBuffer = new StringBuffer();String lineContent = null;String name = "";int num = 0;while ((lineContent = bufferReader.readLine()) != null) {// 每一行区分的标识符是空格StringTokenizer st = new StringTokenizer(lineContent, " ");// 读取学号和姓名。
幸运抽奖java代码-个人编程import java.util.*;public class 实现登录功能{public static void main(String[] args) {//注册成功后,用户选择"登录"菜单,进入登录功能,输入注册时用的用户名和密码,登录成功。
//系统提示欢迎信息,如果用户名和密码输入错误,提示用户继续输入,最多有3次输入机会Scanner input =new Scanner(System.in);String jixu;String user=""; //登录用户名String password=""; //登录密码String user1=""; //登录用户名String mima=""; //登录密码boolean isLogin = false;boolean isRegister=false;do{System.out.println("*****欢迎进入奖客富翁系统*****");System.out.println("\t1.注册");System.out.println("\t2.登陆");System.out.println("\t3.抽奖");System.out.println("*************************");System.out.println("请输入菜单:");int menu =input.nextInt();for (int i = 0; i <menu; i++){System.out.print("");}switch(menu){case 1:System.out.println("[奖客富翁系统>注册]");System.out.println("请填写个人注册信息:");System.out.println("用户名:");user =input.next();System.out.println("密码:");password =input.next();System.out.println("注册成功,请记好您的会员卡号。
//import java.util.Random;//import java.util.Scanner;import java.util.*;public class guess {public static void main(String[] args){Scanner sc=new Scanner(System.in);String[] user=new String[100];int[] password=new int[100];int count=0;Boolean isMenber=false;Random r=new Random();do{System.out.println("********欢迎进入奖客富翁排行榜*********");System.out.println("1.注册");System.out.println("2.登录");System.out.println("3.幸运抽奖");System.out.println("4.退出");System.out.println("*************************************");System.out.println("请选择功能序号:");int i=sc.nextInt();if(i==1){System.out.println("请输入用户名:");user[count]=sc.next();System.out.println("请输入密码:");password[count]=sc.nextInt();System.out.println("恭喜您,注册成功!您的用户名为:"+user[count]+",密码为:"+password[count]+"请妥善保管密码!");count++;}else if(i==2){System.out.println("请输入用户名:");String uname=sc.next();System.out.println("请输入密码:");int pass=sc.nextInt();for(i=0;i<count;i++){if((user[i].equals(uname))&&password[i]==pass){System.out.println("欢迎回来!");isMenber=true; //要定义一个逻辑判断值break; //很容易忘记break}}//if里的条件很重要,如果没写,就不能判断账号是否有误,注意:下一条语句必要写入上一条语句中!if(!isMenber){System.out.println("您的用户名或密码有误,请重新输入!");}}else if(i==3){if(isMenber){System.out.println("请输入您的幸运数字0~9");int luckyNum=r.nextInt(10);//r很容易写错if(luckyNum==sc.nextInt())//=与==经常出错记住已知的卸载前面,未知自己输入的写在等号后面{System.out.println("恭喜您,中了大奖500万!");}else{System.out.println("很遗憾,幸运数字是"+luckyNum);}}else{System.out.println("您还没有登录,请先登录!");}}else if(i==4){if(isMenber){isMenber=false;}else{return;}}else{System.out.println("您的输入有误,请核证后再输入!");}System.out.println("是否继续?y/n");}while(!sc.next().equals("n"));}}。
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; publicclassLotteryextendsApplet{ privatestaticfinallongserialVersionUID=1L; intw,h;Buttonok,out,setup;String[]msg;TextField[]gaiLv;TextField[]jiangPin;intmx,ml;intmaxNum;Randomran;VectorInteger;fist;VectorInteger;sec; VectorInteger;third; VectorInteger;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;i4;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;imsg.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.n extInt(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(firuminu){minu=firu;}}if(gaiLv[1].getText().trim().length();1){ secu=Float.parseFloat(gaiLv[1].getText()); if(secu=0||secu;=1){iserr=true;return;}if(secuminu){minu=secu;}}if(gaiLv[2].getText().trim().length();1){ thiu=Float.parseFloat(gaiLv[2].getText()); if(thiu=0||thiu;=1){iserr=true;return;}if(thiuminu){minu=thiu;}if(gaiLv[3].getText().trim().length();1){ fouu=Float.parseFloat(gaiLv[3].getText()); if(fouu=0||fouu;=1){iserr=true;return;}if(fouuminu){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;}protectedVectorInteger;getLotteryVec(intmaxNum,intnum){ VectorInteger;result=newVectorInteger;();for(inti=0;inum;i++){result.add(ran.nextInt(maxNum));}returnresult;}protectedintgetaNum(){returnran.nextInt(maxNum);}publicintisLucky(intpNum){for(inti=0;ifist.size();i++){if(fist.get(i)==pNum){return1;}}for(inti=0;isec.size();i++){if(sec.get(i)==pNum){return2;}}for(inti=0;ithird.size();i++){if(third.get(i)==pNum){return3;}}for(inti=0;ilucky.size();i++){if(lucky.get(i)==pNum){return4;}}return-1;}publicvoidButtonActionPerformed(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=恭喜你!一等奖!\n获得+jiangPin[0].getText(); break;case2:result=恭喜你!二等奖!\n获得+jiangPin[1].getText(); break;case3:result=恭喜你!三等奖!\n获得+jiangPin[2].getText(); break;case4:result=恭喜你!幸运奖!\n获得+jiangPin[3].getText(); break;default:result=继续努力!;}returnresult+num;}}classLotButtonActionimplementsjava.awt.event.ActionListener {Lotterysu;publicLotButtonAction(Lotterybun){this.su=bun;}@OverridepublicvoidactionPerformed(ActionEvente){ su.ButtonActionPerformed(e);}}。
幸运抽奖java代码-个人编程
import java.util.*;
public class 实现登录功能{
public static void main(String[] args) {
//注册成功后,用户选择"登录"菜单,进入登录功能,输入注册时用的用户名和密码,登录成功。
//系统提示欢迎信息,如果用户名和密码输入错误,提示用户继续输入,最多有3次输入机会
Scanner input =new Scanner(System.in);
String jixu;
String user=""; //登录用户名
String password=""; //登录密码
String user1=""; //登录用户名
String mima=""; //登录密码
boolean isLogin = false;
boolean isRegister=false;
do{
System.out.println("*****欢迎进入奖客富翁系统*****");
System.out.println("\t1.注册");
System.out.println("\t2.登陆");
System.out.println("\t3.抽奖");
System.out.println("*************************");
System.out.println("请输入菜单:");
int menu =input.nextInt();
for (int i = 0; i <menu; i++)
{
System.out.print("");
}
switch(menu)
{
case 1:System.out.println("[奖客富翁系统>注册]");
System.out.println("请填写个人注册信息:");
System.out.println("用户名:");
user =input.next();
System.out.println("密码:");
password =input.next();
System.out.println("注册成功,请记好您的会员卡号。
");
int max =9999;
int min =1000;
int cardNumber;
cardNumber =(int)(Math.random()*(max-min))+min;
System.out.println("用户名\t密码\t会员卡号");
System.out.println(user+"\t"+password+"\t"+cardNumber); isRegister=true;
break;
case 2:System.out.println("[奖客富翁系统>登录]");
if(isRegister){ //判断是否注册
for(int i=1;i<=3;i++){ //循环三次来判断
System.out.print("请输入你的用户名:");
user1=input.next(); //登录用户名
System.out.println("请输入你的密码:");
mima=input.next();//登录密码
if (user.equals(user1) && password.equals(mima)) {
System.out.println("\n欢迎您:" + user1);
isRegister=true; //如果为真
break; //停止执行
}else if(i<3){
System.out.println("用户名和密码输入有误,还有"+(3-i)+"次机会");
}else{
System.out.println("你三次输入错误!");
}
}
}
break;
case 3:
System.out.println("[奖客富翁系统>抽奖]");
if (isLogin)
{ // 判断是否登录
System.out.println("请先登录,再抽奖!");
jixu = input.next();
} else
{
//生成5个4位随机数字,并保存在数组中
int[] luckynums = new int[5];
for(int i = 0; i < luckynums.length; i++)
{
max =9999;
min =1000;
luckynums[i] = (int)(Math.random()*(max-min))+min;
}
System.out.print("请输入您的卡号:");
int yourcard = input.nextInt();
int i;
System.out.print("\n本日的幸运数字为:");
for (i = 0; i < luckynums.length; i++)
{
System.out.print(luckynums[i] + " ");
}
for (i = 0; i < luckynums.length; i++)
{
if (luckynums[i] == yourcard) {
System.out.println("\n恭喜!您是本日的幸运会员!");
break;
}
}
if (i == luckynums.length)
{
System.out.println("\n抱歉!您不是本日的幸运会员!");
}
}
break;
default:
System.out.println("[您的输入有误!]");
break;
}
System.out.println("继续吗?(Y/N):");
jixu=input.next();
}while(! jixu.equalsIgnoreCase("N"));
System.out.println("系统退出,谢谢你的使用!");
}
}。