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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
python 队列详解及实例代码
Oct 18 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
Python连接Redis的基本配置方法
Sep 13 Python
python3使用QQ邮箱发送邮件
May 20 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
Pycharm小白级简单使用教程
Jan 08 Python
浅谈keras中loss与val_loss的关系
Jun 22 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
收音机术语解释
2021/03/01 无线电
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
python二叉树的实现实例
2013/11/21 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
软件测试笔试题
2012/10/25 面试题
企业管理专业个人求职信范文
2013/09/24 职场文书
中学生差生评语
2014/01/30 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
教师批评与自我批评
2014/10/15 职场文书
小平您好观后感
2015/06/09 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL