目录
请为《图书馆借阅管理系统》设计实现用户登录注册功能。
【功能要求】:
【特别提示】:
分析:
1.由于不使用GUI知识,我们可以采用控制台输出来模拟欢迎界面。
2.系统功能菜单的跳转
3.注册功能实现
4.登录功能实现
5. 流程图分析
1、用户来到系统欢迎界面,开始使用本系统。
2、让用户自由选择注册 or 登录。
①如果用户尚未注册则选择"注册"功能。-->完成注册。-->登录系统。
②如果用户已注册则选择"登录"功能。-->直接登录系统。
3、注册功能细节要求
①用户名不可包含敏感词,敏感词库包括:"傻","蠢","笨", "呆","愚"。例如"大傻子"为不合法用户名,提示用户"大*子"用户名不可注册,请重新输入。
②密码不可少于6位。
③密码不可为纯数字或纯字母,应至少为字母+数字的混合。
4、登录功能细节要求
①登陆时,如果用户名或者密码输错三次,则禁止登录本系统。
1、本案例仅可利用1~5章知识实现(可使用字符串,组合数据类型,程序的三种基本结构等,不可使用函数/文件/数据库/面向对象等)。
2、本案例无标准答案,逻辑合理,能满足题目要求即可。
例如:
```
欢迎使用图书馆借阅管理系统
请选择操作:
1. 注册
2. 登录
请输入选项(1-2):
```
在控制台中,我们可以通过读取用户输入来实现功能选择的跳转。例如:
```
option = input("请输入选项(1-2):")
if option == '1':
# 执行注册流程
elif option == '2':
# 执行登录流程
else:
print("输入错误,请重新输入!")
```
1. 检查用户名是否包含敏感词:遍历敏感词库,检查用户名中是否含有敏感词。
2. 检查密码长度和复杂性:确保密码长度不少于6位,且包含字母和数字。
1. 限制登录尝试次数:使用一个计数器记录用户尝试登录的次数,如果超过3次,则禁止登录。
2. 初始用户名密码数据集存储:使用列表(List)来存储用户名和密码。每个用户名和密码可以作为一个元组存储在列表中。
3. 登录尝试次数限制实现:使用一个变量来记录用户尝试登录的次数,如果达到3次,显示错误信息并终止程序或跳转到其他流程。
4. 重复或不方便的操作:
1. 用户名和密码的验证:每次注册和登录都需要验证用户名和密码,这可能会导致代码重复。
2. 错误处理:如果用户多次输入错误,需要有机制来处理这种情况,可能涉及到程序的多次跳转。
代码展示:
# 用户初始数据集,用字典来存储用户账号密码
users = {'user1': 'password1'}
# 敏感词列表
sensitive_words = ["傻", "蠢", "笨", "呆", "愚"]
# 登录错误计数
count = 0
# 欢迎界面
print("欢迎来到图书馆借阅管理系统!")
# 用户选择登录或注册
choice = input("请选择:\n1. 注册\n2. 登录\n")
# 注册功能
if choice == '1':
username = input("请输入用户名:")
# 检查用户名是否包含敏感词
for word in sensitive_words:
if word in username:
username = username.replace(word, '*')
print(f"{username}包含敏感词,请重新输入!")
username = input("请输入用户名:")
password = input("请输入密码:")
# 检查密码长度和复杂度
while len(password) < 6 or password.isdigit() or password.isalpha():
print("密码要求不少于6位且由数字和字母组成,请重新输入!")
password = input("请输入密码:")
users[username] = password
print("注册成功!")
print("请登录")
# 注册完成后直接登录
choice = '2'
# 登录功能
if choice == '2':
while count < 3:
username = input("请输入用户名:")
password = input("请输入密码:")
if username in users and users[username] == password:
print("登录成功!欢迎进入系统。")
break
else:
count += 1
print("用户名或密码错误,请重新输入。")
if count == 3:
print("登录错误次数已达上限,禁止登录!")