/**
*
*/
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=0i<ni++){
System.out.print((int)(Math.random()*max+1)+" ")
如州 }
}
}
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 = 0i <defaNumi++) {
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 Set<Integer>randomDraw(int start, int end, int prizeNum, int[] defa) {
Set<Integer>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、运行效果如图
指定了中奖号码
未指定中奖号码
未指定中奖号码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)