用Python语言实现需要拥有图书信息和学生信息以及能实现借阅功能和还书功能的图书管理系统,并将图书信息与学生信息分别保存至两个文件中
时间: 2024-01-22 15:18:19 浏览: 82
好的,我可以帮你实现这个图书管理系统。首先,我们需要定义图书和学生类:
```python
class Book:
def __init__(self, book_id, title, author, available=True):
self.book_id = book_id
self.title = title
self.author = author
self.available = available
class Student:
def __init__(self, student_id, name, borrowed_books=[]):
self.student_id = student_id
self.name = name
self.borrowed_books = borrowed_books
```
其中,Book类表示一本书,包括书的ID、书名、作者和是否可借状态;Student类表示一个学生,包括学生ID、姓名和已借阅的书籍列表。
接下来,我们需要实现图书管理系统的主要功能,包括添加、删除、借阅和归还图书,以及保存图书和学生信息至文件中。代码如下:
```python
import json
class Library:
def __init__(self):
self.books = []
self.students = []
self.load_data()
def load_data(self):
try:
with open('books.json', 'r') as f:
self.books = json.load(f)
except FileNotFoundError:
pass
try:
with open('students.json', 'r') as f:
self.students = json.load(f)
except FileNotFoundError:
pass
def save_data(self):
with open('books.json', 'w') as f:
json.dump(self.books, f)
with open('students.json', 'w') as f:
json.dump(self.students, f)
def add_book(self, book_id, title, author):
book = Book(book_id, title, author)
self.books.append(book)
self.save_data()
def remove_book(self, book_id):
for book in self.books:
if book.book_id == book_id:
self.books.remove(book)
self.save_data()
return True
return False
def borrow_book(self, student_id, book_id):
for student in self.students:
if student.student_id == student_id:
for book in self.books:
if book.book_id == book_id and book.available:
book.available = False
student.borrowed_books.append(book)
self.save_data()
return True
return False
return False
def return_book(self, student_id, book_id):
for student in self.students:
if student.student_id == student_id:
for book in student.borrowed_books:
if book.book_id == book_id:
book.available = True
student.borrowed_books.remove(book)
self.save_data()
return True
return False
return False
def add_student(self, student_id, name):
student = Student(student_id, name)
self.students.append(student)
self.save_data()
def remove_student(self, student_id):
for student in self.students:
if student.student_id == student_id:
self.students.remove(student)
self.save_data()
return True
return False
```
在上面的代码中,我们首先定义了一个Library类,包含了图书和学生列表,以及从文件中加载数据和保存数据的方法。接着,我们实现了添加、删除、借阅和归还图书,以及添加和删除学生的功能。所有的操作都会将数据保存至文件中,以便下次启动程序时能够恢复之前保存的数据。
最后,我们可以编写一个简单的命令行界面,让用户能够使用图书管理系统。代码如下:
```python
def main():
library = Library()
while True:
print('请选择要进行的操作:')
print('1. 添加书籍')
print('2. 删除书籍')
print('3. 借阅书籍')
print('4. 归还书籍')
print('5. 添加学生')
print('6. 删除学生')
print('0. 退出')
choice = input('请输入选项:')
if choice == '1':
book_id = input('请输入书籍编号:')
title = input('请输入书籍名称:')
author = input('请输入书籍作者:')
library.add_book(book_id, title, author)
elif choice == '2':
book_id = input('请输入要删除的书籍编号:')
if library.remove_book(book_id):
print('删除成功!')
else:
print('未找到该书籍!')
elif choice == '3':
student_id = input('请输入学生编号:')
book_id = input('请输入书籍编号:')
if library.borrow_book(student_id, book_id):
print('借阅成功!')
else:
print('借阅失败!')
elif choice == '4':
student_id = input('请输入学生编号:')
book_id = input('请输入书籍编号:')
if library.return_book(student_id, book_id):
print('归还成功!')
else:
print('归还失败!')
elif choice == '5':
student_id = input('请输入学生编号:')
name = input('请输入学生姓名:')
library.add_student(student_id, name)
elif choice == '6':
student_id = input('请输入要删除的学生编号:')
if library.remove_student(student_id):
print('删除成功!')
else:
print('未找到该学生!')
elif choice == '0':
break
else:
print('无效选项!')
```
在上面的代码中,我们使用一个while循环不断读取用户的输入,然后根据用户输入的选项调用相应的方法。当用户输入0时,程序退出。
现在,我们就实现了一个简单的图书管理系统,可以保存图书信息和学生信息至文件中,并能够实现借阅和归还图书的功能。
阅读全文