赞
踩
引言:(假装也不是一个大学生课设)在数字化和信息化快速发展的今天,图书管理系统成为了图书馆、学校及个人图书收藏管理中不可或缺的工具。这类系统不仅能有效地管理大量的图书资料,还能提高图书检索、借阅和归还的效率,极大地方便了读者和管理员。随着编程技术的进步,特别是Python语言的普及,开发一个功能全面且用户友好的图书管理系统已变得更加容易和高效。
目录
一个完备的图书管理系统应该具备以下几个核心功能:
本系统选择Python作为主要开发语言,因其简洁性、易学性及其丰富的库支持。本系统可以用于存储书籍信息,并提供方法来管理图书的增加、删除、显示和查询。该管理系统通过命令行与用户交互,用户可以通过简单的文本菜单进行操作。
系统采用三层架构:
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
类是管理书籍的核心类。它包含一个字典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()

跑过了,很好用
能救一个算一个吧,还缺啥跟我说!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。