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处理圆角图片、圆形图片的例子
Apr 25 Python
Python生成随机密码的方法
Jun 16 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
python在文本开头插入一行的实例
May 02 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
python下载卫星云图合成gif的方法示例
Feb 18 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 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多维数组去掉重复值示例分享
2014/03/02 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
php多进程应用场景实例详解
2019/07/22 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
python3人脸识别的两种方法
2019/04/25 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
本科毕业生自我鉴定
2013/11/02 职场文书
资料员岗位职责
2013/11/17 职场文书
五一促销活动总结
2014/07/01 职场文书
保密工作目标责任书
2014/07/28 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
2014年法务工作总结
2014/12/11 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
高中生军训感言
2015/08/01 职场文书
2016年主题党日活动总结
2016/04/05 职场文书