使用Python语言完成图书管理功能的开发,要求该功能至少包括:输出图书管理主菜单、添加图书信息、删除图书信息、修改图书别信息、显示所有图书信息。要求将图书类别存储到book.csv文件中,文件格式如下:3-1.jpg 在添加图书的时候,要求定义类booktype2,定义readBookType()方法,实现从booktype.csv读取图书类别的方法。
时间: 2023-12-04 08:05:06 浏览: 67
好的,这是一个比较复杂的功能,需要设计类与文件读写操作。以下是代码示例:
```python
import csv
class Book:
def __init__(self, title, author, category):
self.title = title
self.author = author
self.category = category
def __str__(self):
return f"{self.title}, {self.author}, {self.category}"
class BookManager:
def __init__(self):
self.books = []
def load_book_type(self):
with open('booktype.csv', encoding='utf-8') as f:
reader = csv.reader(f)
book_types = [row[0] for row in reader]
return book_types
def load_books(self):
with open('book.csv', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
book = Book(row[0], row[1], row[2])
self.books.append(book)
def save_books(self):
with open('book.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
for book in self.books:
writer.writerow([book.title, book.author, book.category])
def show_menu(self):
print("图书管理系统")
print("1. 添加图书")
print("2. 删除图书")
print("3. 修改图书")
print("4. 显示所有图书")
print("0. 退出")
def add_book(self):
title = input("请输入书名:")
author = input("请输入作者:")
book_type = input("请输入图书类别:")
book = Book(title, author, book_type)
self.books.append(book)
print("添加成功!")
def delete_book(self):
title = input("请输入要删除的书名:")
for book in self.books:
if book.title == title:
self.books.remove(book)
print("删除成功!")
return
print("未找到该书!")
def modify_book(self):
title = input("请输入要修改的书名:")
for book in self.books:
if book.title == title:
book.author = input("请输入新的作者:")
book.category = input("请输入新的图书类别:")
print("修改成功!")
return
print("未找到该书!")
def show_books(self):
for book in self.books:
print(book)
def run(self):
self.load_books()
while True:
self.show_menu()
choice = input("请选择操作:")
if choice == '1':
self.add_book()
elif choice == '2':
self.delete_book()
elif choice == '3':
self.modify_book()
elif choice == '4':
self.show_books()
elif choice == '0':
self.save_books()
print("谢谢使用!")
break
else:
print("输入有误,请重新选择!")
if __name__ == '__main__':
bm = BookManager()
bm.run()
```
在这个示例中,我们定义了一个`Book`类表示一本书,其中包括书名、作者、分类信息。然后定义了一个`BookManager`类作为图书管理系统的主要操作类,其中包括了读取和保存图书信息的方法,以及添加、删除、修改和显示图书信息的方法。同时,我们还定义了`show_menu()`方法用于显示主菜单,`load_book_type()`方法用于读取图书类别信息。
在主函数中,我们实例化了`BookManager`类,并调用其`run()`方法,从而启动了图书管理系统。在`run()`方法中,我们循环显示主菜单,并根据用户的选择调用相应的方法进行操作。在程序退出时,我们保存了修改后的图书信息到`book.csv`文件中。
阅读全文