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中for循环的使用
Apr 14 Python
python编程实现希尔排序
Apr 13 Python
Python编写一个优美的下载器
Apr 15 Python
使用python 3实现发送邮件功能
Jun 15 Python
Python通用循环的构造方法实例分析
Dec 19 Python
Python日期时间Time模块实例详解
Apr 15 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 Python
Python目录和文件处理总结详解
Sep 02 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
django配置app中的静态文件步骤
Mar 27 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 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添加xml文档内容的方法
2015/01/23 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
vue-resourse将json数据输出实例
2017/03/08 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python开发之list操作实例分析
2016/02/22 Python
Python中pillow知识点学习
2018/04/30 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Keras搭建自编码器操作
2020/07/03 Python
详解python变量与数据类型
2020/08/25 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
西安当代医院管理研究院笔试题
2015/12/11 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
主题酒店策划书
2014/01/28 职场文书
大学生旅游业创业计划书
2014/01/29 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
旷课检讨书
2015/01/26 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书