任务
编写一个随机点名的程序,使其能够在全班同学中随机点中某一名同学的名字。随机点名器具备3个功能,包括存储全班同学姓名、总览全班同学姓名和随机点取其中一人姓名。比如随机点名器首先分别向班级存入小明、小红和小兰这3位同学的名字,然后总览全班同学的姓名,打印出这3位同学的名字,最后在这3位同学中随机选择一位,并打印出该同学的名字,至此随机点名成功。
任务实现
(1)在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,可以使用数组解决多个数据的存储问题。创建一个可以存储多个同学姓名的数组。
(2)键盘输入同学姓名,将输入的姓名依次赋值给数组的元素。
Scanner sc = new Scanner(System.in);
String str=sc.nextInt();
(3)对数组进行遍历,即可实现总览全班同学的姓名。
(4)根据数组长度,获取随机索引。
public int nextInt(int n)
(5)“随机点名器”明确分为3个功能,如果将多个独立功能的代码写在一起,则代码冗长,可读性差,可以针对不同的功能将其封装到不同的方法中,将完整独立的功能分离出来,在main()方法中调用3个方法即可。
代码实现
import java.util.Random;
import java.util.Scanner;
public class name {
public static void main(String[] args){
System.out.println("----------随机点名器----------");
String[] s =new String[3];
add(s);
print(s);
rand(s);
}
public static void add(String[] a){
Scanner sc= new Scanner(System.in);
for(int i=0;i<a.length;i++){
System.out.println("存储第"+(i+1)+"个同学的姓名:");
a[i]=sc.next();
}
}
public static void print(String[] a){
for(int i=0;i<a.length;i++){
System.out.println("第"+(i+1)+"个同学的姓名:"+a[i]);
}
}
public static void rand(String[] a){
Random r = new Random();
int i = r.nextInt(a.length);
System.out.println("被点名的是:"+ a[i]);
}
}