用户登录窗口,主窗口界面如图1、图2所示,编程实现用户注册和登录功能 (1)用户注册功能要求如下: 输入时要进行用户名、密码校验,规则为用户名不为空且必须包含数字和字母,即以数字或者字母开头,后面可以带数字、字母或者_;用户密码不为空且仅包含数字和字母。 当用户名不重复时,用户名、密码信息保存在当前文件夹下的文件user.txt中,并弹出消息窗口提示“注册成功!”;否则,弹出消息窗口提示“该用户名已存在,请重新输入”。 (2)用户登录功能要求如下: 输入时要进行用户名、密码校验,当用户名、密码与文件user.txt中某一组用户账号(即用户名、密码)对应时,并弹出消息窗口提示“登录成功!”,关闭该消息窗口后再弹出子窗口;否则,弹出消息窗口提示“用户名或者密码错误”。 图片描述
时间: 2024-02-20 20:59:05 浏览: 18
以下是Python代码实现用户注册和登录功能的示例:
```python
import re
# 校验用户名格式
def validate_username(username):
pattern = r'^[a-zA-Z0-9][a-zA-Z0-9_]*$'
return bool(re.match(pattern, username))
# 校验密码格式
def validate_password(password):
pattern = r'^[a-zA-Z0-9]+$'
return bool(re.match(pattern, password))
# 注册新用户
def register():
username = input('请输入用户名:')
while not validate_username(username):
username = input('用户名格式不正确,请重新输入:')
password = input('请输入密码:')
while not validate_password(password):
password = input('密码格式不正确,请重新输入:')
with open('user.txt', 'a+') as f:
f.seek(0)
for line in f:
if username == line.split(',')[0]:
print('该用户名已存在,请重新输入!')
return
f.write(f'{username},{password}\n')
print('注册成功!')
# 用户登录
def login():
username = input('请输入用户名:')
password = input('请输入密码:')
with open('user.txt', 'r') as f:
for line in f:
if line.strip().split(',')[0] == username and line.strip().split(',')[1] == password:
print('登录成功!')
# TODO: 弹出子窗口
return
print('用户名或密码错误!')
# 主程序
while True:
print('1. 注册新用户')
print('2. 用户登录')
print('3. 退出程序')
choice = input('请选择操作:')
if choice == '1':
register()
elif choice == '2':
login()
elif choice == '3':
break
else:
print('输入有误,请重新输入!')
```
在上述代码中,`validate_username`和`validate_password`函数用于校验用户名和密码格式,`register`函数用于注册新用户,`login`函数用于用户登录,主程序中使用循环实现菜单选择。注意,上述代码中的登录成功后弹出子窗口的功能需要根据实际情况进行实现。