图书管理系统登录区分管理员和读者代码
时间: 2023-09-10 10:15:36 浏览: 47
好的,以下是一个Python图书管理系统的代码实现,区分了管理员和读者登录的功能:
```python
# 定义一个书籍类
class Book:
def __init__(self, id, name, author, publish_date, status):
self.id = id # 书籍编号
self.name = name # 书籍名称
self.author = author # 作者
self.publish_date = publish_date # 出版日期
self.status = status # 状态,0表示未借出,1表示已借出
# 定义一个图书馆类
class Library:
def __init__(self, books=[]):
self.books = books # 所有的书籍列表
self.reader = None # 当前登录的读者
self.manager = None # 当前登录的管理员
# 添加一本书籍
def add_book(self, book):
self.books.append(book)
# 显示所有的书籍信息
def show_all_books(self):
print("书籍编号\t书籍名称\t作者\t出版日期\t状态")
for book in self.books:
print(book.id, "\t\t", book.name, "\t", book.author, "\t", book.publish_date, "\t", book.status)
# 借阅一本书籍
def borrow_book(self, book_id):
for book in self.books:
if book.id == book_id:
if book.status == 0:
book.status = 1
print("借阅成功!")
return
else:
print("很抱歉,此书已被借出!")
return
print("很抱歉,未找到此书!")
# 归还一本书籍
def return_book(self, book_id):
for book in self.books:
if book.id == book_id:
if book.status == 1:
book.status = 0
print("归还成功!")
return
else:
print("很抱歉,此书未被借出!")
return
print("很抱歉,未找到此书!")
# 读者登录
def reader_login(self, username, password):
# 根据用户名和密码查询读者信息
# 如果查询到,则登录成功,将读者信息保存到self.reader中
# 如果未查询到,则登录失败
pass
# 管理员登录
def manager_login(self, username, password):
# 根据用户名和密码查询管理员信息
# 如果查询到,则登录成功,将管理员信息保存到self.manager中
# 如果未查询到,则登录失败
pass
# 添加读者
def add_reader(self, reader):
# 需要管理员权限
# 如果当前用户是管理员,则可以添加读者,否则不能添加
pass
# 删除读者
def delete_reader(self, reader_id):
# 需要管理员权限
# 如果当前用户是管理员,则可以删除读者,否则不能删除
pass
# 测试
if __name__ == '__main__':
b1 = Book(1, "Python入门教程", "张三", "2021-01-01", 0)
b2 = Book(2, "Java编程思想", "李四", "2021-02-01", 1)
b3 = Book(3, "C++从入门到精通", "王五", "2021-03-01", 0)
library = Library([b1, b2, b3])
library.show_all_books()
# 读者登录
library.reader_login("reader1", "123456")
library.borrow_book(1)
# 管理员登录
library.manager_login("admin", "123456")
library.add_reader("reader2")
library.show_all_books()
```
这个代码实现了区分管理员和读者登录的功能,并且在添加读者和删除读者等操作时,需要管理员权限才能执行。需要注意的是,这里的读者和管理员的登录验证、读者的添加和删除等操作都还没有具体实现,需要根据实际情况进行扩展。