运用java设计一个实现一个抽奖程序,将若干奖项放入一个ArrayList中,作为一个抽奖池。 创建若干个抽奖线程代表每个参加抽奖的人,随机从抽奖池中获取奖项并打印 某某人抽中 10 元大奖 莫某人谢谢您,下次再来的代码
时间: 2024-05-07 07:21:08 浏览: 198
基于Java实现抽奖系统
以下是一个简单的抽奖程序的实现示例,其中包含一个抽奖池类、一个抽奖线程类和一个主程序类:
```java
import java.util.ArrayList;
import java.util.Random;
class LotteryPool {
private ArrayList<String> prizes;
public LotteryPool() {
prizes = new ArrayList<String>();
}
public void addPrize(String prize) {
prizes.add(prize);
}
public String drawPrize() {
if (prizes.size() == 0) {
return null;
}
int index = new Random().nextInt(prizes.size());
String prize = prizes.get(index);
prizes.remove(index);
return prize;
}
}
class LotteryThread extends Thread {
private String name;
private LotteryPool pool;
public LotteryThread(String name, LotteryPool pool) {
this.name = name;
this.pool = pool;
}
public void run() {
String prize = pool.drawPrize();
if (prize == null) {
System.out.println(name + ",很遗憾,奖池里没有奖品了!");
return;
}
System.out.println(name + ",恭喜你抽中了" + prize);
}
}
public class LotteryProgram {
public static void main(String[] args) {
LotteryPool pool = new LotteryPool();
pool.addPrize("10元大奖");
pool.addPrize("5元小奖");
pool.addPrize("谢谢参与");
LotteryThread[] threads = new LotteryThread[5];
for (int i = 0; i < threads.length; i++) {
threads[i] = new LotteryThread("第" + (i+1) + "个人", pool);
threads[i].start();
}
}
}
```
在上面的示例中,抽奖池类 `LotteryPool` 封装了一个奖项列表 `prizes`,并提供了添加奖项和随机抽取奖项的方法。抽奖线程类 `LotteryThread` 继承了 `Thread` 类,每个线程代表一个参加抽奖的人,它在 `run` 方法中调用抽奖池的抽奖方法,打印出对应的抽奖结果。主程序类 `LotteryProgram` 创建了一个抽奖池对象和若干个抽奖线程对象,并启动这些线程进行抽奖。
阅读全文