|
|
'''
|
|
|
以下为主要需要涵盖的版块
|
|
|
|
|
|
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本还书时间限制延长一个周
|
|
|
import tkinter as tk
|
|
|
|
|
|
|
|
|
def find_user():
|
|
|
username = text_user.get()
|
|
|
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)
|
|
|
|
|
|
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() |