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中sets模块的用法实例
Sep 30 Python
Python引用模块和查找模块路径
Mar 17 Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
Python求离散序列导数的示例
Jul 10 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
Python:type、object、class与内置类型实例
Dec 25 Python
Python requests上传文件实现步骤
Sep 15 Python
python文件路径操作方法总结
Dec 21 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
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
Python脚本实现代码行数统计代码分享
2015/03/10 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
python实现比较文件内容异同
2018/06/22 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Python更换pip源方法过程解析
2020/05/19 Python
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
热能动力工程毕业生自荐信
2013/11/07 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
2014年英语工作总结
2014/12/20 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android