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中用于处理字符串的center()方法
May 18 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
AUC计算方法与Python实现代码
Feb 28 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
Python Http请求json解析库用法解析
Nov 28 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
python中Mako库实例用法
Dec 31 Python
python 装饰器重要在哪
Feb 14 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 Python
Python如何配置环境变量详解
May 18 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中substr()函数参数说明及用法实例
2014/11/15 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
php新建文件的方法实例
2019/09/26 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
javascript表单正则应用
2017/02/04 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
Vue.js图片预览插件使用详解
2018/08/27 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
python调用fortran模块
2016/04/08 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
python生成器用法实例详解
2019/11/22 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
超市业务员岗位职责
2013/12/05 职场文书
学校班班通实施方案
2014/06/11 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android