python代码实现图书管理系统


Posted in Python onNovember 30, 2020

本文实例为大家分享了python代码实现图书管理系统的具体代码,供大家参考,具体内容如下

图书管理系统

python代码实现图书管理系统

功能简介

  • 添加图书时,图书ID不能重复,图书名可重复
  • 删除,查询,修改功能,输入图书名之后提供所有的同名的图书,用户可以按照图书序号对具体的一本书进行操作
  • 显示书籍,分行显示,每行一本书的信息

书籍信息以如下格式保存在txt文本文件格式下

python代码实现图书管理系统

源代码

#-*- coding=utf8 -*- 
# @author:sololi
# date: 2020/11/12
# 文件说明 : data
import sys
def print_muen():
 print("----菜单提示----")
 print("[1]:添加图书")
 print("[2]:查询图书")
 print("[3]:删除图书")
 print("[4]:修改图书信息")
 print("[5]:显示所有图书")
 print("[6]:退出")

def add_book():
 book_id=input("请输入图书编号")
 book_name=input("请输入图书名称")
 book_loc=input("请输入图书位置")
 for i in books:
 if book_id==i["book_id"]:
 print("编号重复")
 break
 else:
 book={}
 book["book_id"]=book_id
 book["book_name"]=book_name
 book["book_loc"]=book_loc
 books.append(book)
 new_file(books)
 print("添加成功")

def find_book():
 jg=0
 while True:
 book_name=input("输入要找的书名")
 for i in books:
 if book_name==i["book_name"]:
 print(i)
 jg=1
 if jg==0:
 print("查找失败请重新输入")
 continue
 elif jg==1:
 break

def dell_book():
 book_name =input("请输入图书书名")
 i=0
 j=0
 jg=0
 flag=[]
 while i<len(books):
 if books[i]["book_name"]==book_name:
 id=books[i]["book_id"]
 flag.append(id)
 print("图书编号:{}".format(id))
 jg=1
 i+=1
 if jg==0:
 print("找不到图书名")
 if jg==1:
 book_id=input("请输入删除的图书编号")
 i=0
 while j < len(flag):
 if flag[j] == book_id:
 while i < len(books):
  if books[i]["book_id"] == book_id:
  del books[i]
  new_file(books)
  print("删除成功")
  break
  i+=1
 break
 j+=1
 else:
 print("输入的编号有误")
 return books

def modify_book():
 book_name = input("请输入修改的图书名称")
 i = 0
 jg = 0
 flag = []
 while i < len(books):
 if books[i]["book_name"] == book_name:
 id = books[i]["book_id"]
 flag.append(id)
 print("本书图书编号:{}".format(id))
 jg = 1
 i += 1
 if jg == 0:
 print("找不到图书名")
 elif jg == 1:
 book_id = input("请输入修改的图书编号,或者其他需要修改的图书编号")
 for i in books:
 if book_id == i["book_id"]:
 New_id = input("新的图书编号")
 if New_id == i["book_id"]:
  print("输入编号重复")
  break
 else:
  New_name = input("新的图书名称")
  New_loc = input("新的图书位置")
  i["book_id"] = New_id
  i["book_name"] = New_name
  i["book_loc"] = New_loc
  new_file(books)
  break
 else:
 print("输入有误")

def all_book():
 for i in books:
 print(i)

def read_book(data):#将文本文件里的图书信息读取到books中
 f = open(data, mode="r", encoding="utf8")
 books = f.readlines()
 f.close()
 for i in range(0, len(books)):
 books[i] = eval(books[i].replace("\n", ""))
 return books

def new_file(books):#将books的内容更新到文本文件里
 i=0
 nf = open('data', 'w+',encoding='utf8') # 以清空原文本文件内容的方式打开文件写入
 while i<len(books):
 new=str(books[i])
 nf.write(new)
 if i !=len(books)-1:
 nf.write("\n")
 i+=1
 nf.close()

if __name__=="__main__":#主要流程
 while True:
 data="data"
 books=read_book(data)
 print_muen()
 choice=input("请输入您的选择")
 if choice=='1':
 add_book()
 all_book()
 elif choice=='2':
 find_book()
 elif choice=='3':
 dell_book()
 all_book()
 elif choice=='4':
 modify_book()
 all_book()
 elif choice == '5':
 all_book()
 elif choice == '6':
 print("感谢您的使用")
 sys.exit(0)
 else:
 print("您的输入有误,请重新输入")

还可以添加一个登录与注册系统:点击此处

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
python基础教程之匿名函数lambda
Jan 17 Python
python调用OpenCV实现人脸识别功能
May 25 Python
Python实现简单的用户交互方法详解
Sep 25 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
python事件驱动event实现详解
Nov 21 Python
python实现二维插值的三维显示
Dec 17 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
Apr 25 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 Python
AI:如何训练机器学习的模型
Apr 16 Python
python 爬虫网页登陆的简单实现
Nov 30 #Python
Prometheus开发中间件Exporter过程详解
Nov 30 #Python
python实现猜拳游戏项目
Nov 30 #Python
Python解析微信dat文件的方法
Nov 30 #Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 #Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 #Python
Python 微信公众号文章爬取的示例代码
Nov 30 #Python
You might like
一个php作的文本留言本的例子(二)
2006/10/09 PHP
php5中类的学习
2008/03/28 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
服装厂厂长职责
2013/12/16 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
七年级作文之游记
2019/12/11 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL