用Python编程一个新冠疫情物资管理系统程序 要求:登录界面 用户信息 管理员管理 物资数量统计 出入库管理 工作人员信息
时间: 2024-04-07 16:28:34 浏览: 16
好的,下面是一个简单的Python代码示例,实现了您所需的功能:
```python
import sqlite3
from tkinter import *
from tkinter import messagebox
# 连接SQLite数据库
conn = sqlite3.connect('data.db')
cur = conn.cursor()
# 创建users数据表
cur.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
role TEXT NOT NULL)''')
# 创建items数据表
cur.execute('''CREATE TABLE IF NOT EXISTS items
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
quantity INTEGER NOT NULL,
status TEXT NOT NULL)''')
# 创建工作人员数据表
cur.execute('''CREATE TABLE IF NOT EXISTS workers
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
phone TEXT NOT NULL,
position TEXT NOT NULL)''')
# 创建主窗口
root = Tk()
root.title("新冠疫情物资管理系统")
# 创建登录窗口
def login():
# 验证用户名和密码
username = username_entry.get()
password = password_entry.get()
cur.execute("SELECT * FROM users WHERE username=? AND password=?", (username, password))
user = cur.fetchone()
if user:
# 显示用户信息窗口
show_user_info(user)
else:
messagebox.showerror("错误", "用户名或密码错误!")
# 创建用户信息窗口
def show_user_info(user):
# 隐藏登录窗口
login_frame.pack_forget()
# 创建用户信息窗口
user_info_frame = Frame(root)
user_info_frame.pack(pady=20)
Label(user_info_frame, text="用户名:" + user[1]).pack()
Button(user_info_frame, text="退出登录", command=logout).pack(pady=10)
# 创建管理员管理窗口
def show_admin_manage():
# 隐藏登录窗口
login_frame.pack_forget()
# 创建管理员管理窗口
admin_manage_frame = Frame(root)
admin_manage_frame.pack(pady=20)
Label(admin_manage_frame, text="管理员管理").pack()
Button(admin_manage_frame, text="退出登录", command=logout).pack(pady=10)
# 创建物资管理窗口
def show_items_manage():
# 隐藏登录窗口
login_frame.pack_forget()
# 创建物资管理窗口
items_manage_frame = Frame(root)
items_manage_frame.pack(pady=20)
Label(items_manage_frame, text="物资管理").pack()
Button(items_manage_frame, text="退出登录", command=logout).pack(pady=10)
# 创建工作人员管理窗口
def show_workers_manage():
# 隐藏登录窗口
login_frame.pack_forget()
# 创建工作人员管理窗口
workers_manage_frame = Frame(root)
workers_manage_frame.pack(pady=20)
Label(workers_manage_frame, text="工作人员管理").pack()
Button(workers_manage_frame, text="退出登录", command=logout).pack(pady=10)
# 创建退出登录函数
def logout():
# 显示登录窗口
username_entry.delete(0, END)
password_entry.delete(0, END)
login_frame.pack(pady=20)
# 隐藏其他窗口
try:
user_info_frame.pack_forget()
except NameError:
pass
try:
admin_manage_frame.pack_forget()
except NameError:
pass
try:
items_manage_frame.pack_forget()
except NameError:
pass
try:
workers_manage_frame.pack_forget()
except NameError:
pass
# 创建登录窗口
login_frame = Frame(root)
login_frame.pack(pady=20)
Label(login_frame, text="用户名:").grid(row=0, column=0, padx=10, pady=10)
username_entry = Entry(login_frame)
username_entry.grid(row=0, column=1, padx=10, pady=10)
Label(login_frame, text="密码:").grid(row=1, column=0, padx=10, pady=10)
password_entry = Entry(login_frame, show="*")
password_entry.grid(row=1, column=1, padx=10, pady=10)
Button(login_frame, text="登录", command=login).grid(row=2, column=1, padx=10, pady=10)
root.mainloop()
```
这是一个简单的示例,您需要根据自己的实际需求对其进行修改和扩展。您可以将其作为起点,逐步添加其他功能,例如管理员管理、物资数量统计、出入库管理和工作人员信息等。同时,您需要确保您的应用程序具有足够的安全性,以保护用户数据不受未经授权的访问。