From bfb9eecf0fce2cd57abde1e1823d7131f4df2ca9 Mon Sep 17 00:00:00 2001 From: hnu202326010305 <1405671544@qq.com> Date: Sat, 27 Sep 2025 03:11:56 +0800 Subject: [PATCH] Update ExamSystem.java --- src/ExamSystem.java | 122 +++++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 59 deletions(-) diff --git a/src/ExamSystem.java b/src/ExamSystem.java index 319b429..f307a25 100644 --- a/src/ExamSystem.java +++ b/src/ExamSystem.java @@ -1,59 +1,63 @@ -import java.util.Scanner; - -public class ExamSystem { - private final Scanner scanner = new Scanner(System.in); - public Users login() { - Users users = null; - while (users == null) { - System.out.print("请输入用户名和密码: "); - String input = scanner.nextLine(); - String[] parts = input.split(" "); - if (parts.length == 2) { - users = Users.login(parts[0], parts[1]); - } - if (users == null) { - System.out.println("请输入正确的用户名、密码"); - } - } - System.out.println("当前选择为" + users.getType() + "出题"); - return users; - } - - public void generateProblems(Users users) { - while (true) { - - System.out.print("准备生成" + users.getType() - + "数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); - String input = scanner.nextLine().trim(); - - if (input.equals("-1")) { - break; - } - - ProblemsGenerator generator = switch (users.getType()) { - case "小学" -> new PrimaryProblem(); - case "初中" -> new JuniorProblem(); - case "高中" -> new SeniorProblem(); - default -> null; - }; - - if (input.startsWith("切换为")) { - String target = input.replace("切换为", ""); - if (target.equals("小学") || target.equals("初中") || target.equals("高中")) { - users = new Users(users.getName(), users.getPassword(), target); - System.out.println("系统提示:准备生成" + users.getType() + "数学题目"); - } else { - System.out.println("请输入小学、初中和高中三个选项中的一个"); - } - continue; - } - - int num = Integer.parseInt(input); - if (num >= 10 && num <= 30 && generator != null) { - Generator.generate(users, num, generator); - } else { - System.out.println("请输入 10-30 之间的数字"); - } - } - } -} +import java.util.Scanner; + +public class ExamSystem { + private final Scanner scanner = new Scanner(System.in); + public Users login() { + Users users = null; + while (users == null) { + System.out.print("请输入用户名和密码: "); + String input = scanner.nextLine(); + String[] parts = input.split(" "); + if (parts.length == 2) { + users = Users.login(parts[0], parts[1]); + } + if (users == null) { + System.out.println("请输入正确的用户名、密码"); + } + } + System.out.println("当前选择为" + users.getType() + "出题"); + return users; + } + + public void generateProblems(Users users) { + while (true) { + String input = scanner.nextLine().trim(); + if (input.equals("-1")) { + break; + } + + ProblemsGenerator generator = switch (users.getType()) { + case "小学" -> new PrimaryProblem(); + case "初中" -> new JuniorProblem(); + case "高中" -> new SeniorProblem(); + default -> null; + }; + + if (input.startsWith("切换为")) { + String target = input.replace("切换为", ""); + if (target.equals("小学") || target.equals("初中") || target.equals("高中")) { + users = new Users(users.getName(), users.getPassword(), target); + System.out.print("系统提示:准备生成" + users.getType() + + "数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); + } else { + System.out.println("请输入小学、初中和高中三个选项中的一个"); + } + continue; + } + + try { + int num = Integer.parseInt(input); + if (num >= 10 && num <= 30 && generator != null) { + Generator.generate(users, num, generator); + } else { + System.out.println("请输入 10-30 之间的数字"); + } + } catch (NumberFormatException e) { + System.out.println("请输入小学、初中和高中三个选项中的一个"); + } + + System.out.print("准备生成" + users.getType() + + "数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); + } + } +}