You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
p2apfqmgs a8617d84a6
Update books.csv
4 months ago
README.md Update README.md 4 months ago
books.csv Update books.csv 4 months ago
borrowedbooks.csv ADD file via upload 4 months ago
users.csv ADD file via upload 4 months ago
说明3.26.txt ADD file via upload 4 months ago

README.md

''' 以下为主要需要涵盖的版块

1图书类型管理实现对图书分类的灵活定义与调整便于图书资源的分类存储与检索。这可以通过数据库表中的字段来实现例如在book表中添加type字段。 2图书信息管理包括图书的录入、编辑、删除及详细信息展示确保图书信息的准确无误。这通常涉及对book表的增删改查操作。 3图书借阅与归还功能支持用户在线申请借阅、查看借阅记录及归还图书简化借阅流程提高借阅效率。这可以通过创建borrow表来记录借书人ID、书名、作者和借书时间。 4用户账户管理包括用户注册、登录、信息修改及权限分配保障系统安全与用户隐私。可以使用user表来存储用户ID、密码和角色信息角色可以是0读者或1管理员。 5通知公告发布用于发布图书馆的最新动态、活动信息及借阅规则等增强与用户的沟通互动。

另外,我们还需要一个图形交互界面,这样显得比较专业

special 1.使用自定义对象:图书,用户 2.尝试连接数据库PostgreSQL 16.1通过Navicat管理来管理数据 ''' 3.24 做出以下调整: 1不用navicat,就用csv文件能做出东西就行1个学分不值得拼命 2还是需要一个图形界面这个是加分项 3增删改查都要全面 4用户只可以查管理员可以增删改这些建立在登录模块的基础上 5还有一个核心功能就是记录用户的借书记录书目时间应还时间 ''' 3.25 管理员2 1.关于图形界面tkinter库内容简单无需下载 2.关于管理权限将权限单独存为一个元组需要删改增需要最高权限管理员来做此模块应有1.校验用户名密码2.录入用户的基本信息如姓名、联系方式、借阅证号等记录用户的借阅历史包括借阅时间、归还时间、借阅图书等。3.管理权限并根据权限进入不同交互界面的主要功能 3.关于图书管理此模块应具有1.查找图书提供多种检索方式如按书名、作者、ISBN号、分类等查询图书信息。2.归还图书处理用户的借阅和归还请求更新图书的库存状态对逾期未还的图书进行提醒并计算罚款金额允许用户预约已借出的图书当图书归还时通知用户3.图书分类管理:对图书进行分类管理,如文学、科技、历史等,便于用户按类别查找图书。 以上为一个图书管理系统的主干,以下为附加内容: 1.安全性考虑 2.通过用户借阅图书推测出用户喜好并推荐图书 3.统计每种图书的借阅数量供下次买书参考 4.是否需要对用户等级进行分类比如借数超过50本还书时间限制延长一个周

3.26管理员1 1.具体的文件实施形式已用csv建立 2.归还时间实现方法: 只记录借书日期,读取当前日期,而后进行计算 3.搜索isbn只支持精确搜索书名应支持模糊搜索我们可以尝试把在那个成语的模糊查询功能做到书名搜索里 4.如果有条件,再做一个分类筛选功能 import tkinter as tk def find_user(): username = text_user.get(text_user.curselection()) password = text_password.get()

简单验证(仅作为示例)

if username and password: result_label.config(text=f'谢谢, {username}!') else: result_label.config(text='请输入用户名和密码!')

window = tk.Tk() window.title('图书管理系统') window.geometry('400x500')

label_prompt = tk.Label(window, text='请输入您的用户名和密码', bg='green', font=('Arial', 12), width=20, height=2) label_prompt.pack(pady=10)

frame_inputs = tk.Frame(window) frame_inputs.pack(pady=10)

label_username = tk.Label(frame_inputs, text='用户名:', font=('Arial', 12)) label_username.grid(row=0, column=0, padx=5, pady=5)

text_user = tk.Entry(frame_inputs, font=('Arial', 12))

text_user.grid(row=0, column=1, padx=5, pady=5)

text_user = tk.Listbox(frame_inputs, font=('Arial', 12)) usernames = ['user_1', 'user_2', 'user_3', 'admin_1'] for user in usernames: text_user.insert(tk.END, user) text_user.grid(row=0, column=1, padx=5, pady=5)

label_password = tk.Label(frame_inputs, text='密码:', font=('Arial', 12)) label_password.grid(row=1, column=0, padx=5, pady=5)

text_password = tk.Entry(frame_inputs, font=('Arial', 12), show='*') text_password.grid(row=1, column=1, padx=5, pady=5)

button_confirm = tk.Button(window, text='确认', bg='green', width=15, height=2, command=find_user) button_confirm.pack(pady=20)

result_label = tk.Label(window, text='', bg='green', font=('Arial', 12), width=20, height=2) result_label.pack(pady=10)

window.mainloop()