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算法学习之计数排序实例
Dec 18 Python
python编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
Python发送form-data请求及拼接form-data内容的方法
Mar 05 Python
windows下python连接oracle数据库
Jun 07 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
pycharm显示远程图片的实现
Nov 04 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
matplotlib grid()设置网格线外观的实现
Feb 22 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
利用python获得时间的实例说明
2013/03/25 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
python中append实例用法总结
2019/07/30 Python
python和php哪个更适合写爬虫
2020/06/22 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
敬老月活动总结
2014/08/28 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
Go语言应该什么情况使用指针
2021/07/25 Golang
Redis Lua脚本实现ip限流示例
2022/07/15 Redis