问题描述

    图书管理系统1.查询图书2.增加图书3.借阅图书4.归还图书5.退出系统

代码如下

# 书:书名,作者,状态,位置
# 管理系统:
class Book(object):def __init__(self, name, author, status, bookindex):self.name = nameself.author = authorself.status = statusself.bookindex = bookindexdef __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 1def 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('请输入正确选择')continuedef 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 bookelse:return Nonedef borrowBook(self):name = input('借阅图书名称: ')ret = self.checkBook(name)print(ret)if ret != None:if ret.status == 0:print('书籍《%s》已经借出' % name)else:ret.status = 0print('书籍《%s》借阅成功' % name)else:print('书籍《%s》不存在' % name)def returnBook(self):name = input('归还图书名称:')ret = self.checkBook(name)if ret != None:if ret.status == 0:ret.status = 1print('书籍《%s》归还成功' % name)print(ret)else:print('书籍《%s》未借出' % name)else:print('书籍《%s》不存在' % name)manager = BookManage()
manager.Menu()

运行结果如下

面对对象编程——用Python写一个图书管理系统相关推荐

  1. 用Mysql写一个图书管理系统并且可视化

    要用MySQL写一个图书管理系统需要先创建数据库和表,然后编写Java代码进行连接,查询,插入等操作.同时,为了方便用户操作,可以通过可视化工具将数据以表格或者图形的形式展示出来.以下是一个简单的My ...

  2. python面对对象编程------3:写集合类的三种方法

    写一个集合类的三种方法:wrap,extend,invent 一:包装一个集合类 class Deck: def __init__( self ): self._cards = [card6(r+1, ...

  3. python实现gui+mysql图书管理系统_用Python Django框架写一个图书管理系统LMS

    今天我会带大家真正写一个Django项目,对于入门来说是有点难度的,因为逻辑比较复杂,但是真正的知识就是函数与面向对象,这也是培养用Django思维写项目的开始 Django文件配置 Django模版 ...

  4. 用C语言写一个图书管理系统大作业

    c语言按照课程表应该已经结束了,但是竟然没有学习宏定义c语言指针也是简单的介绍了一下,没有太深入学习,这让我对学习的挺纳闷的,但是大作业该写还是要写的,没有用指针,但是老师要求的功能该实现的都实现了, ...

  5. 使用python写一个名片管理系统

    系统需求 * 1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 * 2. 用户用数字选择不同的功能 * 3. 根据功能选择,执行不同的功能 * 4. 用户名片需要记录用户的 **姓名**.** ...

  6. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  7. python编程小游戏-使用Python写一个小游戏

    引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...

  8. python写一个表白程序-用Python写一个表白神器让你脱单

    原标题:用Python写一个表白神器让你脱单 来自公众号:Python编程时光 今天是什么节日,就不用小明说了吧? 有女朋友的,该准备的礼物买了吗? 没有对象的,表白的套路学会了吗? 还没有?好吧,你 ...

  9. python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器

    用Python写一个简易的MP3播放器 前言 最近在学习Web.py框架的时候,了解了基本的Python连接数据库(MySQL)的方法.学完后,总想用它来干点啥,于是,就想能不能写一个MP3播放器.一 ...

最新文章

  1. 学完css3的总结,css3中常见的单位及总结
  2. 云计算管理三利器:Nagios、Ganglia和Splunk
  3. hdu 6035:Colorful Tree (2017 多校第一场 1003) 【树形dp】
  4. burg算法的matlab代码实现_导向滤波算法及其matlab代码实现
  5. 2010/9/12学习历程
  6. dll注入的一种方式
  7. 屏幕缩放比例 html,css如何自适应屏幕大小?
  8. STM32F4xx固件库分析
  9. CSS3颜色渐变整理
  10. JS匹配域名的正则表达式
  11. Go语言 有缓冲通道、协程池
  12. 大白话搞懂什么是同步/异步/阻塞/非阻塞
  13. SPI FLASH(W25Q128BV) 包含SPI工作原理
  14. 学计算机动漫设计软件,动漫设计需要学习哪些软件?
  15. 1.6 Mac安装Python开发环境
  16. 不收版面有稿费的100家杂志期刊
  17. “共轭”(conjugate)是什么意思?
  18. Java访问权限作用域介绍
  19. (5) 2004世界五百强企业
  20. 中国十大美女最多学校

热门文章

  1. 什么是假设检验(hypothesis test)?什么是正态性检验(normality test)?
  2. R语言构建xgboost模型:自定义损失函数(目标函数、loss function、object function)、评估函数(evaluation function)
  3. R语言基于随机森林进行特征选择(feature selection)
  4. R语言explore包进行探索性数据分析实战(EDA、exploratory data analysis):基于iris数据集
  5. Python时间转换函数:时间转化为时间戳、时间戳转化为时间、当前日期、当前时间、星期几、前面或者后面多少天、年、月、日等
  6. Kinesis、Streams and Firehose
  7. R计算数组的累计加和(Cumulative Sums)
  8. R字符串(Strings)转为日期类型(Dates)
  9. AR模型、MA(Moving Average)模型、ARMA模型、时间序列的定阶、ARIMA、SARIMAX
  10. An Error Correction and DeNovo Assembly Approach for Nanopore Reads Using Short Reads