PyQT5一起学做图书管理系统(1)
前言
之前学了一段时间PyQT,然后一直想找个项目实战一下,大学的时候做过一些字典查询系统,然后现在想着升级一下,做一个图书管理系统,网上找了一些资料,顺带着再充实一下自己。
环境
系统:windows10系统
编辑器:Sublime3
编程语言:python3+pyqt5
需求
1.登陆界面
2.图书管理逻辑
3.图书入库出库逻辑
4.用户管理逻辑
5.用户借书还书逻辑
6.数据库设计
主要思路
首先是登陆界面,通过登陆界面登陆,直接根据账号区分管理员与用户
管理员可以管理书库的添加删除,添加删除用户,提升用户为管理员
普通用户借书,还书,查看自己的借阅状态
书籍则有名字,出版社,出版时间,数量,借阅状态等
数据设计
数据库存贮使用的是sqlite3,PyQt里面自带sqlite3模块,本次设计同时使用sqlite3模块和pyqt自带的sqlite3模块
CREATE TABLE IF NOT EXISTS user(
userid CHAR(10) PRIMARY KEY ,
Name VARCHAR(20),
Password CHAR(32),
IsAdmin BIT,
TimesBorrowed INT,
NumBorrowed INT
)"""
createUser_BookTableString = """
CREATE TABLE IF NOT EXISTS User_Book(
userid CHAR(10),
BookID CHAR(6) PRIMARY KEY,
BorrowTime DATE,
ReturnTime DATE,
BorrowState BIT
)"""
createBookTableString = """
CREATE TABLE IF NOT EXISTS Book(
BookName VARCHAR(30),
BookID CHAR(6),
Auth VARCHAR(20),
Category VARCHAR(10),
Publisher VARCHAR(20),
PublishTime DATE,
NumStorage INT,
NumCanBorrow INT,
NumBorrowed INT
)"""
createAddOrDropBookTableString = """
CREATE TABLE IF NOT EXISTS AddOrDrop(
BookID CHAR(6),
ModifyTime DATE,
AddOrDrop INT,
Numbers INT
)"""
User表
- StudentId:学号
- Name:姓名
- Password:密码
- IsAdmin:是否为管理员
- TimesBorrowed:借阅次数
- NumBorrowed:借阅数量
Book表
- BookName:书名
- BookId:书号
- Auth:作者
- CateGory:分类
- Publisher:出版社
- PublishTime:出版时间
- NumStorage:库存量
- NumCanBorrowed:可借量
- NumBorrowed:被借阅次数
User_Book表
- userid : 用户名
- BookID: 书号
- BorrowTime : 借阅时间
- ReturnTime : 归还时间,
- BorrowState : 借阅状态
AddOrDrop表
- BookID 书号
- ModifyTime 入库或者出库时间
- AddOrDrop 入库或者删除
- Numbers INT 书本数量