From 71431092536ef59af573752af03870c7405b324c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E8=8A=B3=E5=AE=87?= <15528541+cheng-fangyu@user.noreply.gitee.com> Date: Wed, 24 Sep 2025 12:30:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E5=92=8C=E5=B7=A5=E5=85=B7=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/quizgenerator/common/Level.java | 32 ++++++++++++ .../quizgenerator/common/QuestionUtils.java | 49 +++++++++++++++++++ .../com/quizgenerator/dao/UserDataBase.java | 37 ++++++++++++++ .../java/com/quizgenerator/entity/User.java | 30 ++++++++++++ 4 files changed, 148 insertions(+) create mode 100644 src/main/java/com/quizgenerator/common/Level.java create mode 100644 src/main/java/com/quizgenerator/common/QuestionUtils.java create mode 100644 src/main/java/com/quizgenerator/dao/UserDataBase.java create mode 100644 src/main/java/com/quizgenerator/entity/User.java diff --git a/src/main/java/com/quizgenerator/common/Level.java b/src/main/java/com/quizgenerator/common/Level.java new file mode 100644 index 0000000..bea1f88 --- /dev/null +++ b/src/main/java/com/quizgenerator/common/Level.java @@ -0,0 +1,32 @@ +package com.quizgenerator.common; + +import lombok.Getter; + +/** 三种习题等级. */ +@Getter +public enum Level { + PRIMARY("小学"), + JUNIOR_HIGH("初中"), + SENIOR_HIGH("高中"); + + private final String displayName; + + Level(String displayName) { + this.displayName = displayName; + } + + /** + * 获取等级. + * + * @param text s + * @return Level + */ + public static Level fromString(String text) { + for (Level b : Level.values()) { + if (b.displayName.equalsIgnoreCase(text)) { + return b; + } + } + return null; + } +} diff --git a/src/main/java/com/quizgenerator/common/QuestionUtils.java b/src/main/java/com/quizgenerator/common/QuestionUtils.java new file mode 100644 index 0000000..71a075c --- /dev/null +++ b/src/main/java/com/quizgenerator/common/QuestionUtils.java @@ -0,0 +1,49 @@ +package com.quizgenerator.common; + +import java.util.Random; + +/** 一个用于题目生成的辅助工具类. 包含所有生成器可能共享的静态方法。 */ +public final class QuestionUtils { + + private static final Random RANDOM = new Random(); + + private QuestionUtils() {} + + /** + * 检查一个字符串是否可以被解析为整数. + * + * @param str 要检查的字符串 + * @return 如果是数字则为 true, 否则为 false + */ + public static boolean isNotNumeric(String str) { + if (str == null) { + return true; // null 不是数字,所以返回 true + } + + try { + Integer.parseInt(str); + return false; // 能成功转换,说明是数字,所以返回 false + } catch (NumberFormatException e) { + return true; // 转换失败,说明不是数字,所以返回 true + } + } + + /** + * 返回一个随机的四则运算符 (+, -, *, /). + * + * @return 随机的运算符字符 + */ + public static char getRandomOperator() { + char[] operators = {'+', '-', '*', '/'}; + return operators[RANDOM.nextInt(operators.length)]; + } + + /** + * 返回一个1到100之间的随机操作数. + * + * @return 随机整数 + */ + public static int getRandomOperand() { + return RANDOM.nextInt(100) + 1; + } +} diff --git a/src/main/java/com/quizgenerator/dao/UserDataBase.java b/src/main/java/com/quizgenerator/dao/UserDataBase.java new file mode 100644 index 0000000..78caedf --- /dev/null +++ b/src/main/java/com/quizgenerator/dao/UserDataBase.java @@ -0,0 +1,37 @@ +package com.quizgenerator.dao; + +import com.quizgenerator.common.Level; +import com.quizgenerator.entity.User; +import java.util.HashMap; +import java.util.Map; + +/** 由于数据较少,且不好提交数据库,所以选择写死在代码里面. */ +public class UserDataBase { + private static final Map userDatabase = new HashMap<>(); + + // TODO 存储为加密后的密码 + static { + // 小学 + userDatabase.put("张三1", new User("张三1", "123", Level.PRIMARY)); + userDatabase.put("张三2", new User("张三2", "123", Level.PRIMARY)); + userDatabase.put("张三3", new User("张三3", "123", Level.PRIMARY)); + // 初中 + userDatabase.put("李四1", new User("李四1", "123", Level.JUNIOR_HIGH)); + userDatabase.put("李四2", new User("李四2", "123", Level.JUNIOR_HIGH)); + userDatabase.put("李四3", new User("李四3", "123", Level.JUNIOR_HIGH)); + // 高中 + userDatabase.put("王五1", new User("王五1", "123", Level.SENIOR_HIGH)); + userDatabase.put("王五2", new User("王五2", "123", Level.SENIOR_HIGH)); + userDatabase.put("王五3", new User("王五3", "123", Level.SENIOR_HIGH)); + } + + /** + * 根据用户名查找用户. + * + * @param username 用户名 + * @return 如果找到则返回User对象,否则返回null + */ + public static User findByUsername(String username) { + return userDatabase.get(username); + } +} diff --git a/src/main/java/com/quizgenerator/entity/User.java b/src/main/java/com/quizgenerator/entity/User.java new file mode 100644 index 0000000..7368bb2 --- /dev/null +++ b/src/main/java/com/quizgenerator/entity/User.java @@ -0,0 +1,30 @@ +package com.quizgenerator.entity; + +import com.quizgenerator.common.Level; +import lombok.Data; + +/** User类. */ +@Data +public class User { + private final String username; + private final String password; + private final Level level; + + /*public User(String username, String password, Level level) { + this.username = username; + this.password = password; + this.level = level; + } + + public String getUsername() { + return username; + } + + public String getPassword() { + return password; + } + + public Level getLevel() { + return level; + }*/ +}