利用图形用户界面实现图书管理系统的登录、主界面和注册页面,具体要求如下: (1)登录要有用户名、密码和验证码,验证码6位字母和数字,随机生成。登录失败提示“用户名不存在”或“密码错误”;登录成功(用户名为admin且密码为admin时)后,关闭登录页,进入主界面
时间: 2023-11-26 12:06:03 浏览: 35
这个需求可以使用 Python 的 tkinter 模块来实现。下面是一个简单的示例代码,可以作为参考:
```python
import random
import tkinter as tk
class LoginWindow:
def __init__(self, master):
self.master = master
self.master.title("登录")
self.master.geometry("300x200")
self.username_label = tk.Label(self.master, text="用户名:")
self.username_label.pack()
self.username_entry = tk.Entry(self.master)
self.username_entry.pack()
self.password_label = tk.Label(self.master, text="密码:")
self.password_label.pack()
self.password_entry = tk.Entry(self.master, show="*")
self.password_entry.pack()
self.verify_code_label = tk.Label(self.master, text="验证码:")
self.verify_code_label.pack()
self.verify_code = "".join(random.choices("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", k=6))
self.verify_code_text = tk.StringVar()
self.verify_code_text.set(self.verify_code)
self.verify_code_display = tk.Label(self.master, textvariable=self.verify_code_text)
self.verify_code_display.pack()
self.verify_code_entry = tk.Entry(self.master)
self.verify_code_entry.pack()
self.login_button = tk.Button(self.master, text="登录", command=self.login)
self.login_button.pack()
def login(self):
if self.username_entry.get() == "admin" and self.password_entry.get() == "admin" and self.verify_code_entry.get() == self.verify_code:
self.master.destroy()
MainWindow(tk.Tk())
else:
tk.messagebox.showerror("错误", "用户名不存在或密码错误或验证码错误")
class RegisterWindow:
def __init__(self, master):
self.master = master
self.master.title("注册")
self.master.geometry("300x200")
self.username_label = tk.Label(self.master, text="用户名:")
self.username_label.pack()
self.username_entry = tk.Entry(self.master)
self.username_entry.pack()
self.password_label = tk.Label(self.master, text="密码:")
self.password_label.pack()
self.password_entry = tk.Entry(self.master, show="*")
self.password_entry.pack()
self.password_confirmation_label = tk.Label(self.master, text="确认密码:")
self.password_confirmation_label.pack()
self.password_confirmation_entry = tk.Entry(self.master, show="*")
self.password_confirmation_entry.pack()
self.register_button = tk.Button(self.master, text="注册", command=self.register)
self.register_button.pack()
def register(self):
if self.password_entry.get() == self.password_confirmation_entry.get():
tk.messagebox.showinfo("成功", "注册成功")
self.master.destroy()
else:
tk.messagebox.showerror("错误", "两次输入的密码不一致")
class MainWindow:
def __init__(self, master):
self.master = master
self.master.title("主界面")
self.master.geometry("300x200")
self.logout_button = tk.Button(self.master, text="注销", command=self.logout)
self.logout_button.pack()
def logout(self):
self.master.destroy()
LoginWindow(tk.Tk())
if __name__ == "__main__":
LoginWindow(tk.Tk())
```
这个示例代码实现了三个窗口:登录窗口、注册窗口和主界面窗口。其中登录窗口包括用户名、密码和验证码的输入框和一个登录按钮。验证码是随机生成的,由 6 个字母和数字组成。用户输入正确的用户名、密码和验证码后,点击登录按钮,程序会判断是否是管理员账户(用户名为 admin,密码为 admin),如果是,则关闭登录窗口,打开主界面窗口;否则就会弹出错误提示框。注册窗口包括用户名、密码和确认密码的输入框和一个注册按钮。用户输入密码和确认密码后,点击注册按钮,程序会判断两次输入的密码是否一致,如果一致,则弹出成功提示框,关闭注册窗口;否则就会弹出错误提示框。主界面窗口只有一个注销按钮,点击后会关闭主界面窗口,打开登录窗口。