随机点名器案例

案例介绍:

随机点名器,即在全班同学中随机的打印出一名同学名字。
要做的随机点名器,它具备以下3个内容:
 存储所有同学姓名
 打印全班同学姓名
 随机点名其中一人,打印到控制台

案例分析:

在全班同学中随机的打印出一名同学名字。
我们对本案例进行分析,得出如下分析结果:
1.存储全班同学名字
2.打印全班同学每一个人的名字
3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学名字
该案例须有以下3个内容:
 存储所有同学姓名
 总览全班同学姓名
 随机点名其中一人,打印到控`制台
随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。
而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,我们可以使用数组解决多个数据的存储问题。

详细过程:

1.存储所有同学姓名,创建一个存储多个同学名字的数组 ,键盘输入每个同学的名字,存储到数组中

	public static void addStudentName(String[] student) {
		//键盘输入多个同学名字存储到容器中
		Scanner sc = new Scanner(System.in);
		for (int i = 0; i < student.length; i++) {
			System.out.println("存储第"+i+1+"个名称:");
			student[i] = sc.next();
		}
	}

2.打印全班同学名字

public static void printStudentName(String[] student) {
		//遍历数组,得到每个同学名字
		for (int i = 0; i < student.length; i++) {
			String name = student[i];
			//打印同学名字
			System.out.println("第"+i+"个学生名称:" + name);
		}
	}

3.获取随机点到的学生姓名

public static String randomStudentName(String[] student) {
		//根据数组长度,获取随机索引
		int index = new Random().nextInt(student.length);
		//通过随机索引从数组中获取名称
		String name = student[index];
		//返回随机点到的名称
		return name;
	}

4.min函数的设计

public static void main(String[] args) {
		System.out.println("--------随机点名器--------");
		// 创建一个存储多个同学名字的容器(数组)
		String[] student = new String[3];
		/*
		 * 1.存储全班同学名字
		 */
		addStudentName(student);
		/*
		 * 2.打印全班同学名字
		 */
		printStudentName(student);
		/*
		 * 3.获取随机点名到的学生姓名,并打印
		 */
		String randomName = randomStudentName(student);
		System.out.println("请"+randomName+"同学回答问题");
	}

完整代码及运行结果:

import java.util.Random;
import java.util.Scanner;

public class test {
    public static void addStudentName(String[] student) {
        //键盘输入多个同学名字存储到容器中
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < student.length; i++) {
            System.out.println("存储第"+i+"个名称:");
            student[i] = sc.next();
        }
    }
    public static void printStudentName(String[] student) {
        //遍历数组,得到每个同学名字
        for (int i = 0; i < student.length; i++) {
            String name = student[i];
            //打印同学名字
            System.out.println("第"+i+"个学生名称:" + name);
        }
    }
    public static String randomStudentName(String[] student) {
        //根据数组长度,获取随机索引
        int index = new Random().nextInt(student.length);
        //通过随机索引从数组中获取名称
        String name = student[index];
        //返回随机点到的名称
        return name;
    }
    public static void main(String[] args) {
        System.out.println("--------随机点名器--------");
        // 创建一个存储多个同学名字的容器(数组)
        String[] student = new String[3];
        /*
         * 1.存储全班同学名字
         */
        addStudentName(student);
        /*
         * 2.打印全班同学名字
         */
        printStudentName(student);
        /*
         * 3.获取随机点名到的学生姓名,并打印
         */
        String randomName = randomStudentName(student);
        System.out.println("请"+randomName+"同学回答问题");
    }
}

结果:

--------随机点名器--------
存储第0个名称:
王小明 
存储第1个名称:
刘晓红
存储第2个名称:
张大民
第0个学生名称:王小明
第1个学生名称:刘晓红
第2个学生名称:张大民
请刘晓红同学回答问题

进程已结束,退出代码0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值