答案:程序使用ArrayList管理学生名单,Random随机抽取姓名,Scanner实现控制台交互,支持添加、点名和退出操作。

用Java编写一个班级点名程序,核心需求是实现学生名单的管理、随机抽取以及与控制台的交互。这个程序可以用于课堂点名、提问或抽查考勤等场景。下面是一个简洁实用的实现方案。
使用ArrayList来存储学生姓名,便于动态添加和删除。程序启动时可预设一些学生,也可支持手动输入。
示例代码:
List<String> students = new ArrayList<>();
students.add("张三");
students.add("李四");
students.add("王五");
也可以通过Scanner从控制台接收用户输入来添加学生,提升交互性。
立即学习“Java免费学习笔记(深入)”;
借助Random类生成随机索引,从列表中取出对应学生。
关键代码:
Random random = new Random();
int index = random.nextInt(students.size());
String name = students.get(index);
System.out.println("被点到的同学是:" + name);
每次运行都能得到一个随机学生,避免重复偏向。
使用Scanner读取用户指令,支持以下操作:
主循环结构示例:
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入操作 (A:添加, C:点名, Q:退出): ");
String cmd = scanner.nextLine().trim().toUpperCase();
if (cmd.equals("Q")) break;
// 其他逻辑处理
}
整合以上功能,形成一个可运行的小型控制台应用:
import java.util.*;
public class RollCall {
public static void main(String[] args) {
List<String> students = Arrays.asList("张三", "李四", "王五", "赵六");
List<String> list = new ArrayList<>(students);
Scanner scanner = new Scanner(System.in);
Random random = new Random();
while (true) {
System.out.print("操作(A:添加, C:点名, Q:退出): ");
String cmd = scanner.nextLine().trim().toUpperCase();
if (cmd.equals("A")) {
System.out.print("输入学生姓名: ");
String name = scanner.nextLine();
if (!name.isEmpty()) list.add(name);
} else if (cmd.equals("C")) {
if (list.isEmpty()) {
System.out.println("名单为空,请先添加学生。");
} else {
String name = list.get(random.nextInt(list.size()));
System.out.println("? 被点到的是:" + name);
}
} else if (cmd.equals("Q")) {
System.out.println("再见!");
break;
} else {
System.out.println("无效指令,请重试。");
}
}
scanner.close();
}
}
基本上就这些。程序结构清晰,适合初学者理解集合、随机数和控制台输入输出的应用。扩展方向包括去重、防止重复点名、保存名单到文件等。
以上就是Java编写班级点名程序_列表随机调用与控制台交互的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号