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中变量交换的例子
Aug 25 Python
Python玩转Excel的读写改实例
Feb 22 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
python实现指定ip端口扫描方式
Dec 17 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
python网络编程之五子棋游戏
May 14 Python
Python while true实现爬虫定时任务
Jun 08 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
基于Django集成CAS实现流程详解
Nov 28 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/12/21 PHP
PHP中的日期处理方法集锦
2007/01/02 PHP
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
Python输出各行命令详解
2018/02/01 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python实现打印实心和空心菱形
2019/11/23 Python
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
小学生家长评语集锦
2014/01/30 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
答辩状格式范本
2015/05/22 职场文书
地道战观后感
2015/06/04 职场文书
入党心得体会
2019/06/20 职场文书
详解python的异常捕获
2022/03/03 Python