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创建系统目录的方法

    创建系统目录是Python中非常常见的操作之一。下面我将详细讲解Python创建系统目录的方法,希望对您有所帮助。 方法一:使用os模块 Python自带的os模块提供了操作文件和文件夹的方法,可以使用其中的os.makedirs()函数创建新的目录。 import os # 创建一个新的目录 os.makedirs(‘/Users/username/Doc…

    python 2023年5月30日
    00
  • Python实现自动装机功能案例分析

    首先让我们来讲解“Python实现自动装机功能案例分析”的完整攻略。 1. 确定需求和工具 在实现自动装机功能前,我们需要明确自动装机的目标和要求。我们需要考虑以下因素: 基础环境:操作系统版本、硬件要求、软件要求等。 安装配置:包括系统配置、应用安装、插件安装、驱动安装等配置。 自定义配置:包括桌面配置、音视频设置、办公软件和开发工具等配置。 在考虑了上述…

    python 2023年5月19日
    00
  • python爬虫之urllib,伪装,超时设置,异常处理的方法

    Python爬虫之urllib攻略 在Python中,我们可以利用urllib库来进行网页爬取。本篇攻略将介绍如何通过urllib库进行网页爬取的相关内容,包括伪装、超时设置和异常处理等。下面,将对每一部分进行详细讲解。 伪装 在进行网页爬取时,有些网站可能会检测到你的爬虫身份,并将你的IP地址封锁。为了规避这一问题,我们需要进行伪装操作。 import u…

    python 2023年5月13日
    00
  • 一文带你掌握Pyecharts地理数据可视化的方法

    一文带你掌握 Pyecharts 地理数据可视化的方法 介绍 本文将为大家介绍如何使用 Pyecharts 实现地理数据可视化,帮助大家更好地掌握该库的使用方法。 前置知识 在学习本文之前,你需要掌握 Python 的基础知识,并且对 Pyecharts 库有一定的了解。如果你还没有掌握 Pyecharts 基本操作,可以先参考官方文档:Pyecharts …

    python 2023年6月3日
    00
  • Python 转换文本编码实现解析

    在Python中,我们可以使用不同的编码格式来表示文本数据。有时候,我们需要将文本数据从一种编码格式转换为另一种编码格式。本攻略将介绍如何使用Python转换文本编码实现解析。我们将提供两个示例,分别用于演示如何将文本从UTF-8编码转换为GBK编码和将文本从GBK编码转换为UTF-8编码。 将文本从UTF-8编码转换为GBK编码 以下是一个示例代码,用于将…

    python 2023年5月15日
    00
  • 解决pip install的时候报错timed out的问题

    以下是关于“解决pip install的时候报错timedout的问题”的完整攻略: 问题描述 在使用 pip 安装库时,有时会出现 timedout 错误,导致安装失败。本文将介绍如何解决这个问题。 解决方法 1. 更换 pip 源 有时候,pip 源可能会出现问题,导致安装失败。可以尝试更换 pip 源,使用国内的镜像源。示例代码如下: pip inst…

    python 2023年5月13日
    00
  • python编程开发之类型转换convert实例分析

    Python编程开发之类型转换convert实例分析 在Python编程中,类型转换是一项常见的操作,主要包括将不同类型的值转换为相同类型、将一种类型的值转换为另一种类型等。在本文中,我们将分析Python中常见的类型转换方法,并提供两个实例说明。 常见的类型转换方法 1. int() 将字符串或浮点数转换为整数。 示例: str_num = "1…

    python 2023年6月6日
    00
  • Python调用百度AI实现身份证识别

    Python调用百度AI实现身份证识别是一种智能化的身份识别技术,运用Python语言,可以利用百度AI平台提供的API接口,实现对身份证信息的快速识别。以下是关于该技术的完整攻略: 注册百度智能云账号,创建应用并获取API Key和Secret Key,并根据文档要求完成API接口授权。 安装Python第三方库和相应SDK,如re、os、requests…

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