python编写图书管理系统

Python编写图书管理系统

简述

本文将介绍使用Python编写图书管理系统的完整攻略。图书管理系统是一种常见的信息管理系统,它可以对图书进行基本的管理和查询操作。Python作为一种高效、简洁的编程语言,适合用来编写此类小型应用程序。

开发环境

本文使用Python 3.6及以上版本进行开发,并在Windows、MacOS和Linux操作系统上测试通过。开发工具为Python自带的IDLE或者PyCharm。

设计思路

本文所述的图书管理系统是一个基于命令行操作的简单系统,实现了以下功能:

  • 输入新书的基本信息,包括书名、作者、ISBN编号、价格等
  • 修改已有图书的信息
  • 按照书名、ISBN编号或作者查询图书
  • 浏览系统中所有图书

基于这个功能需求,我们将采用面向对象的编程思路,设计以下类:

Book

封装了一个书籍的基本信息,包括书名、作者、ISBN编号、价格。该类有以下方法:

  • __init__(self, title, author, isbn, price) 用于初始化一个Book对象
  • getTitle(self) 返回书籍的标题
  • getAuthor(self) 返回书籍的作者
  • getISBN(self) 返回书籍的ISBN编号
  • getPrice(self) 返回书籍的价格
  • setTitle(self, title) 设置书籍的标题
  • setAuthor(self, author) 设置书籍的作者
  • setISBN(self, isbn) 设置书籍的ISBN编号
  • setPrice(self, price) 设置书籍的价格

Library

封装了一个图书馆的信息,包括所有书籍的列表。该类有以下方法:

  • __init__(self) 用于初始化一个Library对象
  • addBook(self, book) 向图书馆中添加一本书
  • removeBook(self, book) 从图书馆中移除一本书
  • searchByTitle(self, title) 按照书名查询书籍
  • searchByISBN(self, isbn) 按照ISBN编号查询书籍
  • searchByAuthor(self, author) 按照作者查询书籍
  • showAllBooks(self) 显示所有书籍

Menu

封装了一个文本菜单的信息,用于输出菜单项和处理用户输入。该类有以下方法:

  • __init__(self) 用于初始化一个Menu对象
  • showMenu(self) 输出菜单项
  • run(self) 处理用户输入

示例代码

Book类示例:

class Book:
    def __init__(self, title, author, isbn, price):
        self.title = title
        self.author = author
        self.isbn = isbn
        self.price = price

    def getTitle(self):
        return self.title

    def getAuthor(self):
        return self.author

    def getISBN(self):
        return self.isbn

    def getPrice(self):
        return self.price

    def setTitle(self, title):
        self.title = title

    def setAuthor(self, author):
        self.author = author

    def setISBN(self, isbn):
        self.isbn = isbn

    def setPrice(self, price):
        self.price = price

Library类示例:

class Library:
    def __init__(self):
        self.books = []

    def addBook(self, book):
        self.books.append(book)

    def removeBook(self, book):
        self.books.remove(book)

    def searchByTitle(self, title):
        results = []
        for book in self.books:
            if book.getTitle() == title:
                results.append(book)
        return results

    def searchByISBN(self, isbn):
        results = []
        for book in self.books:
            if book.getISBN() == isbn:
                results.append(book)
        return results

    def searchByAuthor(self, author):
        results = []
        for book in self.books:
            if book.getAuthor() == author:
                results.append(book)
        return results

    def showAllBooks(self):
        for book in self.books:
            print(f'Title: {book.getTitle()}')
            print(f'Author: {book.getAuthor()}')
            print(f'ISBN: {book.getISBN()}')
            print(f'Price: {book.getPrice()}')

Menu类示例:

class Menu:
    def __init__(self):
        self.library = Library()

    def showMenu(self):
        print("1. Add a new book")
        print("2. Remove a book")
        print("3. Search by title")
        print("4. Search by ISBN")
        print("5. Search by author")
        print("6. Show all books")
        print("0. Exit")

    def run(self):
        while True:
            self.showMenu()
            choice = int(input("Enter your choice: "))
            if choice == 1:
                title = input("Enter title: ")
                author = input("Enter author: ")
                isbn = input("Enter ISBN: ")
                price = float(input("Enter price: "))
                book = Book(title, author, isbn, price)
                self.library.addBook(book)
            elif choice == 2:
                title = input("Enter title to remove: ")
                books = self.library.searchByTitle(title)
                if len(books) == 0:
                    print("No book found!")
                else:
                    for book in books:
                        self.library.removeBook(book)
            elif choice == 3:
                title = input("Enter title to search: ")
                books = self.library.searchByTitle(title)
                if len(books) == 0:
                    print("No book found!")
                else:
                    for book in books:
                        print(f'Title: {book.getTitle()}')
                        print(f'Author: {book.getAuthor()}')
                        print(f'ISBN: {book.getISBN()}')
                        print(f'Price: {book.getPrice()}')
            elif choice == 4:
                isbn = input("Enter ISBN to search: ")
                books = self.library.searchByISBN(isbn)
                if len(books) == 0:
                    print("No book found!")
                else:
                    for book in books:
                        print(f'Title: {book.getTitle()}')
                        print(f'Author: {book.getAuthor()}')
                        print(f'ISBN: {book.getISBN()}')
                        print(f'Price: {book.getPrice()}')
            elif choice == 5:
                author = input("Enter author to search: ")
                books = self.library.searchByAuthor(author)
                if len(books) == 0:
                    print("No book found!")
                else:
                    for book in books:
                        print(f'Title: {book.getTitle()}')
                        print(f'Author: {book.getAuthor()}')
                        print(f'ISBN: {book.getISBN()}')
                        print(f'Price: {book.getPrice()}')
            elif choice == 6:
                self.library.showAllBooks()
            elif choice == 0:
                break
            else:
                print("Invalid choice!")

使用方法

将上述示例代码保存到三个不同的.py文件中(或者统一存放到一个.py文件中),并在终端中运行Menu类的run方法即可使用。

具体操作如下:

  1. 打开命令行或者终端,切换到.py文件所在的目录下
  2. 输入python xxx.py(xxx为你的.py文件名),运行程序
  3. 按照菜单提示进行选择,即可完成对图书的基本管理和查询操作

总结

通过本文的介绍,我们知道了使用Python编写图书管理系统的完整攻略。这是一个非常基础的小型应用程序,希望可以对初学者有所帮助。在实际开发中,还需要考虑数据持久化、用户权限等方面的问题,此处未作过多展开,需要读者自行完善。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python编写图书管理系统 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Pyscript使用本地Pyodide配置步骤

    下面是使用本地Pyodide配置Pyscript的详细攻略: 准备工作 在开始配置Pyodide之前,需要确保电脑已经安装Python和pip,并且pip版本在>=19.0。还需要确保电脑已经安装了Git,在命令行中可以通过输入git测试是否已经安装成功。另外,建议将Git添加到系统环境变量中,以免程序在执行时出错。 步骤一:克隆pyscript-rs…

    python 2023年5月20日
    00
  • 基于Python实现视频转字符画动漫小工具

    下面是详细讲解“基于Python实现视频转字符画动漫小工具”的完整攻略。 前言 本攻略旨在教会读者使用Python实现一个视频转字符画动漫小工具。通过阅读本攻略,读者将会了解以下内容: 如何使用Python读取视频文件 如何使用Python将视频帧转换成字符画 如何使用Python将字符画保存为动画 环境准备 操作系统:Windows、Linux或MacOS…

    python 2023年6月3日
    00
  • pyspark 读取csv文件创建DataFrame的两种方法

    当使用PySpark处理大规模数据时,常常需要从csv格式数据中读取数据。Pyspark提供了两种常用的方法来读取csv文件并创建DataFrame,分别是使用spark.read.csv()方法和通过spark.read.format()方法指定格式的方式。下面将分别详细讲解这两种方式的使用方法和示例。 方法1:使用spark.read.csv()方法 f…

    python 2023年6月3日
    00
  • Python教程通过公共键对不同字典进行排序示例详解

    那么本文将会详细讲解 “Python教程通过公共键对不同字典进行排序示例详解” 的完整攻略。在本文中,我将会向您介绍如何通过Python的方法对不同的字典进行排序,具体过程如下: 1. 首先,我们需要定义多个字典,这里我们定义了三个字典 dict1 = {‘apple’: 3, ‘banana’: 2, ‘orange’: 4} dict2 = {‘bana…

    python 2023年5月13日
    00
  • python机器学习库常用汇总

    以下是关于“Python机器学习库常用汇总”的完整攻略: 简介 Python是一种流行的编程语言,也是机器学习领域中最常用的语言之一。Python机器学习库提供了许多工具和算法,可以帮助开发人员快速构建和训练机器学习模型。在本教程中,我们将介绍Python机器学习库的常用汇总,并提供两个示例。 常用库 以下是Python机器学习库的常用汇总: NumPy:用…

    python 2023年5月14日
    00
  • 基于OpenCv实现的人脸识别(附Python完整代码)

    下面是详细的基于OpenCV实现的人脸识别攻略。 1. OpenCV介绍 OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,可以用于处理图像和视频等视觉任务。它可以在各种编程语言中进行使用,如C++、Python等,并且可以在Windows、Linux、Mac OS等多种操作系统中运行。 2. 环境…

    python 2023年5月19日
    00
  • Python办公自动化从Excel中计算整理数据并写入Word

    以下是Python办公自动化从Excel中计算整理数据并写入Word的完整实例教程。 目录 准备工作 读取Excel数据 计算Excel数据 整理数据并写入Word 完整代码 准备工作 在开始编写这个自动化脚本之前,我们需要安装两个依赖库xlrd和python-docx用于处理Excel和Word文件。 pip install xlrd python-doc…

    python 2023年5月13日
    00
  • Python使用sys.exc_info()方法获取异常信息

    当Python程序在运行过程中遇到异常时,我们可以使用try…except结构来捕获并处理异常。sys模块中的exc_info()方法可以用来获取当前异常的详细信息。 exc_info()方法返回一个元组,包括当前异常的类型、异常实例以及异常的traceback信息三个元素。我们可以通过访问该元组中的元素来获取具体的异常信息。 下面是exc_info()…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部