PyQT5一起学做图书管理系统(10)借书还书功能

本文介绍了如何使用PyQT5构建图书管理系统的借书和还书功能。通过用户界面,系统根据用户输入的BookID进行信息匹配。借书时,系统会检查书籍是否存在、是否超过借阅上限、是否已借阅过该书,并更新相关表的数据。还书功能则会验证借阅记录,给出相应提示并更新数据库。
摘要由CSDN通过智能技术生成

PyQT5一起学做图书管理系统(10)普通用户界面

环境

系统:windows10系统
编辑器:Sublime3
编程语言:python3+pyqt5

前言

初始化数据库是必须的,参考第二节文章

借书逻辑分析

借书跟还书功能有点类似,都是采用的dialog来实现的,同时这个功能借鉴删除书籍的方法,只需输入BookID,就可以得到书籍全部信息。

借阅时,需要处理的逻辑:
- 用户输入的书号存在,就匹配信息给用户
- 不存在就点击借阅,给出警告
- 借阅书籍数已经达到上限5本 ,给出警告
- 不允许借阅同样的书
- 更新Book表信息的借阅次数,剩余可借阅书数
- 在User_Book表插入记录
- 借阅成功给出提示
 

程序代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-12-05 21:30:40
# @Author  : Jimy_Fengqi (jmps515@163.com)
# @Link    : https://blog.csdn.net/qiqiyingse/

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import qdarkstyle
import time
from PyQt5.QtSql import *
from db.userInfoManager import UserBookManager
from db.userInfoManager import BookDbManager
from db.userInfoManager import UserDbManager
import images

class borrowBookDialog(QDialog):
    borrow_book_success_signal = pyqtSignal()

    def __init__(self, userID, parent=None):
        super(borrowBookDialog, self).__init__(parent)
        self.userID = userID
        self.setUpUI()
        self.setWindowModality(Qt.WindowModal)
        self.setWindowTitle("借阅书籍")
        self.userbookdb=UserBookManager()   #借书记录
        self.bookdb=BookDbManager()         #书籍管理
        self.userdb=UserDbManager()         #用户管理

    def setUpUI(self):
        # 书名,书号,作者,分类,添加数量.出版社,出版日期
        # 书籍分类:哲学类、社会科学类、政治类、法律类、军事类、经济类、文化类、教育类、体育类、语言文字类、艺术类、历史类、地理类、天文学类、生物学类、医学卫生类、农业类
        BookCategory = ["哲学", "社会科学", "政治", "法律", "军事", "经济", "文化", "教育", "体育", "语言文字", "艺术", "历史"
            , "地理", "天文学", "生物学", "医学卫生", "农业"]
        self.resize(300, 400)
        self.layout = QFormLayout()
        self.setLayout(self.layout)

        # Label控件
        self.borrowStudentLabel = QLabel("借 阅 人:")
        self.borrowuserIDLabel = QLabel(self.userID)
        self.titlelabel = QLabel("  借阅书籍")
        self.bookNameLabel = QLabel("书    名:")
        self.BookIDLabel = QLabel("书    号:")
        self.authNameLabel = QLabel("作    者:")
        self.categoryLabel = QLabel("分    类:")
        self.publisherLabel = QLabel("出 版 社:")
        self.publishDateLabel = QLabel("出版日期:")

        # button控件
        self.borrowBookButton = QPushButton("确认借阅")

        # lineEdit控件
        self.bookNameEdit = QLineEdit()
        self.BookIDEdit = QLineEdit()
        self.authNameEdit = QLineEdit()
        self.categoryComboBox = QComboBox()
        self.categoryComboBox.addItems(BookCategory)
        self.publisherEdit = QLineEdit()
        self.publishTime = QLineEdit()

        self.bookNameEdit.setMaxLength(10)
        self.BookIDEdit.setMaxLength(6)
        self.authNameEdit.setMaxLength(10)
        self.publisherEdit.setMaxLength(10)

        # 添加进formlayout
        
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值