python面向对象法实现图书管理系统


Posted in Python onApril 19, 2019

本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下

需求:

图书管理系统

1.查询图书
2.增加图书
3.借阅图书
4.归还图书
5.退出系统
书:书名,作者,状态,位置

管理系统:

实现如下:

class Book(object):

 def __init__(self, name, author, status, bookindex):
  self.name = name
  self.author = author
  self.status = status
  self.bookindex = bookindex

 def __str__(self):
  if self.status == 1:
   stats = '未借出'
  elif self.status == 0:
   stats = '已借出'
  else:
   stats = '状态异常'
  return '书名: 《%s》 作者: %s 状态: <%s> 位置: %s' \
    % (self.name, self.author, stats, self.bookindex)


class BookManage(object):
 books = []

 def start(self):
  self.books.append(Book('python', 'guido', 1, 'ISO9001'))
  self.books.append(Book('c', '谭浩强', 1, 'NFS8102'))
  self.books.append(Book('java', 'westos', 1, 'PKA7844'))
  # 0:借出 1:存在
  # python 1
  # c 1
  # java 1

 def Menu(self):
  self.start()
  while True:
   print("""
      图书管理系统
  1.查询图书
  2.增加图书
  3.借阅图书
  4.归还图书
  5.退出系统
  """)

   choice = input('请选择:')

   if choice == '1':
    self.showAllBook()
   elif choice == '2':
    self.addBook()
   elif choice == '3':
    self.borrowBook()
   elif choice == '4':
    self.returnBook()
   elif choice == '5':
    print('欢迎下次使用...')
    exit()
   else:
    print('请输入正确选择')
    continue

 def showAllBook(self):
  for book in self.books:
   print(book)

 def addBook(self):
  name = input('图书名称:')
  self.books.append(Book(name, input('作者:'), 1, input('存储位置:')))
  print('图书《%s》增加成功' % name)

 def checkBook(self, name):
  for book in self.books:
   if book.name == name:
    return book
  else:
   return None

 def borrowBook(self):
  name = input('借阅图书名称: ')
  ret = self.checkBook(name)
  print(ret)

  if ret != None:
   if ret.status == 0:
    print('书籍《%s》已经借出' % name)
   else:
    ret.status = 0
    print('书籍《%s》借阅成功' % name)
  else:
   print('书籍《%s》不存在' % name)

 def returnBook(self):
  name = input('归还图书名称:')
  ret = self.checkBook(name)

  if ret != None:
   if ret.status == 0:
    ret.status = 1
    print('书籍《%s》归还成功' % name)
    print(ret)
   else:
    print('书籍《%s》未借出' % name)
  else:
   print('书籍《%s》不存在' % name)


manager = BookManage()
manager.Menu()

python面向对象法实现图书管理系统python面向对象法实现图书管理系统python面向对象法实现图书管理系统python面向对象法实现图书管理系统python面向对象法实现图书管理系统python面向对象法实现图书管理系统

验证如下:

python面向对象法实现图书管理系统python面向对象法实现图书管理系统python面向对象法实现图书管理系统python面向对象法实现图书管理系统python面向对象法实现图书管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python处理PHP数组文本文件实例
Sep 18 Python
Python中的pprint折腾记
Jan 21 Python
基于Python闭包及其作用域详解
Aug 28 Python
Python字符串格式化的方法(两种)
Sep 19 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 Python
使用Python在Windows下获取USB PID&amp;VID的方法
Jul 02 Python
python画图把时间作为横坐标的方法
Jul 07 Python
在notepad++中实现直接运行python代码
Dec 18 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
python远程连接MySQL数据库
Apr 19 #Python
详解Python匿名函数(lambda函数)
Apr 19 #Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 #Python
Python3中列表list合并的四种方法
Apr 19 #Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 #Python
python定时按日期备份MySQL数据并压缩
Apr 19 #Python
Python实现 版本号对比功能的实例代码
Apr 18 #Python
You might like
在IIS上安装PHP4.0正式版
2006/10/09 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
php并发加锁示例
2016/10/17 PHP
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
javascript操作css属性
2013/12/30 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
numpy找出array中的最大值,最小值实例
2018/04/03 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
Python魔术方法专题
2020/06/19 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
自荐信格式范文
2013/10/07 职场文书
高校毕业生登记表自我鉴定
2013/11/03 职场文书
毕业生面试求职信
2014/06/23 职场文书
导游词之广西漓江
2019/11/02 职场文书
Python实现简繁体转换
2021/06/07 Python
详解redis在微服务领域的贡献
2021/10/16 Redis
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS