Python图书信息管理系统(完整代码)

        引言:(假装也不是一个大学生课设)在数字化和信息化快速发展的今天,图书管理系统成为了图书馆、学校及个人图书收藏管理中不可或缺的工具。这类系统不仅能有效地管理大量的图书资料,还能提高图书检索、借阅和归还的效率,极大地方便了读者和管理员。随着编程技术的进步,特别是Python语言的普及,开发一个功能全面且用户友好的图书管理系统已变得更加容易和高效。

目录

系统需求分析

技术选型

系统设计

数据模型设计

架构设计

核心代码实现

Book类

BookManager类

         主函数 main()

完整项目

使用效果


系统需求分析

一个完备的图书管理系统应该具备以下几个核心功能:

  • 图书管理:包括图书的添加、修改、删除和信息查询,能够记录图书的ISBN、标题、作者、出版社和库存等信息。
  • 借阅管理:实现图书借出和归还的管理,自动更新库存状态,记录借阅者信息和借阅时间。
  • 用户管理:区分管理员和普通用户,管理员具有全部管理权限,普通用户仅能查询图书和查看借阅状态。
  • 搜索功能:支持按书名、作者、ISBN等字段进行高效搜索。
  • 报表功能:自动生成图书借阅统计、库存报表等,帮助管理员快速获取图书流通和存储情况。

技术选型

        本系统选择Python作为主要开发语言,因其简洁性、易学性及其丰富的库支持。本系统可以用于存储书籍信息,并提供方法来管理图书的增加、删除、显示和查询。该管理系统通过命令行与用户交互,用户可以通过简单的文本菜单进行操作。

系统设计

数据模型设计
  • Book:存储图书信息,字段包括book_id, title, author, publisher, isbn, stock。
  • User:存储用户信息,字段包括user_id, username, password, role。
  • Borrow:存储借阅信息,字段包括borrow_id, book_id, user_id, borrow_date, return_date。
架构设计

系统采用三层架构:

  • 表示层:负责与用户交互,提供图形界面。
  • 业务逻辑层:处理图书、用户和借阅的业务逻辑。
  • 数据访问层:与数据库进行交互,实现数据的增删改查。

核心代码实现

Book类

Book类代表图书管理系统中的一个书籍条目。它包含四个属性:book_id, title, author, year_published,分别用于存储书籍ID、标题、作者和出版年份。此外,它还包括一个__str__方法,用于返回书籍的详细描述,方便打印和显示。

class Book:
    def __init__(self, book_id, title, author, year_published):
        self.book_id = book_id
        self.title = title
        self.author = author
        self.year_published = year_published

    def __str__(self):
        return f"书籍ID: {self.book_id}, 标题: '{self.title}', 作者: {self.author}, 出版年份: {self.year_published}"
BookManager类

BookManager类是管理书籍的核心类。它包含一个字典books来存储所有的书籍对象,其中键是book_id,值是Book对象。类中定义的方法包括:

  • add_book: 添加一本书到字典中。如果书籍ID已存在,则输出错误消息。
  • remove_book: 根据书籍ID删除一本书。如果书籍ID不存在,则输出错误消息。
  • show_all_books: 打印所有存储的书籍信息。
  • find_book: 根据书籍ID查找并显示一本书的信息。如果书籍ID不存在,则输出错误消息。
class BookManager:
    def __init__(self):
        self.books = {}

    def add_book(self, book):
        if book.book_id in self.books:
            print("错误: 此书籍ID已存在。")
        else:
            self.books[book.book_id] = book
            print(f"已添加: {book}")

    def remove_book(self, book_id):
        if book_id in self.books:
            del self.books[book_id]
            print(f"已删除书籍ID {book_id}")
        else:
            print("错误: 书籍ID未找到")

    def show_all_books(self):
        for book in self.books.values():
            print(book)

    def find_book(self, book_id):
        if book_id in self.books:
            print(f"找到书籍: {self.books[book_id]}")
        else:
            print("未找到书籍。")
主函数 main()

主函数负责创建BookManager实例并提供一个命令行界面,让用户可以通过输入选择执行不同的操作,如添加书籍、删除书籍、显示所有书籍、查询书籍和退出程序。这通过一个循环实现,循环内部处理用户的输入和相应的功能调用。

def main():
    book_manager = BookManager()
    while True:
        print("\n图书管理菜单:")
        print("1. 添加书籍")
        print("2. 删除书籍")
        print("3. 显示所有书籍")
        print("4. 查询书籍")
        print("5. 退出")
        choice = input("请输入选项: ")

        if choice == '1':
            book_id = input("请输入书籍ID: ")
            title = input("请输入书名: ")
            author = input("请输入作者名: ")
            year_published = input("请输入出版年份: ")
            book_manager.add_book(Book(book_id, title, author, year_published))
        elif choice == '2':
            book_id = input("请输入要删除的书籍ID: ")
            book_manager.remove_book(book_id)
        elif choice == '3':
            book_manager.show_all_books()
        elif choice == '4':
            book_id = input("请输入要查询的书籍ID: ")
            book_manager.find_book(book_id)
        elif choice == '5':
            print("正在退出...")
            break
        else:
            print("无效选项,请输入1至5之间的数字。")

完整项目

class Book:
    def __init__(self, book_id, title, author, year_published):
        self.book_id = book_id
        self.title = title
        self.author = author
        self.year_published = year_published

    def __str__(self):
        return f"书籍ID: {self.book_id}, 标题: '{self.title}', 作者: {self.author}, 出版年份: {self.year_published}"

class BookManager:
    def __init__(self):
        self.books = {}

    def add_book(self, book):
        if book.book_id in self.books:
            print("错误: 此书籍ID已存在。")
        else:
            self.books[book.book_id] = book
            print(f"已添加: {book}")

    def remove_book(self, book_id):
        if book_id in self.books:
            del self.books[book_id]
            print(f"已删除书籍ID {book_id}")
        else:
            print("错误: 书籍ID未找到")

    def show_all_books(self):
        for book in self.books.values():
            print(book)

    def find_book(self, book_id):
        if book_id in self.books:
            print(f"找到书籍: {self.books[book_id]}")
        else:
            print("未找到书籍。")

def main():
    book_manager = BookManager()

    while True:
        print("\n图书管理菜单:")
        print("1. 添加书籍")
        print("2. 删除书籍")
        print("3. 显示所有书籍")
        print("4. 查询书籍")
        print("5. 退出")
        choice = input("请输入选项: ")

        if choice == '1':
            book_id = input("请输入书籍ID: ")
            title = input("请输入书名: ")
            author = input("请输入作者名: ")
            year_published = input("请输入出版年份: ")
            book_manager.add_book(Book(book_id, title, author, year_published))
        elif choice == '2':
            book_id = input("请输入要删除的书籍ID: ")
            book_manager.remove_book(book_id)
        elif choice == '3':
            book_manager.show_all_books()
        elif choice == '4':
            book_id = input("请输入要查询的书籍ID: ")
            book_manager.find_book(book_id)
        elif choice == '5':
            print("正在退出...")
            break
        else:
            print("无效选项,请输入1至5之间的数字。")

if __name__ == "__main__":
    main()
使用效果

跑过了,很好用

能救一个算一个吧,还缺啥跟我说!

图书管理系统是一个常见的项目,通常用于管理图书馆的书籍信息,包括添加新书、借阅、归还和查询等功能。下面是一个简单的Python图书管理系统的基本框架示例,使用了字典来存储书籍信息: ```python class Book: def __init__(self, id, title, author, status="available"): self.id = id self.title = title self.author = author self.status = status class LibrarySystem: def __init__(self): self.books = {} # 添加新书 def add_book(self, book_id, title, author): if book_id not in self.books: new_book = Book(book_id, title, author) self.books[book_id] = new_book print(f"Book added successfully: {title} by {author}") else: print("A book with the same ID already exists.") # 借书 def borrow_book(self, book_id): if book_id in self.books and self.books[book_id].status == "available": self.books[book_id].status = "borrowed" print(f"{book_id} has been borrowed.") else: print("Invalid action or book is not available.") # 归还书 def return_book(self, book_id): if book_id in self.books and self.books[book_id].status == "borrowed": self.books[book_id].status = "available" print(f"{book_id} has been returned.") else: print("Invalid action or book is not borrowed.") # 查询书籍信息 def search_book(self, book_id): if book_id in self.books: book = self.books[book_id] print(f"Title: {book.title}, Author: {book.author}, Status: {book.status}") else: print("Book not found.") # 使用示例 library = LibrarySystem() library.add_book(1, "Python Crash Course", "Eric Matthes") library.borrow_book(1) library.search_book(1) ``` 这个例子只是一个基本版本,实际应用中可能会增加用户身份验证、错误处理等复杂功能,并可能采用数据库来持久化数据。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊昊该干饭了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值