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使用cookie库操保存cookie详解
Mar 03 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
python3使用QQ邮箱发送邮件
May 20 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
python f-string式格式化听语音流程讲解
Jun 18 Python
python定位xpath 节点位置的方法
Aug 27 Python
flask实现验证码并验证功能
Dec 05 Python
python代码xml转txt实例
Mar 10 Python
django实现更改数据库某个字段以及字段段内数据
Mar 31 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 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(视频)Http下载
2006/12/12 PHP
php flv视频时间获取函数
2010/06/29 PHP
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
python 调用钉钉机器人的方法
2019/02/20 Python
公司前台接待岗位职责
2013/12/03 职场文书
社会学专业求职信
2014/02/24 职场文书
绩效工资实施方案
2014/03/15 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
音乐剧猫观后感
2015/06/04 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers