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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
Python合并多个Excel数据的方法
Jul 16 Python
Python使用贪婪算法解决问题
Oct 22 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 Python
python程序输出无内容的解决方式
Apr 09 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 Python
python tkinter模块的简单使用
Apr 07 Python
使用Django框架创建项目
Jun 10 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
thinkphp配置文件路径的实现方法
2016/08/30 PHP
实现PHP搜索加分页
2016/10/12 PHP
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python入门篇之函数
2014/10/20 Python
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
Python threading的使用方法解析
2019/08/28 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
Python模块future用法原理详解
2020/01/20 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
网吧收银员岗位职责
2013/12/14 职场文书
《四季》教学反思
2014/04/08 职场文书
公司捐款倡议书
2014/05/14 职场文书