幸运抽奖java代码-个人编程
Java实现大转盘抽奖
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幸运抽奖系统课程设计
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实现一个简单的抽奖功能
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 }测试结果如下:。
java script html抽奖原代码
<!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实现抽奖功能
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抽奖程序源码及心得
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代码-个人编程
幸运抽奖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("注册成功,请记好您的会员卡号。
java课程设计幸运抽奖
//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 制作抽奖小程序
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实现用户抽奖功能(附完整代码)
JAVA实现⽤户抽奖功能(附完整代码)⽬录需求分析实现结果注意事项完整代码总结需求分析1)实现三个基本功能:登录、注册、抽奖。
2)登录:⽤户输⼊账号密码进⾏登录,输⼊账号后会匹配已注册的⽤户,若输⼊⽤户不存在则退出,密码有三次输⼊机会,登录成功后主界⾯会显⽰已登录⽤户的账号信息。
3)注册:⽤户⾸先输⼊账号名称,系统查询此名称是否存在,如存在则请求⽤户换⼀个名称,否则进⼊密码输⼊,密码要求6位数字字符串,注册成功后,系统随机分配⼀个与已有⽤户不重复的四位数字id编号。
4)抽奖:功能实现前提:需有⽤户处于登录状态。
该前提满⾜时,系统从已存在⽤户中随机抽取5位不同的⽤户标记为幸运⽤户,并判断正在登录状态的⽤户是否被抽中。
5)数据存储:采⽤⽂件系统,导⼊java.io.*包,6)数据结构:登录⽤户信息保存于ArrayList,幸运⽤户编号和id保存于长度为5的HasMap<String id,String name> 其中id为Key,name为Value。
实现结果1)登录:2)注册:3)抽奖:注意事项运⾏代码之前务必在user.txt中创建五个以上的⽤户。
完整代码import java.util.Scanner;import java.util.ArrayList;import java.io.*;import java.util.StringTokenizer;public class Dos {static boolean logined=false;public static void main(String[] args) {User user=new User();int k=0;while( (k=Main(user))>=1&&k<5){switch (k){case 1:System.out.print((k=user.login(user))==-1?"此⽤户不存在!\n":"");System.out.print((k==-2)?"===<<警告>>⽤户:["+erName+"]已处于登录状态,⽆需重复登录!\n":"");break;case 2:user.regist();break;case 3:user.getLuckly();break;default:System.exit(0);}}}static int Main(User user){System.out.println("**********************************************");System.out.println("********************主菜单********************");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("==============================================");System.out.println(logined ? "-[已登录]- (1)⽤户名:"+erName+" (2)⽤户账号:"+erId:"-[未登录]- (1)⽤户名:NaN (2)⽤户账号:NaN"); System.out.println("==============================================");System.out.print("###===>请输⼊您的选择:");return (new Scanner(System.in)).nextInt();}}public class User{String userName,userId,userPwd;public User(){}public User(String userName, String userId, String userPwd) {erName = userName;erId = userId;erPwd = userPwd;}public String getUserName() {return userName;}public void setUserName(String userName) {if(!userName.equals("")) {ArrayList<String> temp;erId=(temp=(new operatorFile(erName = userName)).getUserMess(0)).get(1);erPwd=temp.get(2);}}public String getUserId() {return userId;}public String setUserId() {String userId="";while((new operatorFile(userId=String.valueOf ((int) (Math.random()*9000+1000)))).getUserMess(1).size()>0){ }return (erId = userId);}public String getUserPwd() {return userPwd;}public int login(User u) {int inputTimes=3;Scanner scanner=new Scanner(System.in);operatorFile getUserMessage=new operatorFile();System.out.print("======>请输⼊您的⽤户名:");String uName="";getUserMessage.setUser(uName=scanner.nextLine());ArrayList<String> userMess=getUserMessage.getUserMess(0);if(userMess.size()<1) return -1;//返回-1表⽰⽤户不存在if (uName.equals(userName)) return -2;//返回-2表⽰⽤户重复登录System.out.print("======>请输⼊您的登录密码:");while(!scanner.next().equals(userMess.get(2))&&inputTimes>0)System.out.print("===>密码输⼊错误!"+((--inputTimes)>0?"您还剩"+inputTimes+"次机会!":"三次机会已经⽤完了!输⼊任意退出"));System.out.println(inputTimes>0?"==>登录成功!您本次输⼊密码"+(4-inputTimes)+"次!":"==>登录失败!");setUserName(inputTimes>0?uName:"");Dos.logined=inputTimes>0?true:false;return 0;}public void regist() {User u=new User();Scanner scanner=new Scanner(System.in);System.out.print("===>请输⼊新的⽤户名:");String name;while(new operatorFile(name=scanner.nextLine()).getUserMess(0).size() > 0)System.out.print("已存在此⽤户,注册失败!\n===>请重新输⼊新的⽤户名:");System.out.print("======>请设置您的(六位数字)登录密码:");String regex = "[0-9]{6}", pwd;while (!(pwd = scanner.nextLine()).matches(regex))System.out.print("==>密码格式不正确,请重新设置您的(六位数字)登录密码:");System.out.println("已为⽤户: "+(erName=name)+" ⽣成唯⼀ID: "+(erPwd=pwd));(new operatorFile()).writeUserMess(u);System.out.println("=======>注册成功!");}public static HashMap<String,String> lucklyUsers=new HashMap<>();public void getLuckly() {if (!Dos.logined) {System.out.println("===>警告:没有⽤户登录,⽆法抽奖!");return ;}while(lucklyUsers.size()<5){String id="";ArrayList<String> u;while((u=(new operatorFile(id=String.valueOf ((int) (Math.random()*9000+1000)))).getUserMess(1)).size()<1){ }lucklyUsers.put(u.get(1),u.get(0));}Iterator iterator=lucklyUsers.entrySet().iterator();int no=1;boolean LUCKLY=false;System.out.println("====>恭喜以下⽤户获得幸运称号:");while(iterator.hasNext()){Map.Entry entry=(Map.Entry) iterator.next();System.out.println("幸运⽤户["+(no++)+"] ⽤户名:"+entry.getValue()+" ⽤户编号:"+entry.getKey());LUCKLY = entry.getKey().equals(erId) ? true : LUCKLY;}System.out.println(LUCKLY?"=========>恭喜您在本次抽奖中获得幸运称号!":"=========>很遗憾,今⽇您未获奖!-_-!"); }public String toString(){return erName+" "+erId+" "+erPwd;}}public class operatorFile {String user;public void setUser(String user) {er = user;}public operatorFile(String user) {er = user;}public operatorFile() { }public ArrayList<String> getUserMess(int index){ArrayList<String> temp=new ArrayList<String>();File file=new File("user.txt");String line="";try{BufferedReader br=new BufferedReader(new FileReader(file));while ((line = br.readLine())!=null && line!="\n"){temp.clear();StringTokenizer sk=new StringTokenizer(line);while (sk.hasMoreTokens()) {temp.add(sk.nextToken());}if (temp.get(index).equals(er)) break;}}catch(IOException e){}return (line==null)?new ArrayList<String>():temp;}public void writeUserMess(User u){try{BufferedWriter bw=new BufferedWriter(new FileWriter(new File("user.txt"),true));bw.write(u.toString()+"\n");bw.close();}catch (IOException e){ }}}总结到此这篇关于JAVA实现⽤户抽奖功能(附完整代码)的⽂章就介绍到这了,更多相关JAVA实现⽤户抽奖内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
JAVA用户抽奖系统设计(幸运大转盘作业)
JAVA⽤户抽奖系统设计(幸运⼤转盘作业)商家为了吸引⽤户,设100个奖品,⼀等奖3名,⼆等奖6名,三等奖10名,四等奖50名,其他为谢谢参与.编写程序产⽣奖项. package luckPan;public class LuckPan {public static void main(String[] args) {int a;int first,second,third,fouth;first=second=third=fouth=0;java.util.Random random=new java.util.Random();for(int i=0;i<100;i++){a=random.nextInt(5);if(first<=3&&a==0){first++;System.out.println("获得⼀等奖");}else if(second<=6&&a==1){second--;System.out.println("获得⼆等奖");}else if(third<=10&&a==2){third--;System.out.println("获得三等奖");}else if(fouth<=50&&a==3){fouth--;System.out.println("获得四等奖");}else{System.out.println("谢谢参与!");}}}}(2)为了精细控制抽奖过程,要求如下:* 1. 每周最多产⽣⼀个⼀等奖* 2. 每天⾄少产⽣10个四等奖* 3. ⽤户摇奖前,显⽰当前最近获奖的5个四等奖以上的奖项。
请在原有程序的基础上实现上述要求。
package luckPan;import java.util.Scanner;public class LuckPan2 {public static void main(String[] args) {int a;int first,second,third,fouth;int days;java.util.Random random=new java.util.Random();Scanner week=new Scanner(System.in);int weeks=1;while (weeks==1) {days=7;int show=5;first=second=third=fouth=0;while (days>0){fouth=10;//每天⾄少10个for(int i=0;i<100;i++){a=random.nextInt(5);if(show>0&&first<1&&a==0){//每周first++;System.out.println("获得⼀等奖");show--;}else if(show>0&&second<=6&&a==1){//每周second++;System.out.println("获得⼆等奖");show--;}else if(show>0&&third<=10&&a==2){//每周third++;System.out.println("获得三等奖");show--;}else if(show>0&&fouth<=10&&a==3){fouth--;System.out.println("获得四等奖");show--;}else{//System.out.println("谢谢参与!");}}days--;}System.out.println("本周已经结束!\n继续抽奖请输⼊1,退出输⼊0\n"); weeks=week.nextInt();}}}。
JAVA买彩票中奖的代码
}
else if(gett<10)
{
System.out.println("\n\n!!!!!!!!!!!!您输入的金额数目不能小于10元。请检查正确后再重新输入!!!!!!!!!!!!!\n\n");
c=1;
}
else
{show_cuowu();
c=1;}
}
catch(Exception e)
do{
c=0;
System.out.println("\n\n\t\t##########当前是取钱界面##########\n");
win_number.ppshow();
System.out.println("取钱数目必须是10的倍数并且取钱数目不能超过您当前的余额,取钱数目不能小于10元。\n您当前的余额是:"+yu_e+"元。\n\t请输入取款金额:(输入后请按回车键)");
{
System.out.println("\n您当前的余额是:"+yu_e+"元。\n");
}
public void byebye(int moneyyy_y)throws IOException//再见方法
{
if(this.yu_e>0||moneyyy_y>0)
{
yu_e+=moneyyy_y;
买彩票能中奖吗买彩票怎么中奖梦见买彩票中奖了梦见买彩票中奖买彩票中奖几率如何买彩票中奖率高怎样买彩票能中奖
import java.io.*;
import java.util.Random;
import java.util.regex.Matcher;
Java抽奖算法第二例
Java抽奖算法第⼆例本⽂实例为⼤家分享了java抽奖算法,供⼤家参考,具体内容如下1. 算法分析根据概率将奖品划分区间,每个区间代表⼀个奖品,然后抽取随机数,反查落在那个区间上,即为所抽取的奖品。
2.代码核⼼算法public class Arithmetic {// 放⼤倍数private static final int mulriple = 1000000;public int pay(List<Prize> prizes) {int lastScope = 0;// 洗牌,打乱奖品次序Collections.shuffle(prizes);Map<Integer, int[]> prizeScopes = new HashMap<Integer, int[]>();Map<Integer, Integer> prizeQuantity = new HashMap<Integer, Integer>();for (Prize prize : prizes) {int prizeId = prize.getPrizeId();// 划分区间int currentScope = lastScope + prize.getProbability().multiply(new BigDecimal(mulriple)).intValue();prizeScopes.put(prizeId, new int[] { lastScope + 1, currentScope });prizeQuantity.put(prizeId, prize.getQuantity());lastScope = currentScope;}// 获取1-1000000之间的⼀个随机数int luckyNumber = new Random().nextInt(mulriple);int luckyPrizeId = 0;// 查找随机数所在的区间if ((null != prizeScopes) && !prizeScopes.isEmpty()) {Set<Entry<Integer, int[]>> entrySets = prizeScopes.entrySet();for (Map.Entry<Integer, int[]> m : entrySets) {int key = m.getKey();if (luckyNumber >= m.getValue()[0] && luckyNumber <= m.getValue()[1] && prizeQuantity.get(key) > 0) {luckyPrizeId = key;break;}}}if (luckyPrizeId > 0) {// 奖品库存减⼀}return luckyPrizeId;}}Prize beanpublic class Prize {/*** 奖品唯⼀标⽰*/private Integer prizeId;/*** 中奖概率*/private BigDecimal probability;/*** 奖品数量*/private Integer quantity;public Integer getPrizeId() {return prizeId;}public void setPrizeId(Integer prizeId) {this.prizeId = prizeId;}public BigDecimal getProbability() {return probability;}public void setProbability(BigDecimal probability) { this.probability = probability;}public Integer getQuantity() {return quantity;}public void setQuantity(Integer quantity) {this.quantity = quantity;}}3.测试prize1概率: 5%prize2概率: 10%prize3概率: 15%prize4概率: 20%prize5概率: 50%public class Test {public static void main(String[] args) {List<Prize> prizes = new ArrayList<Prize>();Prize prize1 = new Prize();prize1.setPrizeId(1);prize1.setProbability(new BigDecimal(0.05));prize1.setQuantity(1);prizes.add(prize1);Prize prize2 = new Prize();prize2.setPrizeId(2);prize2.setProbability(new BigDecimal(0.10));prize2.setQuantity(10);prizes.add(prize2);Prize prize3 = new Prize();prize3.setPrizeId(3);prize3.setProbability(new BigDecimal(0.15));prize3.setQuantity(20);prizes.add(prize3);Prize prize4 = new Prize();prize4.setPrizeId(4);prize4.setProbability(new BigDecimal(0.20));prize4.setQuantity(50);prizes.add(prize4);Prize prize5 = new Prize();prize5.setPrizeId(5);prize5.setProbability(new BigDecimal(0.50));prize5.setQuantity(200);prizes.add(prize5);int prize1GetTimes = 0;int prize2GetTimes = 0;int prize3GetTimes = 0;int prize4GetTimes = 0;int prize5GetTimes = 0;Arithmetic arithmetic = new Arithmetic();int times = 1000;for (int i = 0; i < times; i++) {int prizeId = arithmetic.pay(prizes);switch (prizeId) {case 1:prize1GetTimes++;break;case 2:prize2GetTimes++;break;case 3:prize3GetTimes++;break;case 4:prize4GetTimes++;break;case 5:prize5GetTimes++;break;}}System.out.println("抽奖次数" + times);System.out.println("prize1中奖次数" + prize1GetTimes);System.out.println("prize2中奖次数" + prize2GetTimes);System.out.println("prize3中奖次数" + prize3GetTimes);System.out.println("prize4中奖次数" + prize4GetTimes);System.out.println("prize5中奖次数" + prize5GetTimes);}}结果:通过1000次抽取,我们看出算法精度还是很⾼的。
摇奖器源代码
package com.xinwei.p1.domain;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.HashSet;import java.util.Random;import java.util.Set;import .apache.xml.internal.utils.IntV ector;public class Y aoJiangQi {private Set<Integer> dataSet;public YaoJiangQi(){this.dataSet=new HashSet<Integer>();}public void fillDataSet() throws IOException{BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入参加摇奖的号码(结束请输入0)");boolean flag=true;while(flag){String input=br.readLine();if(input.equals("0")){flag=false;}else{int num=Integer.parseInt(input);this.dataSet.add(num);}}}public void printDataSet(){System.out.println("待摇奖号码如下:");for(Integer num:this.dataSet){System.out.println(num+"\t");}System.out.println();}public Integer getRandomNumber(){Integer num=0;Random rdm=new Random();// rdm.nextInt();// System.out.println(rdm.nextInt(10));// System.out.println(rdm.nextInt(10));// System.out.println(rdm.nextInt(10));// System.out.println(rdm.nextInt(10));// System.out.println(rdm.nextInt(10));Object[] arr=(Integer[]) this.dataSet.toArray();int i=rdm.nextInt();num=(Integer) arr[i];return num;}}。
JAVA抽奖系统源代码
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
//ClassicButtonShaper());
//SubstanceLookAndFeel.setCurrentWatermark(new
//SubstanceBubblesWatermark());
//SubstanceLookAndFeel.setCurrentBorderPainter(new
jLabel5 = new javax.swing.JLabel();
jScrollPane4 = new javax.swing.JScrollPane();
jTextArea4 = new javax.swing.JTextArea();
jButton1 = new javax.swing.JButton();
jTextArea2 = new javax.swing.JTextArea();
jScrollPane3 = new javax.swing.JScrollPane();
jTextArea3 = new javax.swing.JTextArea();
jLabel4 = new javax.swing.JLabel();
CommUtil.map.put(key, name);
key++;
}
this.jTextArea4.setText(bufname);
Java简易抽奖系统小项目
Java简易抽奖系统小项目本文实例为大家分享了Java简易抽奖系统的具体代码,供大家参考,具体内容如下需求:实现一个抽奖系统1 注册2 登录3 抽奖必须先注册再登陆再抽奖随机产生4个随机数作为幸运卡号用户注册后登录的时候用户名密码输入判断只有三次机会需要做到还有2次还有1次三次输入错误不能再登录产生10个随机数将用户注册得到的随机数作为判断代码如下:import java.util.*;public class Homeworktest {public static void main(String[] args) {Scanner cin=new Scanner(System.in);Random rand=new Random();int num,i,Key,j,before=0,count,len=0,L=0;int[] data=new int[10];String[][] book=new String[10][2]; //存储用户注册信息String ID,Temp;System.out.println("**********");System.out.println("0 退出\n1 注册\n2 登陆\n3 抽奖");System.out.println("**********");while(true){System.out.println("请输入Key:");Key=cin.nextInt();cin.nextLine();if(Key == 0){System.out.println("抽奖系统已退出,欢迎您再次使用!");break;}else if(Key == 1){before=0;System.out.println("请输入您要建立的账号:");ID=cin.nextLine();i=len++;book[i][0]=ID;while(true){System.out.println("请设置您的密码:");ID=cin.nextLine();book[i][1]=ID;System.out.println("请确认您的密码:");for(j=3;j>0;j--){ID=cin.nextLine();if(book[i][1].equals(ID)){System.out.println("恭喜您注册成功!");System.out.println("您的账号是:"+book[i][0]+"\n您的密码是:" +book[i][1]+"\n请妥善保管!");break;}else if(j>1)System.out.println("对不起,两次输入密码不符,您还有"+(j-1)+"次机会!请重新输入:");elseSystem.out.println("该密码已重置!");}if(j!=0) break;}}else if(Key == 2){before=0;for(i=3;i>0;i--){System.out.println("请输入您的账号:");ID=cin.nextLine();System.out.println("请输入您的密码:");Temp=cin.nextLine();for (j = 0; j < len; j++) {if(ID.equals(book[j][0]) && Temp.equals(book[j][1]))break;}if(j==book.length){if(i>1)System.out.println("对不起,登陆失败!你还有"+(i-1)+"次机会."); else{num=0;for (int k = 0; k < book.length-1; k++) {if(num == 0 && ID.equals(book[k][0])) num=1;if(num == 1){book[k][0]=book[k+1][0];book[k][1]=book[k+1][1];}}System.out.println("账号:"+ID+"已被冻结,不能继续使用!");}}else{System.out.println("恭喜您登陆成功!");before=1;L=j;break;}}}else if(Key == 3){if(before == 1){for(i=0;i<data.length;i++)data[i]=rand.nextInt(9)+1;System.out.println("您的号码分别是:");for(i=count=0;i<4;i++){num=rand.nextInt(9)+1;System.out.print(num+" ");for(j=0;j<data.length;j++)if(data[j] == num){count++;break; //可能有多个相同}}System.out.println("");System.out.println(book[L][0]+":");switch(count){case 4:System.out.println("恭喜您中特等奖!");break;case 3:System.out.println("恭喜您中一等奖!");break;case 2:System.out.println("恭喜您中二等奖!");break;case 1:System.out.println("恭喜您中三等奖!");break;default:System.out.println("很遗憾,您未中奖!");break;}}elseSystem.out.println("对不起,您尚未登陆账号,不能参与抽奖活动!"); }}}}。
简单实现java抽奖系统
简单实现java抽奖系统这篇文章主要教大家如何简单实现java抽奖系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下:---------------------------------------------------------------------------------------------------------------------------上源码:用户信息类:/** 用户信息类* 1.账号* 2.密码* 3.卡号* 4.是否登录*/public class User {public static String userName = "";public static String passWord = "";public static int cardNumber = 0;// 是否登录public static boolean isLogin = false;// 是否注册public static boolean isRegister = false;}注册类:/** 注册类* 1.输入账号密码* 2.产生随机号[1000,2000]* 3.保存用户注册信息* 4.提示注册成功*/public class Register {// 注册方法public static void userRegister() {System.out.println("请输入用户名:");Scanner scanner = new Scanner(System.in);// 接收用户信息String userName = scanner.nextLine();System.out.println("请输入密码:");String passWord = scanner.nextLine();int num = (int)(Math.random() * 1001 + 1000);// 保存到用户类中erName = userName;User.passWord = passWord;User.cardNumber = num;// 打印注册信息System.out.println();System.out.println("注册成功,请记好你的会员卡号"); System.out.println("用户名:" + userName); System.out.println("密码:" + passWord);System.out.println("卡号:" + num);// 保存注册状态User.isRegister = true;}}登录类:/** 登录类* 1.输入登录的账号和密码* 2.和用户信息进行匹配* 有三次重新输入的机会* 3.登录成功*/public class Login {// 保存登录失败的次数static int num = 0;// 登录方法// 静态方法里面需要使用静态的成员变量public static boolean userLogin() {// 先判断是否注册if (User.isRegister == false) {System.out.println("请先注册");erRegister();// 登录失败return false;}// 输入信息System.out.println("用户名:");Scanner scanner = new Scanner(System.in);// 接收信息String userName = scanner.nextLine();System.out.println("密码:");String passWord = scanner.nextLine();// 判断匹配登录信息if(userName.equals(erName) && passWord.equals(User.passWord)) {// 登录成功System.out.println("欢迎您" + userName);// 返回登录结果return true;} else {// 登录失败num++;// 提示用户还剩几次机会System.out.println("用户名或密码有误,请重新输入!" + "还剩" + (3 - num) + "次"); // 判断登录错了几次if (num != 3) {// 继续登录userLogin();} else {// 登录失败System.out.println("对不起三次机会用完,请明日再来!");// 重置记录登录次数的变量num = 0;}// 如果代码走到这里一定是登录失败return false;}}}抽奖类:/** 抽奖类* 1.判断是否登录* 2.输入抽奖卡号* 有三次输入卡号的机会* 3.判断是否中奖*/public class CJ {// 保存输入卡号的次数static int cardNumber = 0;// 抽奖方法public static void userCJ() {// 判断登录状态if (!User.isLogin) {// 没登录直接结束方法System.out.println("请先登录");return;}// 判断是否输入正确if(!isCarNum()) {System.out.println("你输入的不正确"); return;}// 匹配账号// 保存是否中奖的变量boolean isCJ = false;// 随机五个数并且拼接成字符串打印逗号隔开String string = "本日幸运数字:";for (int i = 0; i < 5; i++) {// 随机int num = (int)(Math.random() * 1001 + 1000); // 拼接if (i < 4) {string = string + num + ",";} else {string = string + num;}// 查看是否中奖if (num == User.cardNumber) {isCJ = true;}}// 打印中奖号System.out.println(string);// 判断是否中奖if(isCJ) {System.out.println("中奖");} else {System.out.println("没中奖");}}// 输入卡号方法public static boolean isCarNum() {System.out.println("请输入卡号:");Scanner scanner = new Scanner(System.in);// 接收String carNum = scanner.nextLine();// 转intint num = Integer.parseInt(carNum);// 进行比对if (User.cardNumber == num) {// 匹配正确System.out.println("卡号输入正确");return true;} else {//匹配不正确cardNumber++;System.out.println("输入还剩" + (3 - cardNumber) + "次"); if (cardNumber != 3) {isCarNum();} else {System.out.println("3次机会用完");// 输入卡号次数重置cardNumber = 0;}return false;}}}抽奖抽奖类(组装抽奖逻辑):/** 抽奖开始类(组装抽奖逻辑)**/public class CJStart {// 抽奖开始public void cjStart() {// 是否继续主菜单String isGoOn = "";// 循环主菜单do {System.out.println("*****欢迎进入抽奖系统*****"); System.out.println(" 1.注册");System.out.println(" 2.登录");System.out.println(" 3.抽奖");System.out.println("************************"); Scanner scanner = new Scanner(System.in);// 接收菜单选项String menuNum = scanner.nextLine();// 判断选项chooseMenuNum(menuNum);// 接收是否继续System.out.println("是否继续选择? y/n"); isGoOn = scanner.nextLine();} while (isGoOn.equals("y"));}// 判断菜单选项public void chooseMenuNum(String menuNum) { switch (menuNum) {case "1":System.out.println("[蓝欧抽奖系统> 注册]"); System.out.println("请填写个人注册信息:");// 调用注册方法erRegister();break;case "2":System.out.println("[蓝欧抽奖系统> 登录]");// 调用登录方法保存登录状态boolean userLogin = erLogin();User.isLogin = userLogin;break;case "3":System.out.println("[蓝欧抽奖系统> 抽奖]");// 调用抽奖方法erCJ();break;default:System.out.println("输入错误,请重新选择"); break;}}}测试类:/** 测试类*/public class CJTest {public static void main(String[] args) {CJStart cjStart = new CJStart();cjStart.cjStart();}}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我哦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
幸运抽奖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("系统退出,谢谢你的使用!");
}
}。