1. 系统登录注册(默认管理员账号为admin,密码为root)其他为学生账号。 2. 管理员可进行以下操作,学生只能借阅和归还图书 1) 添加学生账户 2) 显示所有学生账户 3) 删除学生账户 4) 修改学生账户为黑名单 3. 登录成功进行图书管理系统(提示用户如下) 您已进入图书管理系统,请选择以下操作 1.查询图书(默认存在3本图书及其作者名和存放位置,书名自定义) 2.增加图书(书名相同无法新增,所以用户均可操作) 3.删除图书(仅限管理员操作) 3.借阅图书 1.图书不存在或已借出,则无法借阅 2.黑名单用户无法借阅 4.归还图书 5.退出系统 4.请使用面向对象编程
时间: 2024-03-13 19:46:23 浏览: 144
Java学生信息管理系统源码(含数据库脚本等).zip
5星 · 资源好评率100%
好的,我已经理解了您的要求。这是一个简单的图书管理系统,包括管理员和学生两种用户,管理员可以进行学生账户管理和图书管理,学生只能借阅和归还图书。系统需要使用面向对象编程实现。
首先,我们可以定义两个类,一个是User类,表示系统中的用户,包括管理员和学生,另一个是Book类,表示系统中的图书。两个类的定义如下:
```python
class User:
def __init__(self, username, password):
self.username = username
self.password = password
class Book:
def __init__(self, name, author, location):
self.name = name
self.author = author
self.location = location
self.borrower = None
```
User类包括用户名和密码两个属性,Book类包括书名、作者、存放位置和借阅者四个属性。其中,借阅者属性初始值为None,表示该书未被借阅。
接下来,我们需要定义几个方法来完成系统的各种操作。首先是管理员账户管理的方法,包括添加学生账户、显示所有学生账户、删除学生账户和修改学生账户为黑名单。这些方法需要在管理员类中定义。
```python
class Admin(User):
def __init__(self, username, password):
super().__init__(username, password)
self.students = []
def add_student(self, student):
self.students.append(student)
def show_students(self):
for student in self.students:
print(student.username)
def delete_student(self, student):
self.students.remove(student)
def blacklist_student(self, student):
student.blacklist = True
```
Admin类继承自User类,包括一个学生账户列表属性。add_student方法用于添加学生账户,show_students方法用于显示所有学生账户,delete_student方法用于删除学生账户,blacklist_student方法用于将学生账户设置为黑名单。
接下来是图书管理的方法,包括查询图书、增加图书、删除图书、借阅图书和归还图书。其中,查询图书和借阅图书需要在学生类中定义,增加图书、删除图书和归还图书需要在管理员类中定义。
```python
class Student(User):
def __init__(self, username, password):
super().__init__(username, password)
self.borrowed_books = []
def search_book(self, book_name):
for book in books:
if book.name == book_name:
print("书名:{},作者:{},存放位置:{}".format(book.name, book.author, book.location))
return
print("该图书不存在")
def borrow_book(self, book_name):
for book in books:
if book.name == book_name:
if book.borrower is not None:
print("该图书已被借阅")
elif self.blacklist:
print("您已被列入黑名单,无法借阅图书")
else:
book.borrower = self
self.borrowed_books.append(book)
print("借阅成功")
return
print("该图书不存在")
class Admin(User):
def __init__(self, username, password):
super().__init__(username, password)
def add_book(self, book):
for b in books:
if b.name == book.name:
print("该图书已存在")
return
books.append(book)
print("添加图书成功")
def delete_book(self, book):
books.remove(book)
print("删除图书成功")
def return_book(self, student, book_name):
for book in student.borrowed_books:
if book.name == book_name:
book.borrower = None
student.borrowed_books.remove(book)
print("归还图书成功")
return
print("您未借阅该图书")
```
Student类继承自User类,包括一个借阅图书列表属性。search_book方法用于查询图书,borrow_book方法用于借阅图书。如果图书不存在或已被借阅,则会输出相应的提示信息。
Admin类继承自User类,不包括任何额外属性。add_book方法用于增加图书,如果图书已存在,则会输出相应的提示信息;delete_book方法用于删除图书;return_book方法用于归还图书,如果学生未借阅该图书,则会输出相应的提示信息。
最后,我们可以编写一个主程序来测试系统的各个功能:
```python
books = [Book("Python编程从入门到实践", "Eric Matthes", "A1"),
Book("Python数据科学手册", "Jake VanderPlas", "A2"),
Book("流畅的Python", "Luciano Ramalho", "B1")]
admin = Admin("admin", "root")
student1 = Student("Alice", "123456")
student2 = Student("Bob", "123456")
admin.add_student(student1)
admin.add_student(student2)
admin.add_book(Book("Python深度学习", "Francois Chollet", "B2"))
admin.delete_book(books[1])
student1.search_book("Python编程从入门到实践")
student1.borrow_book("Python编程从入门到实践")
student1.borrow_book("Python编程从入门到实践")
student2.borrow_book("Python数据科学手册")
admin.return_book(student1, "Python编程从入门到实践")
admin.return_book(student2, "Python编程从入门到实践")
```
这个主程序中,我们定义了一个包括三本图书的列表books,一个管理员账户admin和两个学生账户student1和student2。首先我们使用管理员账户添加了两个学生账户,然后使用管理员账户增加了一本图书并删除了一本图书。接下来,我们使用学生账户查询图书、借阅图书和归还图书。其中,学生1借阅了同一本图书两次,管理员账户归还该图书时只需要归还一次即可。
以上就是一个简单的图书管理系统的实现。当然,这只是一个基础版本,还有很多可以改进和扩展的地方。
阅读全文