1. 用户登录窗口,主窗口界面如图1、图2所示,编程实现用户**注册**和**登录**功能 (1)用户**注册**功能要求如下: - 输入时要进行用户名、密码校验,规则为用户名不为空且必须包含数字和字母,即以数字或者字母开头,后面可以带数字、字母或者_;用户密码不为空且仅包含数字和字母。 - 当用户名不重复时,用户名、密码信息保存在当前文件夹下的文件user.txt中,并弹出消息窗口提示“注册成功!”;否则,弹出消息窗口提示“该用户名已存在,请重新输入”。2)用户**登录**功能要求如下: - 输入时要进行用户名、密码校验,当用户名、密码与文件user.txt中某一组用户账号(即用户名、密码)对应时,并弹出消息窗口提示“登录成功!”,关闭该消息窗口后再弹出子窗口;否则,弹出消息窗口提示“用户名或者密码错误”。
时间: 2023-11-27 17:03:58 浏览: 111
用户登陆界面设计,包括用户名及密码的输入
5星 · 资源好评率100%
好的,这是一个比较典型的用户登录和注册功能,您需要用到GUI框架和文件读写操作。下面是一个简单的Python代码示例,帮助您实现这个功能:
```python
import tkinter as tk
def check_username(username):
if len(username) < 1:
return False
if not username[0].isalnum():
return False
for c in username:
if not c.isalnum() and c != '_':
return False
return True
def check_password(password):
if len(password) < 1:
return False
for c in password:
if not c.isalnum():
return False
return True
def register():
username = entry_username.get()
password = entry_password.get()
if not check_username(username):
tk.messagebox.showerror('Error', '用户名不合法!')
return
if not check_password(password):
tk.messagebox.showerror('Error', '密码不合法!')
return
with open('user.txt', 'r') as f:
for line in f:
if line.strip().split(',')[0] == username:
tk.messagebox.showerror('Error', '该用户名已存在,请重新输入!')
return
with open('user.txt', 'a') as f:
f.write(username + ',' + password + '\n')
tk.messagebox.showinfo('Info', '注册成功!')
def login():
username = entry_username.get()
password = entry_password.get()
with open('user.txt', 'r') as f:
for line in f:
line = line.strip().split(',')
if line[0] == username and line[1] == password:
tk.messagebox.showinfo('Info', '登录成功!')
sub_window = tk.Toplevel(window)
# 创建子窗口并显示
sub_window.mainloop()
return
tk.messagebox.showerror('Error', '用户名或者密码错误!')
window = tk.Tk()
window.title('用户登录')
window.geometry('300x200')
label_username = tk.Label(window, text='用户名:')
label_username.place(x=50, y=30)
entry_username = tk.Entry(window)
entry_username.place(x=110, y=30)
label_password = tk.Label(window, text='密 码:')
label_password.place(x=50, y=70)
entry_password = tk.Entry(window, show='*')
entry_password.place(x=110, y=70)
btn_register = tk.Button(window, text='注册', command=register)
btn_register.place(x=50, y=120)
btn_login = tk.Button(window, text='登录', command=login)
btn_login.place(x=150, y=120)
window.mainloop()
```
这段代码使用了tkinter库来创建GUI界面,并实现了用户注册和登录功能。当用户点击注册按钮时,会根据输入的用户名和密码进行校验,并将用户名和密码写入到user.txt文件中;当用户点击登录按钮时,会根据输入的用户名和密码在user.txt文件中查找对应的用户账号,如果找到则弹出消息窗口提示登录成功,并打开子窗口。
阅读全文