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日

相关文章

  • python实现从文件中读取数据并绘制成 x y 轴图形的方法

    下面我将为您详细讲解如何使用Python从文件中读取数据并绘制成XY轴图形的方法。整个过程可以分为以下几步: 读取数据文件 我们可以使用Python内置的open函数打开文件,然后使用readline()或readlines()方法读取整个文件或一行一行地读取文件中的数据。假设数据文件是一个.csv文件,它被存储在项目文件夹中的data子文件夹下,我们可以使…

    python 2023年6月3日
    00
  • Python中collections模块的基本使用教程

    下面是Python中collections模块的基本使用教程, 1. collections模块简介 collections模块是Python标准库中的一个模块,提供了一系列的容器类,实现了Python中没有的一些特定数据结构,例如:有序字典、命名元组等。使用这些容器类可以大大提高编码的效率,使得代码更加简洁、易读。 2. Counter计数器 Counte…

    python 2023年5月13日
    00
  • Python函数和文件操作详情

    Python函数和文件操作详情 Python函数 函数的定义 Python中的函数定义格式为:def function_name(parameters):。 其中 function_name 是你自定义的函数名,parameters 是函数需要输入的参数。 示例代码: def greet(name): print("Hello, " + …

    python 2023年6月2日
    00
  • python实现数独游戏 java简单实现数独游戏

    如果你想实现数独游戏,可以选择通过Python或者Java来完成。下面,我们就来详细讲解一下如何实现。 使用Python实现数独游戏 步骤1:设计数据结构 在实现数独游戏之前,我们需要先设计数据结构来表示数独谜题。在Python中,我们可以使用二维数组来表示一个9*9的数独格子。 sudoku = [ [3, 0, 6, 5, 0, 8, 4, 0, 0],…

    python 2023年6月3日
    00
  • 在 Python 中解码 unicode 字符串变量

    【问题标题】:decoding unicode string variables in Python在 Python 中解码 unicode 字符串变量 【发布时间】:2023-04-06 12:11:01 【问题描述】: 我正在使用 Python v2.7 中的 API 来获取字符串,其内容未知。内容可以是英语、德语或法语。分配给返回字符串的变量名称是“类…

    Python开发 2023年4月6日
    00
  • Python疫情数据可视化分析

    让我们来详细讲解一下Python疫情数据可视化分析的完整攻略吧。 简介 疫情数据是目前热门话题之一,通过可视化分析可以更好地呈现数据,并对疫情走向进行预测和分析。在本文中,我们会详细介绍如何使用Python进行疫情数据的可视化分析。 准备工作 在我们开始进行数据分析之前,需要先安装一些必要的Python库,主要包括: pandas:用于数据处理和清洗。 ma…

    python 2023年5月18日
    00
  • Pytest+Request+Allure+Jenkins实现接口自动化

    Pytest+Request+Allure+Jenkins是一种常用的接口自动化测试框架,它可以帮助我们快速、高效地进行接口测试。本文将介绍如何使用Pytest+Request+Allure+Jenkins实现接口自动化,并提供两个示例。 1. Pytest+Request+Allure+Jenkins框架搭建 1.1 安装Pytest Pytest是一个P…

    python 2023年5月15日
    00
  • 跟老齐学Python之啰嗦的除法

    在Python中,除法运算符/的结果可能会出现小数,这是因为Python默认使用浮点数进行除法运算。但是在某些情况下,我们需要使用整数进行除法运算,这时候就需要使用Python中的整除运算符//。 下面是“跟老齐学Python之啰嗦的除法”的完整攻略: 1. Python中的除法运算符 在Python中,除法运算符/的结果可能会出现小数,例如: >&g…

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