首页 > 编程语言 >如何系统的学习Python——图书管理系统

如何系统的学习Python——图书管理系统

时间:2024-03-13 14:58:59浏览次数:30  
标签:name 管理系统 Python self title book books def 图书

一个典型的应用面向对象编程(OOP)概念的实际项目——图书管理系统。在这个项目中,我们可以设计多个类来表示不同的实体,如书籍、作者、图书馆、借阅者等,并通过这些类之间的关系来模拟现实生活中的图书管理流程。

以下是一个简单的图书管理系统的面向对象设计概念示例:

1. 类的设计:

Book 类:
class Book:
    def __init__(self, title, author, ISBN, copies_available):
        self.title = title
        self.author = author
        self.ISBN = ISBN
        self.copies_available = copies_available

    def borrow(self):
        if self.copies_available > 0:
            self.copies_available -= 1
            print(f"{self.title} borrowed successfully.")
        else:
            print(f"No copies of {self.title} available for borrowing.")

    def return_book(self):
        self.copies_available += 1
        print(f"{self.title} returned successfully.")
Author 类:
class Author:
    def __init__(self, name, nationality, birth_date):
        self.name = name
        self.nationality = nationality
        self.birth_date = birth_date

    def get_info(self):
        return f"{self.name}, born on {self.birth_date}, {self.nationality}"
Library 类:
class Library:
    def __init__(self, name, location):
        self.name = name
        self.location = location
        self.books = []

    def add_book(self, book):
        self.books.append(book)
        print(f"{book.title} added to the library.")

    def display_books(self):
        print("Books available in the library:")
        for book in self.books:
            print(f"- {book.title} by {book.author.name}")
Borrower 类:
class Borrower:
    def __init__(self, name, member_id):
        self.name = name
        self.member_id = member_id
        self.borrowed_books = []

    def borrow_book(self, book):
        book.borrow()
        self.borrowed_books.append(book)

    def return_book(self, book):
        book.return_book()
        self.borrowed_books.remove(book)

    def display_borrowed_books(self):
        print(f"{self.name}'s borrowed books:")
        for book in self.borrowed_books:
            print(f"- {book.title} by {book.author.name}")

2. 项目使用示例:

# 创建作者
author_jk_rowling = Author("J.K. Rowling", "British", "July 31, 1965")

# 创建图书
book_harry_potter = Book("Harry Potter and the Philosopher's Stone", author_jk_rowling, "9780747532743", 5)
book_python_crash_course = Book("Python Crash Course", Author("Eric Matthes", "American", "Unknown"), "9781593276034", 3)

# 创建图书馆
library = Library("City Library", "City Center")

# 添加图书到图书馆
library.add_book(book_harry_potter)
library.add_book(book_python_crash_course)

# 显示图书馆的图书
library.display_books()

# 创建借阅者
borrower_john = Borrower("John Doe", "B001")

# 借阅者借书
borrower_john.borrow_book(book_harry_potter)
borrower_john.borrow_book(book_python_crash_course)

# 显示借阅者的借书情况
borrower_john.display_borrowed_books()

# 借阅者还书
borrower_john.return_book(book_harry_potter)

# 显示更新后的图书馆的图书
library.display_books()

在这个图书管理系统中,每个类都代表了现实生活中的一个实体,并通过方法和属性来模拟它们之间的关系。这是一个简单的示例,实际项目中可能需要更复杂的模型和功能,但它演示了面向对象编程的基本概念如何应用于实际应用程序。

标签:name,管理系统,Python,self,title,book,books,def,图书
From: https://blog.csdn.net/SmiledrinkCat/article/details/136435850

相关文章

  • python Ai 应用开发基础训练,字符串,字典,文件,函数,装饰品,生成器(下)
    生成器的另一个示例,这个生成器功能是从大小生,生成斐波那契数列deffib(max):#定义一个函数fib,参数为maxa,b=0,1#初始化两个变量a和b,分别赋值为0和1n=0#初始化计数变量n为0whileb<max:#当b小于max时继续循环print(b)#打印当前的斐波......
  • 如何系统的学习Python——异常处理
    异常处理是在程序执行期间检测到的错误或异常情况的处理过程。在Python中,异常由try,except,else和finally语句来处理。以下是一个简单的介绍:1.try和except块:try:#可能会引发异常的代码块result=10/0#除零异常exceptZeroDivisionError:......
  • java面向全面发展的数计学院第二课堂与社团管理系统(ssm)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当前的教育体系中,第一课堂(即传统的课堂教学)虽然扮演着核心角色,但随着素质教育的深入推进和学生个性化发展需求的日益增长,第二课堂和社团活动逐渐显示出......
  • springboot/java/php/node/python企业微培训小程序【计算机毕设】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着科技的迅猛发展,移动互联网已成为企业培训的新阵地。传统的面对面培训模式因其时间、地点的限制性逐渐显得不够灵活,而小程序作为一种轻量级的应用,能够......
  • 4.MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕
    4.MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕学Python编程》)——跟老吕学Python编程一、下载MAC版Python1.Python官网2.MAC版Python下载网址二、在MAC安装Python1.在MAC安装Python2.阅读Python重要信息3.同意Python许可4.确认同意......
  • 基于Java+Vue+Mysql的门店管理系统(附配套文档和源码)【毕业设计分享】
          前言:门店管理系统是一个综合性的软件解决方案,旨在帮助门店高效地管理日常运营、提升服务质量、优化资源配置和增强决策能力。以下是您提到的各个管理模块的简要概述:门店管理:门店信息管理:记录门店的基本信息,如门店名称、地址、联系方式、营业时间等。门店布局管......
  • 基于Java+Vue+Mysql的WMS仓库管理系统(附配套文档和源码)【毕业设计分享】
          前言: WMS(WarehouseManagementSystem)仓库管理系统是一个用于优化仓库操作、提高效率和准确性的软件解决方案。以下是针对列出的WMS仓库管理系统的各个部分的简要描述:1.订单管理订单管理是WMS的核心功能之一,涉及处理、跟踪和完成客户订单。这包括:订单录入:......
  • 重新编译python(亲证有效)
    以下内容解决了我在python使用中出现的问题:Nomodulenamed_twinter源码编译源码编译是指将已经存在的源代码转换为可执行的机器代码的过程。对于Python这种解释型编程语言,重新编译源码意味着重新构建可执行的Python解释器。下面我将介绍一下源码编译和重新编译Python的具......
  • C++图书管理案例
    Book类存储一本图书信息。classBook{public:stringbookId;stringtitle;floatprice;//构造函数Book(stringmyBookId,stringmyTitle,floatmyPrice){bookId=myBookId;title=myTitle;price=myPrice;......
  • Python之Web开发中级教程----搭建Web框架二
    Python之Web开发中级教程----搭建Web框架二搭建虚拟环境虚拟环境的作用虚拟环境可以搭建独立的python运行环境,使得单个项目的运行环境与其它项目互不影响.搭建虚拟环境 (1)安装sudopipinstallvirtualenvsudopipinstallvirtualenvwrapper(2)配置环境变量1)创建......