java抽奖集合系统代码 java抽奖代码思路-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

java抽奖集合系统代码 java抽奖代码思路

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

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

十多年的北京网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整北京建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“北京网站设计”,“北京网站推广”以来,每个客户项目都认真落实执行。

解决办法很多,

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

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

参考代码:数组法

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技术实现幸运抽奖活动系统

import java.util.Scanner;

public class LuckyNumber {

/**

* 幸运抽奖

*/

public static

void main(String[] args) {

String answer

= "y"; // 标识是否继续

String

userName = ""; // 用户名

String

password = ""; // 密码

int cardNumber

= 0; // 卡号

boolean

isRegister = false; // 标识是否注册

boolean

isLogin = false; // 标识是否登录

int max =

9999;

int min =

1000;

Scanner input

= new Scanner(System.in);

do {

System.out.println("*****欢迎进入奖客富翁系统*****");

System.out.println("\t1.注册");

System.out.println("\t2.登录");

System.out.println("\t3.抽奖");

System.out.println("***************************");

System.out.print("请选择菜单:");

int choice =

input.nextInt();

switch

(choice) {

case 1:

System.out.println("[奖客富翁系统

注册]");

System.out.println("请填写个人注册信息:");

System.out.print("用户名:");

userName =

input.next();

System.out.print("密码:");

password =

input.next();

//

获取4位随机数作为卡号

cardNumber =

(int)(Math.random()*(max-min))+min;

System.out.println("\n注册成功,请记好您的会员卡号");

System.out.println("用户名\t密码\t会员卡号");

System.out.println(userName

+ "\t" + password + "\t" + cardNumber);

isRegister =

true; // 注册成功,标志位设置为true

break;

case 2:

System.out.println("[奖客富翁系统

登录]");

if

(isRegister) { // 判断是否注册

//

3次输入机会

for (int i

= 1; i = 3; i++) {

System.out.print("请输入用户名:");

String

inputName = input.next();

System.out.print("请输入密码:");

String

inputPassword = input.next();

if

(userName.equals(inputName) password.equals(inputPassword)) {

System.out.println("\n欢迎您:"

+ userName);

isLogin =

true; // 登录成功,标志位设置为true

break;

} else if

(i 3) {

System.out.println("用户名或密码错误,还有"

+ (3 - i) + "次机会!");

} else

{

System.out.println("您3次均输入错误!");

}

}

} else

{

System.out.println("请先注册,再登录!");

}

break;

case 3:

System.out.println("[奖客富翁系统

抽奖]");

if

(!isLogin) { // 判断是否登录

System.out.println("请先登录,再抽奖!");

} else

{

//生成5个4位随机数字,并保存在数组中

int[]

luckynums = new int[5];

for(int i

= 0; i luckynums.length; i++){

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.print("继续吗?(y/n):");

answer =

input.next();

System.out.println("");

} while

("y".equals(answer));

if

("n".equals(answer)) {

System.out.println("系统退出,谢谢使用!");

}

}

}

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抽奖集合系统代码 java抽奖代码思路
链接分享:http://kswsj.cn/article/dojohhi.html

其他资讯