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

yipeiwu_com6年前Python基础

本文实例为大家分享了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当中的array数组对象实例详解

Python当中的array数组对象实例详解

计算机为数组分配一段连续的内存,从而支持对数组随机访问; 由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加。 数组的基本地址...

Python实现插入排序和选择排序的方法

Python实现插入排序和选择排序的方法

话不多说,让我们从最基本的排序算法开始吧 插入排序 如下图所示,插入排序的实现思路顾名思义,就是 不断地在一个已经是有序的数组中,寻找合适位置并插入新元素 。 具体实现步骤为: 首先我...

Django中使用第三方登录的示例代码

Django中使用第三方登录的示例代码

OAuth2.0是什么  OAuth的英文全称是Open Authorization,它是一种开放授权协议。OAuth目前共有2个版本,2007年12月的1.0版(之后有一个修...

Python脚本判断 Linux 是否运行在虚拟机上

在 WebHostingTalk 论坛上有些国外奸商会把虚拟机当作独立服务器卖,去年7月份的时候就有一位中国同胞上当受骗,并在 WHT 上发帖声讨,证据确凿,甚至连服务商自己也承认,回帖...

python单链表实现代码实例

链表的定义:链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。由于每个结点都包含了可以链接起来的地址信息,所以...