|
4 months ago | |
---|---|---|
README.md | 4 months ago | |
books.csv | 4 months ago | |
borrowedbooks.csv | 4 months ago | |
users.csv | 4 months ago | |
说明3.26.txt | 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()