diff --git a/src/ExamSystem.java b/src/ExamSystem.java new file mode 100644 index 0000000..319b429 --- /dev/null +++ b/src/ExamSystem.java @@ -0,0 +1,59 @@ +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 之间的数字"); + } + } + } +}