python实现图书管理系统(带gui)_python图书管理系统

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

0. 简介

这是这学期一门关于python的课程的大作业我用了pyqt5来做界面实现了一个简单的图书管理系统其功能包括图书信息和读者信息的增删查找源代码放在最后。

1.实现思路与基本架构

该项目的实现主要经过了以下几步:

step1 界面设计

首先设计各个模块的位置以及界面的安排。经过考虑我设计了四个模块分别是图书信息维护、读者信息维护、图书信息查询、读者信息查询。
图书信息维护模块包含了图书信息的添加有从文件中添加和自己手动添加两种方式。读者信息维护也同理。
而图书信息查询模块则是输入要查询的图书信息在图书馆中进行图书的查阅输出图书的各种信息。读者信息查询也是一样的。

step2 数据结构设计

为了便于之后的操作数据结构我设置的比较精细。大体来说整个主程序(不包括界面部分)使用了三个类分别是Library类、reader类和book类。具体的数据结构框架如下图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

step3 相关函数接口编写

在定义完数据结构后需要对Library类定义一些方法便于后面与图形界面的交互操作。这里我写了一些操作接口包含drop_reader(),search_book()等操作。

step4 整合界面

这一步需要将之前写的界面和主程序进行整合并定义槽函数将主程序的函数与界面连接起来完成图形化交互。

2. 程序运行逻辑

程序的运行流程如下:

step1

利用pickle模块从数据中实例化Library类并实例化My_window类。

step2

用户在主菜单中点击相应的模块跳转到对应的frame

step3

在每个功能区等待用户输入数据输入数据完成点击button触发对应的事件函数并进行相应的数据操作。

step4

点击“退出系统”按键后利用pickle模块将图书馆实例保存到数据文件中下一次打开程序时会自动读取。

3. 操作说明

3.1 图书信息维护界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

该界面可以实现图书信息的批量读取以及单条信息的添加。
如果要批量读取图书信息只需将文件放入路径下的/data文件夹并输入对应文件名点击导入即可。
文件格式如下:

三体 978 重庆出版社 2008 刘慈欣
昆虫记 546 商务印书馆 2012 法布尔
童年 277 商务印书馆 2014 高尔基
电磁学 3-43 中国科学技术大学出版社 2017 叶邦角
量子力学学习指导 413 中国科学技术大学出版社 2019 张鹏飞
固体物理学 4834 高等教育出版社 1988 黄昆

如果需要添加单条读者信息只需要在对应输入框内写好图书信息点击添加图书即可。

3.2 读者信息维护界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述
操作方式同上。
读者信息文件格式如下

张三 13728574382 是
安义 15709122812 是
黄文 938123882 否
王子 289871912 是
何云零 13827005831 否

3.3 图书信息查询界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

该页面可以实现图书信息的查询图书的借阅、入库、出库、删除、修改
在输入要查询的图书信息后如果输入的信息正确将会显示查找到的图书并附带有一定的操作。

在这里插入图片描述

点击对应按钮可以对图书进行相应的操作。

3.4 读者信息查询界面

在这里插入图片描述

该界面可以实现读者借阅记录的查询读者信息的修改以及删除

用法同上。

源代码https://gitee.com/ignorejjj/book/tree/master

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python