扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
抽取问题, 重点是 同一个学号不能重复被抽取.
公司主营业务:网站制作、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出海湖新免费做网站回馈大家。
解决办法很多,
比如数组可以使用下标来标记,号码是否被使用,使用了就继续下一次抽取
也可以使用集合来抽取,把集合顺序打乱,然后随便抽几个就可以了
参考代码:数组法
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));
}
}
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("系统退出,谢谢使用!");
}
}
}
public String[] findluckMen(String[] data , int n){
Random random = new Random();
int len = data.length;
String[] luckmen = new String[len];
for(int i=0;ilen;i++){
int index = random.nextInt(len);
luckmen[i] = data[index ];
}
return luckmen;
}
import java.util.Scanner;
public class Choujiang {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//定义Scanner类1234
System.out.println("请输入四位卡号:");//输入提示语
int cardNo = sc.nextInt();//接受输入数据
int gewei = cardNo%10;//分解个位
int shiwei = cardNo/10%10;//分解十位
int baiwei = cardNo/100%10;//分解百位
int qianwei = cardNo/1000;//分解千位
int sum = gewei+shiwei+baiwei+qianwei;
System.out.println("会员卡号四位之和是:"+sum);
if(sum20){//判断各位数和是否大于20
System.out.println("恭喜,你是幸运客户!");
}else{
System.out.println("谢谢惠顾!");
}
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流