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中unittest模块做UT(单元测试)使用实例
Jun 12 Python
浅谈五大Python Web框架
Mar 20 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
解决python3 json数据包含中文的读写问题
May 10 Python
Python中is和==的区别详解
Nov 15 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
django 通过URL访问上传的文件方法
Jul 28 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
python 模拟登陆163邮箱
Dec 15 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
JavaScript 创建对象
2009/07/17 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
python中使用while循环的实例
2019/08/05 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
django有哪些好处和优点
2020/09/01 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
python中@contextmanager实例用法
2021/02/07 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
接收函格式
2015/01/30 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
python tqdm用法及实例详解
2021/06/16 Python
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android