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算法学习之基数排序实例
Dec 18 Python
python实现2014火车票查询代码分享
Jan 10 Python
在Python中使用dict和set方法的教程
Apr 27 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
python神经网络编程实现手写数字识别
May 27 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
详解Python生成器和基于生成器的协程
Jun 03 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
php的计数器程序
2006/10/09 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
浅谈php7的重大新特性
2015/10/23 PHP
javascript 数组学习资料收集
2010/04/11 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
Python入门之modf()方法的使用
2015/05/15 Python
python3图片文件批量重命名处理
2019/10/31 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
理工大学毕业生自荐信
2013/11/01 职场文书
采购内勤岗位职责
2013/12/10 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
公积金单位接收函
2014/01/11 职场文书
保护地球的宣传语
2015/07/13 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL