Skip to content

📖 图书馆管理系统设计

一、系统功能

在设计图书馆管理系统时,首先要明确系统的基本功能。以下是一些核心功能,大家可以根据需要扩展:

  1. 添加书籍:向图书馆系统中添加新书籍。
  2. 删除书籍:删除不再需要的书籍。
  3. 借阅书籍:借出书籍时记录信息。
  4. 归还书籍:用户归还书籍时更新库存。
  5. 查询书籍:按书名或作者查询书籍的详细信息。
  6. 查看库存:查看当前图书馆的书籍库存情况。

二、数据结构

我们可以使用字典(dict)来存储书籍的信息。每本书籍的信息可以包含:书名、作者、出版社、出版年份和库存数量。比如:

python
books = {
    "Python编程": {"author": "John Doe", "publisher": "TechPress", "year": 2020, "stock": 10},
    "数据结构": {"author": "Jane Smith", "publisher": "CompSci Publications", "year": 2018, "stock": 5},
    "机器学习基础": {"author": "Tom Brown", "publisher": "AI Books", "year": 2019, "stock": 8},
    "人工智能导论": {"author": "Alice Green", "publisher": "Tech World", "year": 2021, "stock": 12},
    "大数据分析": {"author": "Mike White", "publisher": "Data Press", "year": 2017, "stock": 6},
    "操作系统概念": {"author": "Emily Clark", "publisher": "CompSci Publications", "year": 2016, "stock": 4},
    "网络安全与防护": {"author": "David Blue", "publisher": "Security Press", "year": 2020, "stock": 7},
    "Python高级编程": {"author": "Sarah Davis", "publisher": "TechPress", "year": 2022, "stock": 15},
    "数据库系统": {"author": "James Lee", "publisher": "Database Books", "year": 2015, "stock": 9},
    "计算机图形学": {"author": "Robert Black", "publisher": "Graphics Press", "year": 2018, "stock": 3},
}

三、功能实现

我们将通过一些简单的函数来实现这些功能。以下是每个功能的实现步骤:

1. 添加书籍

要向系统中添加书籍,我们可以定义一个 add_book 函数。这个函数需要接收书名、作者、出版社、出版年份和库存数量,然后将书籍信息添加到 books 字典中。

python
def add_book(title, author, publisher, year, stock):
    books[title] = {"author": author, "publisher": publisher, "year": year, "stock": stock}
    print(f"书籍《{title}》添加成功!")

2. 删除书籍

删除书籍时,我们可以定义 delete_book 函数。通过书名来查找书籍,并从 books 字典中删除。如果没有找到书籍,系统应该提示错误信息。

python
def delete_book(title):
    if title in books:
        del books[title]
        print(f"书籍《{title}》删除成功!")
    else:
        print("未找到该书籍!")

3. 借阅书籍

借阅书籍时,需要判断库存是否足够。如果库存大于0,我们就减少库存数量,并记录借阅信息。如果库存不足,系统应提示用户书籍不可借。

python
def borrow_book(title):
    if title in books and books[title]["stock"] > 0:
        books[title]["stock"] -= 1
        print(f"你已成功借阅《{title}》!")
    else:
        print("书籍不可借阅,库存不足。")

4. 归还书籍

归还书籍时,只需要增加相应书籍的库存数量。

python
def return_book(title):
    if title in books:
        books[title]["stock"] += 1
        print(f"书籍《{title}》归还成功!")
    else:
        print("未找到该书籍。")

5. 查询书籍

查询书籍的函数会根据书名来查找,并显示书籍的详细信息。如果没有找到书籍,系统将输出错误信息。

python
def query_book(title):
    if title in books:
        book = books[title]
        print(f"书名: {title}")
        print(f"作者: {book['author']}")
        print(f"出版社: {book['publisher']}")
        print(f"出版年份: {book['year']}")
        print(f"库存: {book['stock']}")
    else:
        print("未找到该书籍。")

6. 查看库存

我们可以定义一个 show_inventory 函数,列出图书馆中所有书籍的库存情况。

python
def show_inventory():
    print("当前库存:")
    for title, info in books.items():
        print(f"书名: {title}, 库存: {info['stock']}")

四、用户交互

为了让用户能够方便地使用这些功能,我们可以设计一个简单的菜单,用户通过输入选项来选择操作。每次操作完成后,系统应提供反馈信息。

python
def main_menu():
    while True:
        print("\n=== 欢迎使用图书馆管理系统 ===")
        print("1. 添加书籍")
        print("2. 删除书籍")
        print("3. 借阅书籍")
        print("4. 归还书籍")
        print("5. 查询书籍")
        print("6. 查看库存")
        print("0. 退出")
        
        choice = input("请输入您的选择: ")

        if choice == '1':
            title = input("请输入书籍名称: ")
            author = input("请输入作者: ")
            publisher = input("请输入出版社: ")
            year = int(input("请输入出版年份: "))
            stock = int(input("请输入库存数量: "))
            add_book(title, author, publisher, year, stock)

        elif choice == '2':
            title = input("请输入要删除的书籍名称: ")
            delete_book(title)

        elif choice == '3':
            title = input("请输入要借阅的书籍名称: ")
            borrow_book(title)

        elif choice == '4':
            title = input("请输入要归还的书籍名称: ")
            return_book(title)

        elif choice == '5':
            title = input("请输入要查询的书籍名称: ")
            query_book(title)

        elif choice == '6':
            show_inventory()

        elif choice == '0':
            print("退出系统。")
            break

        else:
            print("无效输入,请重新选择。")

五、完整程序

python
# 图书馆书籍信息存储
books = {
    "Python编程": {"author": "John Doe", "publisher": "TechPress", "year": 2020, "stock": 10},
    "数据结构": {"author": "Jane Smith", "publisher": "CompSci Publications", "year": 2018, "stock": 5},
    "机器学习基础": {"author": "Tom Brown", "publisher": "AI Books", "year": 2019, "stock": 8},
    "人工智能导论": {"author": "Alice Green", "publisher": "Tech World", "year": 2021, "stock": 12},
    "大数据分析": {"author": "Mike White", "publisher": "Data Press", "year": 2017, "stock": 6},
    "操作系统概念": {"author": "Emily Clark", "publisher": "CompSci Publications", "year": 2016, "stock": 4},
    "网络安全与防护": {"author": "David Blue", "publisher": "Security Press", "year": 2020, "stock": 7},
    "Python高级编程": {"author": "Sarah Davis", "publisher": "TechPress", "year": 2022, "stock": 15},
    "数据库系统": {"author": "James Lee", "publisher": "Database Books", "year": 2015, "stock": 9},
    "计算机图形学": {"author": "Robert Black", "publisher": "Graphics Press", "year": 2018, "stock": 3},
}

# 添加书籍
def add_book(title, author, publisher, year, stock):
    books[title] = {"author": author, "publisher": publisher, "year": year, "stock": stock}
    print(f"书籍《{title}》添加成功!")

# 删除书籍
def delete_book(title):
    if title in books:
        del books[title]
        print(f"书籍《{title}》删除成功!")
    else:
        print("未找到该书籍!")

# 借阅书籍
def borrow_book(title):
    if title in books and books[title]["stock"] > 0:
        books[title]["stock"] -= 1
        print(f"你已成功借阅《{title}》!")
    else:
        print("书籍不可借阅,库存不足。")

# 归还书籍
def return_book(title):
    if title in books:
        books[title]["stock"] += 1
        print(f"书籍《{title}》归还成功!")
    else:
        print("未找到该书籍。")

# 查询书籍
def query_book(title):
    if title in books:
        book = books[title]
        print(f"书名: {title}")
        print(f"作者: {book['author']}")
        print(f"出版社: {book['publisher']}")
        print(f"出版年份: {book['year']}")
        print(f"库存: {book['stock']}")
    else:
        print("未找到该书籍。")

# 查看库存
def show_inventory():
    print("当前库存:")
    for title, info in books.items():
        print(f"书名: {title}, 库存: {info['stock']}")

# 主菜单
def main_menu():
    while True:
        print("\n=== 欢迎使用图书馆管理系统 ===")
        print("1. 添加书籍")
        print("2. 删除书籍")
        print("3. 借阅书籍")
        print("4. 归还书籍")
        print("5. 查询书籍")
        print("6. 查看库存")
        print("0. 退出")
        
        choice = input("请输入您的选择: ")

        if choice == '1':
            title = input("请输入书籍名称: ")
            author = input("请输入作者: ")
            publisher = input("请输入出版社: ")
            year = int(input("请输入出版年份: "))
            stock = int(input("请输入库存数量: "))
            add_book(title, author, publisher, year, stock)

        elif choice == '2':
            title = input("请输入要删除的书籍名称: ")
            delete_book(title)

        elif choice == '3':
            title = input("请输入要借阅的书籍名称: ")
            borrow_book(title)

        elif choice == '4':
            title = input("请输入要归还的书籍名称: ")
            return_book(title)

        elif choice == '5':
            title = input("请输入要查询的书籍名称: ")
            query_book(title)

        elif choice == '6':
            show_inventory()

        elif choice == '0':
            print("退出系统。")
            break

        else:
            print("无效输入,请重新选择。")

# 启动系统
main_menu()

六、挑战

完成上述的基本功能后,可以增加更多的功能,比如:

  • 每个用户有自己的借书记录,最多只能借 3 本书。
  • 记录每本书的借阅历史,谁借了这本书,什么时候归还的。

💬 与我联系 QQ:774165314 | 微信:Yonas_Luo