完成一个抽奖系统,总的抽奖人数:100,奖项包含: 1等奖-1名 2等奖-2名 3等奖-5名 幸运奖-20名 要求不能重复抽取java
时间: 2024-01-15 21:03:17 浏览: 89
好的,我可以为您编写一个简单的抽奖系统,使用Java语言实现。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class LotterySystem {
private List<String> participants;
private List<String> winners;
private Random random;
public LotterySystem() {
participants = new ArrayList<>();
winners = new ArrayList<>();
random = new Random();
}
public void addParticipant(String participant) {
participants.add(participant);
}
public void runLottery() {
if (participants.size() < 100) {
System.out.println("抽奖人数不足100人");
return;
}
// 抽取一等奖
int firstPrizeIndex = random.nextInt(participants.size());
winners.add(participants.get(firstPrizeIndex));
participants.remove(firstPrizeIndex);
// 抽取二等奖
for (int i = 0; i < 2; i++) {
int secondPrizeIndex = random.nextInt(participants.size());
winners.add(participants.get(secondPrizeIndex));
participants.remove(secondPrizeIndex);
}
// 抽取三等奖
for (int i = 0; i < 5; i++) {
int thirdPrizeIndex = random.nextInt(participants.size());
winners.add(participants.get(thirdPrizeIndex));
participants.remove(thirdPrizeIndex);
}
// 抽取幸运奖
for (int i = 0; i < 20; i++) {
int luckyPrizeIndex = random.nextInt(participants.size());
winners.add(participants.get(luckyPrizeIndex));
participants.remove(luckyPrizeIndex);
}
}
public List<String> getWinners() {
return winners;
}
public static void main(String[] args) {
LotterySystem lotterySystem = new LotterySystem();
// 假设有100个参与者,名字分别为P1、P2、P3...P100
for (int i = 1; i <= 100; i++) {
lotterySystem.addParticipant("P" + i);
}
lotterySystem.runLottery();
List<String> winners = lotterySystem.getWinners();
System.out.println("抽奖结果:");
System.out.println("一等奖:" + winners.get(0));
System.out.println("二等奖:" + winners.get(1) + "、" + winners.get(2));
System.out.println("三等奖:" + winners.subList(3, 8));
System.out.println("幸运奖:" + winners.subList(8, 28));
}
}
```
注意,这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。在这个示例中,我们使用了一个 `List<String>` 来存储参与者和获奖者的名字,并使用 `Random` 类来生成随机数进行抽奖。首先,我们添加了100个参与者的名字到 `participants` 列表中。然后,我们运行抽奖系统,依次抽取一等奖、二等奖、三等奖和幸运奖的获奖者,并将他们添加到 `winners` 列表中。最后,我们打印出抽奖结果,展示了各个奖项的获奖者名字。
请注意,这个示例代码并没有处理一些特殊情况,比如参与者人数不足100人的情况。您可以根据实际需求进行相应的修改和完善。希望对您有所帮助!
阅读全文