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输出一个杨辉三角的例子
Jun 13 Python
Python实现基于HTTP文件传输实例
Nov 08 Python
python修改操作系统时间的方法
May 18 Python
使用pdb模块调试Python程序实例
Jun 02 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
django-rest-swagger的优化使用方法
Aug 29 Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 Python
python与c语言的语法有哪些不一样的
Sep 13 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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
一个php+js实时显示时间问题
2015/10/12 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
js实现动态时钟
2020/03/12 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
从零学Python之入门(四)运算
2014/05/27 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
windows支持哪个版本的python
2020/07/03 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
制药工程专业个人求职自荐信
2014/01/25 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
护士个人总结范文
2015/02/13 职场文书