修改文件中代码,使文件中代码运行结果中展示的英文转变为中文,修改后输出完整代码
时间: 2025-02-02 20:12:01 浏览: 99
为了将文件中的英文翻译成中文,我们需要逐行检查代码,并将涉及到的文本部分翻译成中文。以下是完整的修改后的代码:
### `LibraryManagement.py`
```python
import tkinter as tk
from tkinter import messagebox, ttk # 导入 ttk 模块
import pyodbc
from datetime import date # 使用 Python 内置的 date 类
# 定义数据库连接字符串
conn_str = (
r'DRIVER={SQL Server};'
r'SERVER=LAPTOP-RUDD6JDH;' # 替换为实际的服务器地址
r'DATABASE=LibraryManagement;' # 替换为实际的数据库名称
r'Trusted_Connection=yes;' # 使用 Windows 身份验证
)
# 注册功能
def register():
reg_window = tk.Toplevel(root)
reg_window.title("注册")
tk.Label(reg_window, text="ID: ").grid(row=0, column=0)
id_entry = tk.Entry(reg_window)
id_entry.grid(row=0, column=1)
tk.Label(reg_window, text="姓名: ").grid(row=1, column=0)
name_entry = tk.Entry(reg_window)
name_entry.grid(row=1, column=1)
tk.Label(reg_window, text="密码: ").grid(row=2, column=0)
pwd_entry = tk.Entry(reg_window, show="*") # 修正拼写错误
pwd_entry.grid(row=2, column=1)
tk.Button(reg_window, text="注册",
command=lambda: add_user(id_entry.get(), name_entry.get(), pwd_entry.get())).grid(row=3, column=0,
columnspan=2)
def add_user(uid, name, pwd):
with pyodbc.connect(conn_str) as conn:
cursor = conn.cursor()
try:
cursor.execute("INSERT INTO Users (u_id, u_name, u_password) VALUES (?, ?, ?)", uid, name, pwd)
conn.commit()
messagebox.showinfo("成功", "注册成功!")
except pyodbc.IntegrityError:
messagebox.showwarning("警告", "用户已存在!")
# 登录功能
def login():
uid = uid_entry.get()
pwd = pwd_entry.get()
with pyodbc.connect(conn_str) as conn:
cursor = conn.cursor()
cursor.execute("SELECT * FROM Users WHERE u_id = ? AND u_password = ?", uid, pwd)
user = cursor.fetchone()
if user:
messagebox.showinfo("成功", "登录成功!")
open_main_page(user[0], user[3])
else:
messagebox.showwarning("警告", "无效的ID或密码")
def open_main_page(uid, name):
main_page = tk.Toplevel(root)
main_page.title(f"欢迎,{name}")
tk.Label(main_page, text=f"已登录为: {uid}, {name}").pack()
tk.Button(main_page, text="搜索书籍", command=search_books).pack()
tk.Button(main_page, text="借阅书籍", command=borrow_books).pack()
tk.Button(main_page, text="归还书籍", command=return_books).pack()
# 搜索书籍
def search_books():
search_page = tk.Toplevel(root)
search_page.title("搜索书籍")
tk.Label(search_page, text="请输入书名: ").pack()
book_name_entry = tk.Entry(search_page)
book_name_entry.pack()
tk.Button(search_page, text="搜索", command=lambda: display_books(book_name_entry.get(), search_page)).pack()
def display_books(book_name, page):
treeview = ttk.Treeview(page, columns=("book_id", "book_name", "author", "press"))
treeview.heading("#1", text="ID")
treeview.heading("#2", text="名称")
treeview.heading("#3", text="作者")
treeview.heading("#4", text="出版社")
treeview.pack()
with pyodbc.connect(conn_str) as conn:
cursor = conn.cursor()
cursor.execute("SELECT book_id, book_name, author, press FROM Books WHERE book_name LIKE ?", f"%{book_name}%")
books = cursor.fetchall()
for book in books:
treeview.insert("", "end", values=book)
# 借阅书籍
def borrow_books():
borrow_page = tk.Toplevel(root)
borrow_page.title("借阅书籍")
tk.Label(borrow_page, text="请输入书ID: ").grid(row=0, column=0)
book_id_entry = tk.Entry(borrow_page)
book_id_entry.grid(row=0, column=1)
tk.Button(borrow_page, text="借阅", command=lambda: add_borrow_record(book_id_entry.get())).grid(row=1, column=0,
columnspan=2)
def add_borrow_record(book_id):
uid = uid_entry.get()
with pyodbc.connect(conn_str) as conn:
cursor = conn.cursor()
cursor.execute("INSERT INTO Records (u_id, book_id, lend_time) VALUES (?, ?, ?)", uid, book_id, date.today())
conn.commit()
messagebox.showinfo("成功", "借阅成功!")
# 归还书籍
def return_books():
return_page = tk.Toplevel(root)
return_page.title("归还书籍")
tk.Label(return_page, text="请输入书ID: ").grid(row=0, column=0)
book_id_entry = tk.Entry(return_page)
book_id_entry.grid(row=0, column=1)
tk.Button(return_page, text="归还", command=lambda: add_return_record(book_id_entry.get())).grid(row=1, column=0,
columnspan=2)
def add_return_record(book_id):
with pyodbc.connect(conn_str) as conn:
cursor = conn.cursor()
cursor.execute("DELETE FROM Lending WHERE book_id = ?", book_id)
cursor.execute("UPDATE Books SET lendable = lendable + 1 WHERE book_id = ?", book_id)
conn.commit()
messagebox.showinfo("成功", "归还成功!")
# 创建主窗口
root = tk.Tk()
root.title("登录")
tk.Label(root, text="ID: ").grid(row=0, column=0)
uid_entry = tk.Entry(root)
uid_entry.grid(row=0, column=1)
tk.Label(root, text="密码: ").grid(row=1, column=0)
pwd_entry = tk.Entry(root, show="*") # 修正拼写错误
pwd_entry.grid(row=1, column=1)
tk.Button(root, text="登录", command=login).grid(row=2, column=0, columnspan=2)
tk.Button(root, text="注册", command=register).grid(row=3, column=0, columnspan=2)
root.mainloop()
```
### `Admir.py` (管理员界面)
```python
import tkinter as tk
from tkinter import messagebox, ttk # 导入 ttk 模块
import pyodbc
from datetime import date # 使用 Python 内置的 date 类
# 定义数据库连接字符串
conn_str = (
r'DRIVER={SQL Server};'
r'SERVER=LAPTOP-RUDD6JDH;' # 替换为实际的服务器地址
r'DATABASE=LibraryManagement;' # 替换为实际的数据库名称
r'Trusted_Connection=yes;' # 使用 Windows 身份验证
)
class Admir:
def __init__(self, master):
self.dl_window = master
self.dl_window.geometry('500x380')
self.dl_window.title('管理员登录')
self.username = tk.StringVar()
self.password = tk.StringVar()
self.page = tk.Frame(self.dl_window)
self.page.pack()
tk.Label(self.page).grid(row=0, column=0)
tk.Label(self.page, text='账户:').grid(row=1, column=1, pady=10)
# 输入框组件代码
tk.Entry(self.page, textvariable=self.username).grid(row=1, column=2)
tk.Label(self.page, text='密码:').grid(row=2, column=1, pady=10)
# 登录逻辑
def login():
name = self.username.get()
pwd = self.password.get()
flag, message = db.check_login1(name, pwd)
if flag:
self.page.destroy()
MainPage(self.dl_window)
else:
messagebox.showerror(title='错误', message=message)
# 注册运行函数
def addAdmir(new_id, new_name, new_password, new_yanzhen):
if new_yanzhen == 5200:
conn = pyodbc.connect(server='LAPTOP-RUDD6JDH', user='sa', database='LibraryManagement',
password='your_password',
port=1433, charset='utf8')
cursor = conn.cursor()
# 先查询账号是否已存在
check_sql = "SELECT COUNT(*) FROM Administrators WHERE a_id = ?"
cursor.execute(check_sql, (new_id.get(),))
count = cursor.fetchone()[0]
if count > 0:
messagebox.showerror('错误', '该账号已存在,请更换账号重新注册')
cursor.close()
conn.close()
return
# 使用参数化查询构造SQL语句,避免SQL注入风险
sql = "INSERT INTO Administrators(a_id, a_name, a_password) VALUES (?, ?, ?)"
try:
cursor.execute(sql, (new_id.get(), new_name.get(), new_password.get()))
conn.commit()
messagebox.showinfo('欢迎注册', '注册成功')
except Exception as e:
print(f"插入数据时出错: {e}")
conn.rollback()
messagebox.showerror('错误', '注册失败,请稍后重试')
finally:
cursor.close()
conn.close()
else:
messagebox.showerror('错误', '验证码错误,注册失败')
# 注册逻辑
def zc():
global z1
global new_id
global new_name
global new_password
global new_yanzhen
z1 = tk.Toplevel()
z1.title("注册")
z1.geometry('300x310+1200+200')
z1.resizable(False, False)
z2 = tk.Label(z1, text='管理员注册', font=('黑体', 15), fg='blue')
tk.Label(z1, text='账 号:', font=('黑体', 15), fg='black').place(x=50, y=60)
tk.Label(z1, text='姓 名:', font=('黑体', 15), fg='black').place(x=50, y=100)
tk.Label(z1, text='密 码:', font=('黑体', 15), fg='black').place(x=50, y=140)
tk.Label(z1, text='验证码:', font=('黑体', 15), fg='black').place(x=50, y=180)
# 输入框组件代码
new_id = tk.StringVar()
new_name = tk.StringVar()
new_password = tk.StringVar()
new_yanzhen = tk.StringVar()
tk.Entry(z1, textvariable=new_id, width=15, font=('黑体', 15)).place(x=110, y=60)
tk.Entry(z1, textvariable=new_name, width=15, font=('黑体', 15)).place(x=110, y=100)
tk.Entry(z1, textvariable=new_password, width=15, font=('黑体', 15)).place(x=110, y=140)
tk.Entry(z1, textvariable=new_yanzhen, width=15, font=('黑体', 15)).place(x=110, y=180)
# 注册按钮
tk.Button(z1, command=lambda: addAdmir(new_id, new_name, new_password, new_yanzhen), text='确定注册', font=('黑体', 10), width=10).place(x=130, y=240)
z2.pack()
z1.mainloop() # 开启窗口语句
# 输入框组件代码
tk.Entry(self.page, textvariable=self.password).grid(row=2, column=2)
tk.Button(self.page, text='登录', command=login).grid(row=3, column=1, pady=10)
# 注册按钮
tk.Button(self.page, text='注册', command=zc).grid(row=3, column=2)
class MainPage:
def __init__(self, master: tk.Tk): # 听不懂
self.dl_window = master
self.dl_window.title('图书管理系统')
# 主界面大小
self.dl_window.geometry('600x400')
self.create_page()
# 菜单按钮的创建
def create_page(self):
# 查找产品页面
self.search_frame = SearchFrame(self.dl_window)
# 添加产品页面
self.insert_frame = InsertFrame(self.dl_window)
# 删除产品页面
self.delete_frame = DeleteFrame(self.dl_window)
# 修改产品页面
self.change_frame = ChangeFrame(self.dl_window)
self.search_frame_u = SearchUFrame(self.dl_window)
# 删除用户页面
self.delete_frame_u = DeleteUFrame(self.dl_window)
# 查看供应商界面
self.search_frame_g = SearchGFrame(self.dl_window)
# 删除供应商页面
self.delete_frame_g = DeleteGFrame(self.dl_window)
self.searchg = SearchFrameg(self.dl_window)
self.searchd = SearchFramed(self.dl_window)
menubar = tk.Menu(self.dl_window)
menubar.add_command(label='查询产品', command=self.show_search)
menubar.add_command(label='添加产品', command=self.show_insert)
menubar.add_command(label='删除产品', command=self.show_delete)
menubar.add_command(label='修改产品', command=self.show_change)
menubar.add_command(label='查看用户', command=self.show_search_u)
menubar.add_command(label='注销用户', command=self.show_delete_u)
menubar.add_command(label='查看供应商', command=self.show_search_g)
menubar.add_command(label='注销供应商', command=self.show_delete_g)
menubar.add_command(label='查看订单表', command=self.show_searchd)
menubar.add_command(label='查看供应表', command=self.show_searchg)
self.dl_window['menu'] = menubar
def show_search(self):
self.search_frame.pack(fill=tk.BOTH, expand=True)
# 隐藏上一界面
self.insert_frame.pack_forget()
self.delete_frame.pack_forget()
self.change_frame.pack_forget()
self.search_frame_u.pack_forget()
self.delete_frame_u.pack_forget()
self.search_frame_g.pack_forget()
self.delete_frame_g.pack_forget()
self.searchd.pack_forget()
self.searchg.pack_forget()
def show_insert(self):
self.insert_frame.pack()
# 隐藏上一界面
self.change_frame.pack_forget()
self.delete_frame.pack_forget()
self.search_frame.pack_forget()
self.search_frame_u.pack_forget()
self.delete_frame_u.pack_forget()
self.search_frame_g.pack_forget()
self.delete_frame_g.pack_forget()
self.searchd.pack_forget()
self.searchg.pack_forget()
def show_delete(self):
self.delete_frame.pack()
# 隐藏上一界面
self.
阅读全文
相关推荐


















