图书馆管理系统
目录
- 项目概述
- 类定义
-Book类
-Library类 - 书籍管理功能
-添加书籍
-查找书籍
-借阅书籍
-归还书籍
-列出所有书籍 - 数据持久化
-保存书籍
-加载书籍 - 操作日志记录
- 图形用户界面(GUI)
-界面设计
-功能实现 - 代码原理总结
实现界面
:
book_id = self.book_id_counter
self.book_id_counter += 1
book = Book(book_id, title, author)
self.books.append(book)
self.save_books()
self.log_action("系统", book_id, "添加书籍")
查找书籍
原理:遍历书籍列表,查找与输入书名匹配的书籍,返回书籍对象。
def find_book(self, title):
for book in self.books:
if book.title.lower() == title.lower():
return book
return None
借阅书籍
原理:查找书籍并检查其借阅状态,若未借出则更新状态并记录日志。
def borrow_book(self, user_id, title):
book = self.find_book(title)
if book and not book.is_borrowed:
book.is_borrowed = True
self.save_books()
self.log_action(user_id, book.book_id, "借阅书籍")
return True
return False
归还书籍
原理:查找书籍并检查其借阅状态,若已借出则更新状态并记录日志。
def return_book(self, user_id, title):
book = self.find_book(title)
if book and book.is_borrowed:
book.is_borrowed = False
self.save_books()
self.log_action(user_id, book.book_id, "归还书籍")
return True
return False
列出所有书籍
原理:返回当前系统中所有书籍的列表。
def list_books(self):
return self.books
4. 数据持久化
保存书籍
原理:将书籍信息保存到文本文件中,确保数据在程序关闭后不丢失。
def save_books(self):
with open(self.filename, 'w', encoding='utf-8') as file:
for book in self.books:
file.write(f"{
book.book_id},{
book.title},{
book.author},{
book.is_borrowed}\n")
加载书籍
原理:从文本文件中读取书籍信息,初始化书籍列表。
def load_books(self):
if os.path.exists(self.filename):
with open(self.filename, 'r', encoding='utf-8') as file:
for line in file:
parts = line.strip().split(',')
if len(parts) == 4:
book_id, title, author