python实现图书管理系统(超详细)
创始人
2024-05-28 11:09:53
0

python实现图书管理系统

图书管理系统

    • python实现图书管理系统
          • 图书管理系统:
          • 图书的功能:
          • 现在开始添加数据:
      • 增加数据
      • 删除数据
      • 查询数据
      • 图书位置修改
      • 图书的借出
      • 图书的还回
      • 主体界面
      • 完整代码
      • 功能运行截图

实验环境:PyCharm 2021.1.3 x64 专业版
在这里插入图片描述

图书管理系统:

数据的存储 系统的功能
图书的数据:

图书id(每一个id对应一本书)
图书名称
图书位置
图书是否借出

接下来便是数据的存储,数据的存储有链接: 列表, 元组,字典等,在本次图书管理系统中,我们使用字典进行存储,一般情况下,复杂的数据存储建议使用字典存储。后期学习完文件操作后,可以将数据存储到文件中,方便使用。在本次实验中,基本上每行代码都有相应的注释,方便读者阅读,如果遇到什么不懂的问题可以私信我,我会帮忙解决滴!!

本次实验中,我会将模块分开一个一个提出来讲解,方便读者理解。

图书信息在字典中的存储形式:

图书id作为key
图书名称,图书位置,图书是否借出作为value

字典存储数据也是有缺点的,不能持久化的存储数据,只能在内存中临时使用。

图书的功能:

图书功能一般都是增删改查四大功能
增:图书添加
删:图书删除
改:图书位置修改(图书id 图书名称 不能修改)
查:图书查询(图书信息查询)
图书信息查询包括:
图书id查询 图书名称查询 图书位置查询
再增加一个功能 图书的借出和归还功能

在这里插入图片描述
在这里插入图片描述

现在开始添加数据:
books_dict = {}
数据先存储到字典中

存储那些数据包括:
图书id 图书名称 图书位置

增加数据

第一步:
创建增加图书功能
代码如下:

def add_book():"""增加图书信息"""book_id = input("请输入书的id:")  # keybook_name = input("请输入书的名称:")  # valuebook_position = input("请输入书的位置:")  # valueis_lend = False  # 是否借出books_dict[book_id] = {"book_name": book_name,"book_position": book_position,"is_lend": is_lend}  # 将输入的图书信息存储到字典print(f"数据添加完成:{books_dict}:{books_dict[book_id]}")  # 显示添加数据后的信息

删除数据

删除数据,通过查询id删除
代码如下:


def del_book():"""删除图书信息"""book_id = input("请输入书的id:")book_info = books_dict[book_id]   # 通过key获取字典的数据 字典数据的获取del books_dict[book_id]           # 删除字典里面指定key数据  字典print(f"删除图书:{book_id}:{book_info}")

查询数据

查找图书信息
包括:查找详细的图书,查找已经借出的图书,查看所有的图书信息
代码如下:

def select_book(): # 查找详细的图书 查找已经借出的图书 查看所有的图书信息"""查找图书的信息"""print("1:查找详细的图书 2:查找已经借出的图书 3:查看所有的图书信息")sub_code = input("请您输入需要使用的功能:")if sub_code == "1":book_id = input("请输入书的id:")print(books_dict[book_id])      # 通过key获取字典key相关的数据elif sub_code == "2":for i in books_dict.items():   # 字典课程 字典操作方法if i[1]["is_lend"]:        # 筛选字典的数据 i[1] 字符串的操作 字符串的索引print(i)elif sub_code == "3":for i in books_dict.items():print(i)

图书位置修改

在前面说过,图书id,图书名称是唯一的,不能修改,所以我们能修改的只有图书的位置。
代码如下:

def modify_book():"""图书位置的修改"""    # 字典数据的修改book_id = input("请输入书的id:")  # keybook_position = input("请输入书存放新的位置:")books_dict[book_id]['book_position'] = book_positionprint(f"修改后的数据:{book_id}:{books_dict[book_id]}")

图书的借出

通过id进行图书的借出(如果通过图书名称,会出现错误,因为名称相同的图书可能不止一本。)

def lend_book():"""图书的借出"""book_id = input("请输入书的id:\n")books_dict[book_id]["is_lend"] = True

图书的还回

通过图书的id进行还回

def give_back():"""图书的还回"""book_id = input("请输入书的id:\n")books_dict[book_id]["is_lend"] = False

主体界面


while True:  # while 循环print("-" * 60)     # * 复制容器里面的数据print("1:图书添加  2:图书删除 3:图书位置修改 \n ""4:图书借出  5:图书还回 6:图书信息查看  7:退出系统")func_code = input("请您输入需要是使用的功能:")print("-" * 60)# func_dict = {"1": add_book}# 这么写可以让我们以更简单的方式来访问字典中的函数。而不是用字典中的字符串指定函数,我们可以直接用字典中的整数访问函数。if func_code == "1":  # func_code 需要注意输入的数据类型add_book()        # 函数的调用elif func_code == "2":del_book()elif func_code == "3":modify_book()elif func_code == "4":lend_book()elif func_code == "5":give_back()elif func_code == "6":select_book()elif func_code == '7':break        # 循环里面的关键字  只能在循环里面使用else:print("输入的选项id无效!")
';

完整代码

def add_book():"""增加图书信息"""book_id = input("请输入书的id:")  # keybook_name = input("请输入书的名称:")  # valuebook_position = input("请输入书的位置:")  # valueis_lend = False  # 是否借出books_dict[book_id] = {"book_name": book_name,"book_position": book_position,"is_lend": is_lend}  # 将输入的图书信息存储到字典print(f"数据添加完成:{books_dict}:{books_dict[book_id]}")  # 显示添加数据后的信息def del_book():"""删除图书信息"""book_id = input("请输入书的id:")book_info = books_dict[book_id]   # 通过key获取字典的数据 字典数据的获取del books_dict[book_id]           # 删除字典里面指定key数据  字典print(f"删除图书:{book_id}:{book_info}")def select_book(): # 查找详细的图书 查找已经借出的图书 查看所有的图书信息"""查找图书的信息"""print("1:查找详细的图书 2:查找已经借出的图书 3:查看所有的图书信息")sub_code = input("请您输入需要使用的功能:")if sub_code == "1":book_id = input("请输入书的id:")print(books_dict[book_id])      # 通过key获取字典key相关的数据elif sub_code == "2":for i in books_dict.items():   # 字典课程 字典操作方法if i[1]["is_lend"]:        # 筛选字典的数据 i[1] 字符串的操作 字符串的索引print(i)elif sub_code == "3":for i in books_dict.items():print(i)def modify_book():"""图书位置的修改"""    # 字典数据的修改book_id = input("请输入书的id:")  # keybook_position = input("请输入书存放新的位置:")books_dict[book_id]['book_position'] = book_positionprint(f"修改后的数据:{book_id}:{books_dict[book_id]}")def give_back():"""图书的还回"""book_id = input("请输入书的id:\n")books_dict[book_id]["is_lend"] = Falsedef lend_book():"""图书的借出"""book_id = input("请输入书的id:\n")books_dict[book_id]["is_lend"] = Truewhile True:  # while 循环print("-" * 60)     # * 复制容器里面的数据print("1:图书添加  2:图书删除 3:图书位置修改 \n ""4:图书借出  5:图书还回 6:图书信息查看  7:退出系统")func_code = input("请您输入需要是使用的功能:")print("-" * 60)# func_dict = {"1": add_book}# 这么写可以让我们以更简单的方式来访问字典中的函数。而不是用字典中的字符串指定函数,我们可以直接用字典中的整数访问函数。if func_code == "1":  # func_code 需要注意输入的数据类型add_book()        # 函数的调用elif func_code == "2":del_book()elif func_code == "3":modify_book()elif func_code == "4":lend_book()elif func_code == "5":give_back()elif func_code == "6":select_book()elif func_code == '7':break        # 循环里面的关键字  只能在循环里面使用else:print("输入的选项id无效!")

功能运行截图

图书添加:
在这里插入图片描述
在这里插入图片描述

图书删除:
在这里插入图片描述
图书位置修改:
在这里插入图片描述
图书借出:
在这里插入图片描述
图书归还:
在这里插入图片描述
图书信息查看:
在这里插入图片描述
退出系统:在这里插入图片描述

在这里插入图片描述

“过去的33年里,我每天早上看着镜子问自己:“今天是我生命的最后一天吗?我是否要去做今天该做的事?”一天一天太多次是“不是”,我知道这需要改变…所有的事情——所有身外的期望,所有的骄傲,所有的对困难和失败的恐惧——这些东西在死亡面前立刻消失的无影无踪,只剩下真正重要的东西。想着自己即将死去,这是让我避免落入担心失去什么的陷阱里的最好的方法。”
—— Steve Jobs

相关内容

热门资讯

苹果系统安卓爱思助手,系统兼容... 你有没有发现,手机的世界里,苹果系统和安卓系统就像是一对欢喜冤家,总是各有各的粉丝,各有各的拥趸。而...
安卓系统占用很大内存,揭秘内存... 手机里的安卓系统是不是让你感觉内存不够用,就像你的房间堆满了杂物,总是找不到地方放新东西?别急,今天...
安卓系统p30,安卓系统下的摄... 你有没有发现,最近安卓系统P30在手机圈里可是火得一塌糊涂呢!这不,我就来给你好好扒一扒这款手机的那...
siri被安卓系统进入了,智能... 你知道吗?最近科技圈可是炸开了锅,因为一个大家伙——Siri,竟然悄悄地溜进了安卓系统!这可不是什么...
最强挂机系统和安卓区别,揭秘安... 亲爱的读者,你是否曾在游戏中遇到过这样的困扰:一边想要享受游戏带来的乐趣,一边又不想放弃手中的零食或...
安卓系统为什么设系统盘,保障稳... 你有没有想过,为什么安卓系统里会有一个叫做“系统盘”的东西呢?这可不是随便设置的,背后可是有大学问的...
王者怎么加安卓系统的,轻松提升... 你有没有想过,你的手机里那款超酷的王者荣耀,怎么才能让它更好地在你的安卓系统上运行呢?别急,今天就来...
安卓手机系统怎么开热点,共享网... 你有没有想过,当你身处一个没有Wi-Fi信号的地方,而你的安卓手机里却存满了精彩视频和游戏时,是不是...
安卓系统11的平板电脑,性能升... 你有没有发现,最近平板电脑市场又热闹起来了?没错,安卓系统11的新一代平板电脑正在悄悄地走进我们的生...
安卓手机系统创始人,安卓手机系... 你有没有想过,那些陪伴我们每天生活的安卓手机,它们的灵魂是谁赋予的呢?没错,就是那位神秘而又传奇的安...
安卓11系统速度提升,体验再升... 你知道吗?最近安卓系统又升级啦!这次可是直接跳到了安卓11,听说速度提升了不少呢!是不是很心动?那就...
安卓5.1原生系统设置apk,... 你有没有想过,你的安卓手机里那些看似普通的设置,其实隐藏着不少小秘密呢?今天,就让我带你一探究竟,揭...
手机安卓系统玩音游,畅享指尖音... 你有没有发现,现在手机上的游戏种类越来越丰富,尤其是音游,简直让人爱不释手!今天,就让我来给你详细介...
安卓系统与win10,系统融合... 你有没有想过,为什么你的手机里装的是安卓系统,而电脑上却是Windows 10呢?这两种操作系统,就...
苹果系统王者安卓系统可以登吗,... 你有没有想过,为什么苹果系统的手机那么受欢迎,而安卓系统的手机却也能在市场上占有一席之地呢?今天,咱...
安卓系统怎么重制系统还原,安卓... 手机用久了是不是感觉卡得要命,想给它来个大变身?别急,今天就来教你怎么给安卓手机重置系统,让它焕然一...
安卓9系统怎样应用分身,轻松实... 你有没有发现,手机里的APP越来越多,有时候一个APP里还要处理好多任务,分身功能简直就是救星啊!今...
获取安卓系统的ip地址,轻松获... 你有没有想过,你的安卓手机里隐藏着一个神秘的IP地址?没错,就是那个能让你在网络世界里找到自己的小秘...
LG彩电安卓系统升级,畅享智能... 你家的LG彩电是不是最近有点儿“闹别扭”,屏幕上时不时地跳出个升级提示?别急,今天就来给你详细说说这...
阴阳师安卓苹果系统,安卓与苹果... 亲爱的玩家们,你是否曾在深夜里,手握手机,沉浸在阴阳师的神秘世界?今天,就让我带你一起探索这款风靡全...