Java抽奖功能设计需求:
- 用户可以在一定数量的奖项中随机抽取一个奖项。
- 抽奖过程需要保证公平、随机和不重复,即每个奖项只能被抽取一次。
- 用户可以在抽奖前设置抽奖规则,如抽取次数、奖项数量、奖项名称等。
- 抽奖过程需要记录并展示中奖名单,包括中奖用户和奖项名称。 Java抽奖功能代码实现:
import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.Scanner; public class LuckyDraw { private List<String> prizeList; // 奖项列表 private List<String> nameList; // 姓名列表 private int drawNum; // 抽奖次数 public LuckyDraw() { prizeList = new ArrayList<>(); nameList = new ArrayList<>(); } // 设置奖项列表 public void setPrizeList(List<String> prizeList) { this.prizeList = prizeList; } // 设置姓名列表 public void setNameList(List<String> nameList) { this.nameList = nameList; } // 设置抽奖次数 public void setDrawNum(int drawNum) { this.drawNum = drawNum; } // 抽奖 public void draw() { Random random = new Random(); List<String> resultList = new ArrayList<>(); // 每次抽奖从名单中随机选取一个人,并从奖项列表中删除已中奖的奖项 for (int i = 0; i < drawNum; i++) { int index = random.nextInt(nameList.size()); String name = nameList.get(index); int prizeIndex = random.nextInt(prizeList.size()); String prizeName = prizeList.get(prizeIndex); nameList.remove(index); prizeList.remove(prizeIndex); resultList.add(name + " 中了 " + prizeName); } // 输出中奖名单 System.out.println("\n中奖名单:"); for (String result : resultList) { System.out.println(result); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); LuckyDraw luckyDraw = new LuckyDraw(); // 设置奖项列表 List<String> prizeList = new ArrayList<>(); prizeList.add("一等奖"); prizeList.add("二等奖"); prizeList.add("三等奖"); luckyDraw.setPrizeList(prizeList); // 设置姓名列表 List<String> nameList = new ArrayList<>(); nameList.add("张三"); nameList.add("李四"); nameList.add("王五"); nameList.add("赵六"); nameList.add("钱七"); luckyDraw.setNameList(nameList); // 设置抽奖次数 System.out.print("请输入抽奖次数:"); int drawNum = scanner.nextInt(); luckyDraw.setDrawNum(drawNum); // 开始抽奖 luckyDraw.draw(); } }
以上代码实现了一个简单的Java抽奖功能,包括了设置奖项列表、姓名列表和抽奖次数等基本功能,可以通过运行main函数来进行抽奖操作。
评论