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抓取豆瓣图片并自动保存示例学习
Jan 10 Python
Python open()文件处理使用介绍
Nov 30 Python
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
Python读取word文本操作详解
Jan 22 Python
Django如何配置mysql数据库
May 04 Python
python for循环remove同一个list过程解析
Aug 14 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
Feb 21 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
python爬取抖音视频的实例分析
Jan 19 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中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
浅谈php提交form表单
2015/07/01 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
js倒计时抢购实例
2015/12/20 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
ORACLE第二个十问
2013/12/14 面试题
啤酒销售实习自我鉴定
2013/09/24 职场文书
岗位职责定义及内容
2013/11/08 职场文书
八年级历史教学反思
2014/01/10 职场文书
《颐和园》教学反思
2014/02/26 职场文书
企业宗旨标语
2014/06/10 职场文书
团日活动总结怎么写
2014/06/25 职场文书
三月法制宣传月活动总结
2014/07/03 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
党支部评议意见
2015/06/02 职场文书
交通安全温馨提示语
2015/07/14 职场文书
导游词书写之黄山
2019/08/06 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python