【案例2-7】 抽取幸运观众

【案例2-7】  抽取幸运观众

【案例介绍】

  1. 任务描述

在一些节目活动中,经常会有抽取幸运观众环节。本案例要求编写程序实现幸运观众的抽取,在指定人群中随机抽取一名幸运观众。

案例功能要求如下:

  1. 从键盘输入3名观众。
  2. 存储观众姓名。
  3. 总览观众姓名。
  4. 随机选取一名观众,并打印出该观众姓名。
  1. 运行结果

任务运行结果如图2-7所示。

正在上传…重新上传取消

图2-7 运行结果

【案例目标】

  1. 学会分析"抽取幸运观众"程序的实现思路。
  2. 根据思路独立完成” 抽取幸运观众”的源代码编写、编译及运行。
  3. 能够根据"抽取幸运观众"程序功能的不同,将功能封装到不同的方法中。
  4. 能够使用数组解决多个观众姓名的存储问题。
  5. 掌握方法和数组的使用。

【案例思路】

  1. 在存储观众姓名时,如果对每个观众都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,可以使用数组解决多个数据的存储问题。创建一个可以存储多个观众姓名的数组,这里我们设置数组的长度为3。
  2. 键盘输入观众姓名。将输入的姓名依次赋值给数组各元素,此时便存储了所有观众姓名。键盘输入需要使用Scanner类,以下代码能够从键盘输入中读取一个字符串。

Scanner sc=new Scanner(System.in);

String str=sc.next();

  1. 对数组进行遍历,打印出数组每个元素的值,即实现了对每个观众姓名的总览。
  2. 根据数组长度,获取随机索引,这里我们的数组长度为3,所以获取的随机索引只能在0-2之间,通过随机索引获取数组中的姓名,该姓名也就是随机的姓名。获取随机索引可以使用Random类中的nextInt(int n方法
  3. "抽取幸运观众"明确第分为了3个功能,如果将多个独立功能的代码写在一起,代码相对冗长,可以针对不同的功能将其封装到不同的方法中,将完整独立的功能分离出来,然后只需要在程序的main()方法中调用这3个方法即可。

【案例实现】

新员工分配部门的实现代码,如文件2-7所示。

文件2-7 audience.java

import java.util.Random;
import java.util.Scanner;
public class audience {
	/*
	 * 存储姓名
	 * 创建一个存储多个姓名的容器(数组)
	 * 键盘输入每个同学的姓名,存储到容器中(数组)
	 */
	public static void addAudience(String[] audience) {
	    //键盘输入多个姓名到容器中
		Scanner sc=new Scanner(System.in);
		for (int i = 0; i < audience.length; i++) {
			System.out.println("存储第"+(i+1)+"个姓名:");
			//接收控制台录入的姓名字符串
			audience[i]=sc.next();
		}
	}
	/*
	 * 总览全部姓名
	 */
	public static void printAudience(String[] audience) {
	    //遍历数组,得到每个观众姓名
		for (int i = 0; i < audience.length; i++) {
			String name=audience[i];
			System.out.println("第"+(i+1)+"个观众姓名:"+name);
		}
	}
	/*
	 * 随机点名
	 */
	public static String randomAudience(String[] audience) {
	    //根据数组的长度,获取睡觉索引
		int index = new Random().nextInt(audience.length);
		//通过随机索引从数组中获取姓名
		String name=audience[index];
		//返回随机到的姓名
		return name;
	}
    public static void main(String[] args) {
    	System.out.println("--------抽取幸运观众---------");
		//创建一个长度为3的数组存储观众姓名
    	String[] audience=new String[3];
    	//存储观众姓名
    	addAudience(audience);
    	//总览观众姓名
    	printAudience(audience);
    	//随机抽取一名幸运观众
    	String randomName=randomAudience(audience);
    	System.out.println("随机抽取的幸运观众是:"+randomName);
    }
}

Java实现"抽取幸运观众",你可以使用`java.util.Random`类来生成随机数,配合数组或者列表来模拟人群。下面是一个简单的示例: ```java import java.util.ArrayList; import java.util.List; import java.util.Random; public class LuckyDraw { private static final int MAX_NUM_OF_AUDIENCES = 100; // 设定最大观众人数 private static Random random = new Random(); // 创建Random对象 public static void main(String[] args) { List<String> audiences = generateAudienceList(MAX_NUM_OF_AUDIENCES); // 生成观众名单 String luckyAudience = drawLuckyAudience(audiences); // 抽取幸运观众 System.out.println("恭喜 " + luckyAudience + " 成为了今天的幸运观众!"); } /** * 生成指定数量的观众名单 */ public static List<String> generateAudienceList(int size) { List<String> audienceList = new ArrayList<>(); for (int i = 1; i <= size; i++) { audienceList.add("观众" + i); } return audienceList; } /** * 从观众列表随机抽取一位 */ public static String drawLuckyAudience(List<String> audienceList) { if (audienceList.isEmpty()) { throw new IllegalArgumentException("观众列表不能为空"); } int index = random.nextInt(audienceList.size()); // 随机索引 return audienceList.get(index); // 返回随机选择的观众 } } ``` 在这个示例,我们首先创建了一个包含指定数量观众名称的列表,然后通过`drawLuckyAudience`方法随机选取一个观众作为幸运观众。运行这个程序,每次都会得到一个随机的幸运观众
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值