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 相关文章推荐
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
pytorch 模型可视化的例子
Aug 17 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
python自动点赞功能的实现思路
Feb 26 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/12/21 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
javascript实现全角转半角的方法
2016/01/23 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
js仿360开机效果
2019/12/26 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python实现完整的事务操作示例
2017/06/20 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
Python分析学校四六级过关情况
2017/11/22 Python
python学生信息管理系统
2018/03/13 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
Python实现不规则图形填充的思路
2020/02/02 Python
详解如何修改python中字典的键和值
2020/09/29 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
学生个人求职自荐信格式
2013/09/23 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
z-index不起作用
2021/03/31 HTML / CSS
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
python中取整数的几种方法
2021/11/07 Python