java开发中奖代码 实现幸运抽奖Java代码

Java代码实现抽奖:从班级的学号中抽出一个一等奖,两个二等奖,三个三等奖

抽取问题, 重点是 同一个学号不能重复被抽取.

大同网站建设公司成都创新互联,大同网站设计制作,有大型网站制作公司丰富经验。已为大同数千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的大同做网站的公司定做!

解决办法很多,

比如数组可以使用下标来标记,号码是否被使用,使用了就继续下一次抽取

也可以使用集合来抽取,把集合顺序打乱,然后随便抽几个就可以了

参考代码:数组法

import java.util.Random;

public class Test {

public static void main(String[] args) {

int stuNums=30;

int[] nums=new int[stuNums];//存储学号的数组

boolean[] flags=new boolean[stuNums];//标记,用于标记对应下标的学号是否已经被抽取过了

for (int i = 0; i  stuNums; i++) {

nums[i]=i+1;//给学号赋值

}

Random r=new Random();

while(true){

int index = r.nextInt(stuNums);

if(!flags[index]){

System.out.println("A等:"+nums[index]);

flags[index]=true; //标记已经被使用过了

break;

}

}

for (int i = 0; i  2; i++) {

int index = r.nextInt(stuNums);

if(!flags[index]){

System.out.println("B等:"+nums[index]);

flags[index]=true;

}else{

i--;//如果已经被抽取过了 ,那么i建议,再次循环

}

}

for (int i = 0; i  3; i++) {

int index = r.nextInt(stuNums);

if(!flags[index]){

System.out.println("c等:"+nums[index]);

flags[index]=true;

}else{

i--;

}

}

}

}

集合法

import java.util.ArrayList;

import java.util.Collections;

public class Test2 {

public static void main(String[] args) {

int stuNums=20;

ArrayListInteger list=new ArrayListInteger();

for (int i = 0; i  stuNums; i++) {

list.add(i+1);

}

System.out.println("有序"+list);

Collections.shuffle(list);//打乱顺序

System.out.println("乱序"+list);

System.out.println("A等"+list.get(0));

System.out.println("B等"+list.get(1));

System.out.println("B等"+list.get(2));

System.out.println("C等"+list.get(3));

System.out.println("C等"+list.get(4));

System.out.println("C等"+list.get(5));

}

}

抽奖程序 用JAVA做 求代码

这里是提问和回答用的。写的时候遇到什么困难可以问的。用随机数,抽中一个就不要再次抽中同样的号码,就可以了。

这个幸运大抽奖的java项目代码,怎么编写呢?

public class Test {

public static void main(String[] args) {

int chance = 100;// 中奖概率,百分之1就是100,千分之一就是1000

double b = Math.random() * chance;

int i = (int) b;

if (i 1) {

System.out.println("中奖");

}

}

}

java一个彩票算法的问题

import java.util.Scanner;

public class Test {

public int getAgo(){

Scanner sc = new Scanner(System.in);

System.out.println("请输入已买过的注数!");

int a = sc.nextInt();

return a ;

}

public int number(int a){

int num = 0;

while((a+num)*2=5*num){

num++;

}

return num;

}

public static void main(String[] args){

Test t = new Test();

int a = t.getAgo();

System.out.println("下次需要买"+t.number(a)+"注不亏");

}

}

java语言实现一个摇号系统,但是可以内部设定中奖名单这个怎么实现?

1、简单控制台程序如下,如需界面需要自己加个。

package zhidao;

import java.util.HashSet;

import java.util.Random;

import java.util.Scanner;

import java.util.Set;

/**

* @author bufei

* @datetime 2020年8月31日15:54:11

*/

public class YaoHao {

public static void main(String[] args) {

String xian = "= = = = = = = = =";

// 起点        终点     奖个数          指定的号码个数

int start = 0, end = 0, prizeNum = 0, defaNum = 0;

System.out.println(xian);

System.out.println("欢迎使用xxx 抽奖系统!");

System.out.println(xian);

Scanner scanner = new Scanner(System.in);

System.out.println("请输入号码范围例如 1 10:");

start = scanner.nextInt();

end = scanner.nextInt();

System.out.println("请输入奖项个数:");

prizeNum = scanner.nextInt();

System.out.println("请输入指定中奖号码个数,不指定请输入0:");

defaNum = scanner.nextInt();

int[] defa = new int[defaNum];

if (defaNum != 0) {

System.out.println("请输入指定的中奖号码,空格隔开:");

for (int i = 0; i defaNum; i++) {

defa[i] = scanner.nextInt();

}

}

System.out.println(xian);

System.out.println("本次抽奖中奖号码为:");

for (int num : randomDraw(start, end, prizeNum, defa)) {

System.out.print(num+" ");

}

}

/**

* @param start    抽奖范围起点

* @param end      抽奖号码范围终点

* @param prizeNum 中奖号码个数

* @param defa     指定中奖号码

* @return

*/

public static SetInteger randomDraw(int start, int end, int prizeNum, int[] defa) {

SetInteger set = new HashSet();

// 未指定中奖号码

if (defa.length == 0) {

//随机抽 prizeNum 个奖

while (set.size() prizeNum) {

set.add(new Random().nextInt(end - start + 1) + start);

}

return set;

} else {

//指定了中奖号码

//把指定的号码加入进去

for (int num : defa) {

set.add(num);

}

//如果没有全部指定 则继续抽剩余的奖项

while (set.size() prizeNum - defa.length) {

set.add(new Random().nextInt(end - start + 1) + start);

}

return set;

}

}

}

2、运行效果如图

指定了中奖号码

未指定中奖号码

未指定中奖号码

java程序编写双色球代码

截图:

选取红色球号码方法:

/**

 * 随机选取红色球

 * 

 * 获取1~33其中一个数

 * 

 * 0 = Math.random  1

 */

private int randomOneRedValue() {

int randomValue = (int) (Math.random() * 33 + 1);

return randomValue;

}

选取蓝色球号码方法:

/**

 * 随机选取蓝色球号码

 * 

 * 获取1~16的数值

 * 

 * @return

 */

private int randomOneBlueValue() {

int randomValue = (int) (Math.random() * 15 + 1);

return randomValue;

}

测试:

public class Test1 {

public static void main(String[] arg) {

Test1 localTest1 = new Test1();

// 双色球 :红色球号码 + 蓝色球号码

// 六个红色球和一个蓝色球号码

// 红色球号码从1~33中选择

// 蓝色球号码从1~16中选择

// 一等奖:七个号码相符(六个红色号码和一个蓝色球号码)(红色球号码顺序不限,下同)

// 二等奖:六个红色球号码相符;

// 三等奖:五个红色球号码,或者四个红色球号码和一个蓝色球号码相符;

// 四等奖:五个红色球号码,或者三个红色球号码和一个蓝色球号码相符;

// 五等奖:四个红色球号码,或者三个红色球号码和一个蓝色球号码相符;

// 六等奖:一个蓝色球号码相符(有误红色球号码相符均可);

// 例如:红色球号码 01 06 13 19 24 28 蓝色球号码 16

System.out.println("开始出奖");

// 定义双色球数组,大小为7

String[] values = new String[7];

for (int i = 0; i  7; i++) {

if (i == 6) {

int blueValue = localTest1.randomOneBlueValue();

if (blueValue  10) {

values[i] = "0" + blueValue;

} else {

values[i] = String.valueOf(blueValue);

}

} else {

int redValue = localTest1.randomOneRedValue();

if (redValue  10) {

values[i] = "0" + redValue;

} else {

values[i] = String.valueOf(redValue);

}

}

}

System.out.println();

System.out.println("出奖结束");

System.out.println();

System.out.print("双色球开奖号码:");

// 打印双色球号码

for (String value : values) {

System.out.print(" " + value);

}

}

}


网站名称:java开发中奖代码 实现幸运抽奖Java代码
本文URL:http://scyanting.com/article/hgopjc.html