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和bash统计CPU利用率的方法
Jul 10 Python
Python文本处理之按行处理大文件的方法
Apr 09 Python
对Python3中的input函数详解
Apr 22 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
Mar 02 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
如何使用Pytorch搭建模型
Oct 26 Python
Python中过滤字符串列表的方法
Dec 22 Python
用python自动生成日历
Apr 24 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
Python几种酷炫的进度条的方式
Apr 11 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
Vue实现日历小插件
2019/06/26 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
javascript的惯性运动实现代码实例
2019/09/07 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python实现对excel进行数据剔除操作实例
2017/12/07 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
关于python字符串方法分类详解
2019/08/20 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
大学生职业生涯规划范文
2013/12/31 职场文书
《我的第一本书》教学反思
2014/02/15 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
大学生见习报告总结
2014/11/04 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL