package model; import java.util.HashMap; import java.util.Map; /** * 用户管理类 * 负责用户注册、登录、密码修改等功能 */ public class UserManager { private static final Map users = new HashMap<>(); /** * 用户注册 * * @param email 用户邮箱 * @param password 密码 * @param grade 年级类型 * @return 注册是否成功 */ public boolean register(String email, String password, Grade grade) { if (users.containsKey(email)) { return false; } users.put(email, new UserInfo(password, grade)); return true; } /** * 用户登录 * * @param email 用户邮箱 * @param password 密码 * @return 年级类型,登录失败返回null */ public Grade login(String email, String password) { UserInfo user = users.get(email); if (user == null || !user.getPassword().equals(password)) { return null; } return user.getGrade(); } /** * 检查用户是否存在 * * @param email 用户邮箱 * @return 用户是否存在 */ public boolean userExists(String email) { return users.containsKey(email); } /** * 修改密码 * * @param email 用户邮箱 * @param oldPassword 原密码 * @param newPassword 新密码 * @return 修改是否成功 */ public boolean changePassword(String email, String oldPassword, String newPassword) { UserInfo user = users.get(email); if (user == null || !user.getPassword().equals(oldPassword)) { return false; } user.setPassword(newPassword); return true; } /** * 内部类:用户信息 */ private static class UserInfo { private String password; private final Grade gradeType; /** * 构造用户信息 * * @param password 密码 * @param gradeType 年级类型 */ public UserInfo(String password, Grade gradeType) { //this.email = email; this.password = password; this.gradeType = gradeType; } /** * 获取密码 * * @return 密码 */ public String getPassword() { return password; } /** * 设置密码 * * @param password 新密码 */ public void setPassword(String password) { this.password = password; } /** * 获取年级类型 * * @return 年级类型 */ public Grade getGrade() { return gradeType; } } }