用java编写一个简单的抽奖系统,可以实现多人抽奖,不同奖项不同个数的功能。
时间: 2024-03-26 09:36:14 浏览: 222
好的,以下是一个简单的 Java 抽奖系统的实现,可以实现多人抽奖,不同奖项不同个数的功能:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class LotterySystem {
private static final int MAX_PRIZE_NUM = 10; // 每个奖项最多的中奖人数
private static final int PRIZE_NUM = 3; // 奖项数量
private static final String[] PRIZE_NAMES = {"一等奖", "二等奖", "三等奖"}; // 奖项名称
private static final int[] PRIZE_COUNTS = {1, 2, 3}; // 每个奖项的中奖人数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入参与抽奖的人数:");
int participantNum = scanner.nextInt();
List<String> participants = new ArrayList<>();
for (int i = 1; i <= participantNum; i++) {
System.out.print("请输入第" + i + "位参与者的姓名:");
String name = scanner.next();
participants.add(name);
}
System.out.println("参与者名单:" + participants);
// 开始抽奖
Random random = new Random();
List<List<String>> prizeWinners = new ArrayList<>();
for (int i = 0; i < PRIZE_NUM; i++) {
List<String> winners = new ArrayList<>();
int prizeCount = PRIZE_COUNTS[i];
int maxPrizeNum = Math.min(MAX_PRIZE_NUM, participantNum / prizeCount); // 最多中奖人数不能超过每个奖项最多的中奖人数
for (int j = 0; j < prizeCount; j++) {
int index = random.nextInt(participants.size());
String winner = participants.get(index);
winners.add(winner);
participants.remove(index);
}
prizeWinners.add(winners);
}
// 输出中奖名单
for (int i = 0; i < PRIZE_NUM; i++) {
System.out.println(PRIZE_NAMES[i] + ":");
List<String> winners = prizeWinners.get(i);
for (String winner : winners) {
System.out.println(winner);
}
}
}
}
```
该程序首先要求用户输入参与抽奖的人数和每个参与者的姓名,然后根据奖项数量和每个奖项的中奖人数进行抽奖,最后输出中奖名单。程序使用了`java.util.Random`类来生成随机数,使用了`java.util.List`接口来存储参与者和中奖名单。
阅读全文