资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java抽号程序代码,java抽奖程序代码

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

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

成都创新互联专业为企业提供大连网站建设、大连做网站、大连网站设计、大连网站制作等企业网站建设、网页设计与制作、大连企业网站模板建站服务,10多年大连做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

解决办法很多,

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

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

参考代码:数组法

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 f {

public static void main(String args[]){

Scanner scan = new Scanner(System.in);

System.out.print("请输入抽奖号码上限:");

int max = scan.nextInt();

System.out.print("请输入抽奖次数:");

int n = scan.nextInt();

System.out.print("中奖号码依次为:");

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

System.out.print((int)(Math.random()*max+1)+" ");

}

}

}

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随机抽号程序

现在的可以了,你试下

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class RandomTest extends JFrame {

private static final long serialVersionUID = 6764423443555437772L;

boolean isStop = false;

private JLabel jl = new JLabel();

private JTextField jt = new JTextField();

private JButton start = new JButton("start");

private JButton stop = new JButton("stop");

private JPanel jp = new JPanel();

public RandomTest() {

this.jl.setHorizontalAlignment(SwingConstants.CENTER);

this.jl.setText("60"); // 设置随机数范围1到60

this.jl.setForeground(Color.red); // 设置字体颜色

this.jl.setFont(new Font("Dialog", 1, 24)); // 设置字体样式、大小

GridLayout layout = new GridLayout(1, 2);

this.add(jl, BorderLayout.NORTH);

this.add(jt, BorderLayout.CENTER);

this.jp.add(start, layout);

this.jp.add(stop, layout);

this.add(jp, BorderLayout.SOUTH);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口

start.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

isStop = false;

JTextThread jtt = new JTextThread(jt);

jtt.start();

}

});

stop.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

isStop = true;

}

});

}

public static void main(String[] args) {

RandomTest rt = new RandomTest();

rt.setSize(400, 300);

rt.setLocationRelativeTo(null); // 设置窗口初始位置,屏幕中央

rt.setVisible(true);

}

class JTextThread extends Thread {

private JTextField jt;

public JTextThread(JTextField jt) {

this.jt = jt;

}

@Override

public void run() {

while (!isStop) {

try {

Thread.sleep(100);

int random = (int) (Math.random() * 60 + 1);

jt.setText(String.valueOf(random));

jt.setForeground(Color.blue); // 设置字体颜色

jt.setFont(new Font("Dialog", 1, 48)); // 设置字体样式、大小

jt.setHorizontalAlignment(SwingConstants.CENTER);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}


本文标题:java抽号程序代码,java抽奖程序代码
路径分享:http://cdkjz.cn/article/dsiodgg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220