基于tkinter库的图书信息管理系统


源代码在最后哈!!!耐心翻到最后就有了!


项目成果展示视频如下: 

图书管理系统演示视频


项目简介

内容简述:
        1. 项目背景:
目前各种信息管理系统层出不穷,同时随着 python 语言成为最简单最好用
最方便的一门编程语言,很多人机交互界面都会用 python 语言来进行编写。基
于此,本组通过该图书管理系统锻炼自身 python 编程能力。
        2. 工作概述:
基于 python 语言和 tkinter 库,做出一个带有可视化人机交互页面的图书管
理系统,主要包括登录页,登录反馈,主界面,数据存储以及操作文件四部分。
        3. 最终结果描述:
最终实现:通过判断账户密码是否正确;区分管理员和普通用户;主界面
图书入库、信息展示查询,借阅图书,关于四个功能;通过前端用户操作影响
后端数据存储并反馈结果给前端;
相关技术:
        1. TKINTER 库的使用:
本项目主要使用 tkinter 库内方法来呈现界面,如 lable , entey , button 等方法
的各种运用,参数的定义(如 textvariable ,),界面各元素的排布等。
        2. 面向对象的编写方式:
本系统共五个程序文件,为了方便文件间分工明确以及方便调用,五个文
件皆以类的描述为主体,通过定义多个类,在类内定义所需变量和方法,来做
到模块调用,不同文件方法引用等功能。
        3. 后端数据存储方式:
由于前期数据较少,故目前采用 JSON 文件来进行存储用户密码数据、图书
信息数据、用户借阅数据等,后期数据较多,为方便查看起见,会更新为数据
库文件存储数据,如 mysql sqlite mongo 等数据库;
由于 json 文件以字典类型存储数据,故数据调用是采用字典的操作方式与
方法

项目程序环境构建

        本程序基于 python 语言,用到了 tkinter json 库以及 time 库,在 pycharm
编译器编写并运行成功。
        程序共分为五个程序文件(. PY )和三个数据库存储文件(. json )如下:
        使用说明:将压缩包内所有文件放到一个文件夹下,运行 LoginPage 程序文件即
可运行界面程序。通过在 pycharm 内打开 json 文件即可查看用户密码数据(登录时须
输入 users.json 文件中的账户名和密码,其中第一个字典内存储管理员账户密码)、借
阅数据( jieyue.json ),图书信息数据 (tuhsu.json) 等。

详细描述

方案/算法描述:

总体思路如图:

实现描述:

各程序文件功能以及调用:
         db.py: 负责读取以及写入三个数据存储 json 文件,读取文件数据反馈到前端用户
界面,以及将前端用户操作作用到 json 文件中。具体实现代码如下:
self.users=json.loads(open('users.json',mode='r',encoding='utf-8').read())
self.tushus=json.loads(open('tushus.json',mode='r',encoding='utf-8').read())
self.jieyues=json.loads(open('jieyue.json',mode='r',encoding='utf8').read())
(以读写方式打开三个数据文件)
    def baocun(self):
        with open("tushus.json", 'w', encoding='utf-8') as f:
            json.dump(self.tushus, f,ensure_ascii=False)
    def insert1(self,jys):
        self.jieyues.append(jys)
    def baocun1(self):
        with open("jieyue.json", 'w', encoding='utf8') as f:
            json.dump(self.jieyues, f,ensure_ascii=False)

(操作文件内数据所编写的方法)

         LoginPage.py: 该文件为主文件,给出一个登录界面,首先通过引用 db.py 文件内
类,来比较界面内输入的账户名以及密码在密码库中是否存在并给出登录反馈;若
为管理员则启动 MinaPage 文件,若为普通用户则启动 MinaPage2 文件。具体实
现代码以及运行结果如下:

 (登录界面)   

import tkinter as tk
from tkinter import messagebox
from db import db
from MinaPage import MianPage
from MinaPage2 import MianPage2

(引用库以及其他文件)

 (登陆失败显示的警告页)

tk.Label(self.page).grid(row=0,column=0)
tk.Label(self.page,text='账户:').grid(row=1,column=1)
tk.Entry(self.page,textvariable=self.username).grid(row=1,column=2)
tk.Label(self.page,text='密码:').grid(row=2,column=1,pady=10)
tk.Entry(self.page,textvariable=self.password).grid(row=2,column=2)
tk.Button(self.page,text='登录',command=self.login).grid(row=3,column=1,pady=10)
tk.Button(self.page,text='退出',command=self.page.quit).grid(row=3,column=2)

(登录界面的代码)

    def login(self):
        name=self.username.get()
        pwd=self.password.get()
        flag,message=db.check_login(name,pwd)
        if name=='admin' and pwd=='123456':
            print('管理员登录成功!')
            self.page.destroy()
            self.jianbie = 1
            MianPage(root)
        else:
            if flag:
                print('用户登陆成功!')
                self.page.destroy()
                MianPage2(root)
            else:
                messagebox.showwarning(title='警告', message=message)
(判断登录是否成功以及调用 db MianPage 文件的代码 )
MIanPage.py MianPage2.py
        1. 两文件唯一区别在于管理员所用的 MianPage 文件可以使用图书入库功能,而
MianPage2 文件无法点击图书入库按钮也就无法使用该功能。
        2. 此文件为主要界面文件,编写了主界面四个功能菜单的按钮,并且调用 views
文件来实现各个功能内具体内容。
        具体代码实现以及运行结果如下:(主界面菜单显示)

 

class MianPage:
    def __init__(self,master:tk.Tk):
        self.root=master
        self.root.title('图书信息管理系统 v0.0.1')
        self.root.geometry('600x400')
        self.create_page()


    def create_page(self):
        self.about_frame=AboutFrame(self.root)
        # tk.Label(self.about_frame,text='关于作品:本作品由tkinter制作').pack()
        # tk.Label(self.about_frame,text='关于作者:').pack()
        # tk.Label(self.about_frame, text='版权所有:').pack()

        self.jieyue_frame = jieyue_frame(self.root)
        # tk.Label(self.jieyue_frame, text='借阅图书界面').pack()

        self.Search_frame = SearchFrame(self.root)

        self.ruku_frame = RukuFrame(self.root)
        menubar= tk.Menu(self.root)
        menubar.add_command(label='图书入库',command=self.show_Ruku)
        menubar.add_command(label='信息查询',command=self.show_Search)
        menubar.add_command(label='借阅图书',command=self.show_jieyue)
        menubar.add_command(label='关于',command=self.show_about)
        self.root['menu']=menubar
        
    def show_about(self):
        self.ruku_frame.pack_forget()
        self.Search_frame.pack_forget()
        self.jieyue_frame.pack_forget()
        self.about_frame.pack()
    def show_jieyue(self):
        self.ruku_frame.pack_forget()
        self.Search_frame.pack_forget()
        self.jieyue_frame.pack()
        self.about_frame.pack_forget()
    def show_Search(self):
        self.ruku_frame.pack_forget()
        self.Search_frame.pack()
        self.jieyue_frame.pack_forget()
        self.about_frame.pack_forget()
    def show_Ruku(self):
            self.ruku_frame.pack()
            self.Search_frame.pack_forget()
            self.jieyue_frame.pack_forget()
            self.about_frame.pack_forget()

                        (调用 views 文件内方法来实现具体内容显现)

views.py:
        此文件负责四个功能的具体内容实现,具体代码和运行结果如下:(关于界面的代码以及结果显现)

(图书入库界面,调用了 db 文件来实现点击录入按钮使 tushu.json 文件加入输入的图书信息功能)

(信息查询界面,调用 db 文件来读取 tushu.json 文件内数据并显示在前端用户界
面)(借阅图书界面,调用 db 文件来使得点击确认借阅后可以将借阅记录存入
jieyue.json 文件中去)

 

(借阅图书界面,调用 db 文件来使得点击确认借阅后可以将借阅记录存入
jieyue.json 文件中去)

源代码点击下方链接:https://download.csdn.net/download/weixin_59559647/88063296

好的,我可以为您提供一些关于基于 Python Tkinter 实现图书管理系统的参考资料。 首先,你可以了解一下 Python Tkinter 的基础知识,比如如何创建窗口、标签、按钮、文本框等控件,以及如何为这些控件添加事件处理函数。你可以参考以下教程: - [Python Tkinter 教程(菜鸟教程)](https://www.runoob.com/python/python-tutorial.html) - [Python Tkinter 教程(官方文档)](https://docs.python.org/3/library/tkinter.html) 然后,你可以开始设计图书管理系统的功能和界面。图书管理系统通常包括以下几个模块: 1. 登录模块:用户需要输入用户名和密码才能进入系统。 2. 图书信息管理模块:包括添加、删除、修改、查询图书信息等功能。 3. 借阅管理模块:包括借阅、归还、续借、查询借阅信息等功能。 4. 用户管理模块:包括添加、删除、修改用户信息等功能。 5. 统计报表模块:可以生成各种统计报表,比如借阅情况、图书流通情况等。 你可以根据这些模块设计系统的界面和功能。下面是一些参考资料: - [Python 图书管理系统(GitHub)](https://github.com/Grumpenstiltskin/Python-Library-Management-System) - [Python 图书管理系统(CSDN)](https://blog.csdn.net/weixin_40778318/article/details/80798328) - [Python 图书管理系统(博客园)](https://www.cnblogs.com/yyds/p/6638973.html) 最后,你需要将界面和功能代码整合起来,实现一个完整的图书管理系统。这个过程可能需要一些时间和经验,但是你可以先从简单的功能开始实现,逐步完善系统。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦亦甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值