上传文件至 'src'

pull/1/head
hnu202326010322 5 months ago
parent 34eee568c8
commit aef0a80317

@ -0,0 +1,64 @@
# user_manager.py
from enum import Enum, auto
class AccountType(Enum):
"""账户类型枚举类,对应小学、初中、高中三个级别"""
PRIMARY_SCHOOL = auto()
MIDDLE_SCHOOL = auto()
HIGH_SCHOOL = auto()
INVALID = auto()
class UserManager:
def __init__(self):
# 初始化预设账户key为用户名value为(密码, 账户类型)
self.user_database = {
# 小学账户
"张三 1": ("123", AccountType.PRIMARY_SCHOOL),
"张三 2": ("123", AccountType.PRIMARY_SCHOOL),
"张三 3": ("123", AccountType.PRIMARY_SCHOOL),
# 初中账户
"李四 1": ("123", AccountType.MIDDLE_SCHOOL),
"李四 2": ("123", AccountType.MIDDLE_SCHOOL),
"李四 3": ("123", AccountType.MIDDLE_SCHOOL),
# 高中账户
"王五 1": ("123", AccountType.HIGH_SCHOOL),
"王五 2": ("123", AccountType.HIGH_SCHOOL),
"王五 3": ("123", AccountType.HIGH_SCHOOL),
}
def verify_user(self, username: str, password: str) -> AccountType:
"""
验证用户名和密码是否正确
:param username: 输入的用户名
:param password: 输入的密码
:return: 账户类型无效账户返回INVALID
"""
user_info = self.user_database.get(username)
if user_info and user_info[0] == password:
return user_info[1]
return AccountType.INVALID
def type_to_str(self, account_type: AccountType) -> str:
"""将账户类型转换为中文描述"""
type_map = {
AccountType.PRIMARY_SCHOOL: "小学",
AccountType.MIDDLE_SCHOOL: "初中",
AccountType.HIGH_SCHOOL: "高中",
AccountType.INVALID: "未知"
}
return type_map[account_type]
def parse_type_choice(self, choice: int) -> AccountType:
"""
根据输入的序号解析对应的账户类型
:param choice: 输入的序号1代表小学2代表初中3代表高中
:return: 对应的账户类型无效输入返回INVALID
"""
choice_map = {
1: AccountType.PRIMARY_SCHOOL,
2: AccountType.MIDDLE_SCHOOL,
3: AccountType.HIGH_SCHOOL
}
return choice_map.get(choice, AccountType.INVALID)
Loading…
Cancel
Save