使用Python语言完成图书管理功能的开发,要求该功能至少包括:输出图书管理主菜单、添加图书信息、删除图书信息、修改图书别信息、显示所有图书信息。要求将图书类别存储到book.csv文件中,文件格式如下:3-1.jpg 在添加图书的时候,要求定义类booktype2,定义readBookType()方法,实现从booktype.csv读取图书类别的方法。写上注释
时间: 2023-12-04 21:05:07 浏览: 153
好的,以下是 Python 代码实现:
```python
import csv
class Book:
def __init__(self, book_id, book_name, author, book_type, price):
self.book_id = book_id
self.book_name = book_name
self.author = author
self.book_type = book_type
self.price = price
class BookType:
def __init__(self, type_id, type_name):
self.type_id = type_id
self.type_name = type_name
class Library:
def __init__(self):
self.books = []
self.types = []
def read_book_type(self):
# 从 booktype.csv 文件中读取图书类别信息
with open('booktype.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
type_id, type_name = row
book_type = BookType(type_id, type_name)
self.types.append(book_type)
def add_book(self):
book_id = input("请输入图书编号:")
book_name = input("请输入图书名称:")
author = input("请输入图书作者:")
price = input("请输入图书价格:")
# 显示所有图书类别
print("所有图书类别如下:")
for book_type in self.types:
print(f"{book_type.type_id}. {book_type.type_name}")
book_type_id = input("请输入图书类别编号:")
book_type = self.get_book_type(book_type_id)
book = Book(book_id, book_name, author, book_type, price)
self.books.append(book)
print("添加成功!")
def delete_book(self):
book_id = input("请输入要删除的图书编号:")
book = self.get_book(book_id)
if book:
self.books.remove(book)
print("删除成功!")
else:
print("图书不存在!")
def modify_book(self):
book_id = input("请输入要修改的图书编号:")
book = self.get_book(book_id)
if book:
book_name = input("请输入新的图书名称:")
author = input("请输入新的图书作者:")
price = input("请输入新的图书价格:")
# 显示所有图书类别
print("所有图书类别如下:")
for book_type in self.types:
print(f"{book_type.type_id}. {book_type.type_name}")
book_type_id = input("请输入新的图书类别编号:")
book_type = self.get_book_type(book_type_id)
book.book_name = book_name
book.author = author
book.book_type = book_type
book.price = price
print("修改成功!")
else:
print("图书不存在!")
def show_books(self):
# 输出所有图书信息
print("所有图书信息如下:")
for book in self.books:
print(f"{book.book_id}\t{book.book_name}\t{book.author}\t{book.book_type.type_name}\t{book.price}")
def get_book(self, book_id):
# 根据图书编号查询图书
for book in self.books:
if book.book_id == book_id:
return book
return None
def get_book_type(self, book_type_id):
# 根据图书类别编号查询图书类别
for book_type in self.types:
if book_type.type_id == book_type_id:
return book_type
return None
def show_menu(self):
# 输出图书管理主菜单
print("欢迎使用图书管理系统!")
print("1. 添加图书信息")
print("2. 删除图书信息")
print("3. 修改图书信息")
print("4. 显示所有图书信息")
print("0. 退出系统")
def run(self):
# 启动图书管理系统
self.read_book_type()
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':
print("谢谢使用!")
break
else:
print("输入有误,请重新输入!")
# 保存所有图书信息到 book.csv 文件中
with open('book.csv', 'w', newline='') as f:
writer = csv.writer(f)
for book in self.books:
writer.writerow([book.book_id, book.book_name, book.author, book.book_type.type_id, book.price])
if __name__ == '__main__':
library = Library()
library.run()
```
注释已经写在代码中,主要功能包括:
1. 读取图书类别信息,存储到 `self.types` 中;
2. 添加图书信息,包括图书编号、名称、作者、价格、类别等;
3. 删除图书信息,根据图书编号查询图书并删除;
4. 修改图书信息,根据图书编号查询图书并修改图书名称、作者、价格、类别等;
5. 显示所有图书信息,输出所有图书的编号、名称、作者、类别和价格等;
6. 输出图书管理主菜单,让用户选择操作;
7. 启动图书管理系统,循环执行用户选择的操作;
8. 保存所有图书信息到 `book.csv` 文件中。
以上就是实现图书管理功能的 Python 代码,可以直接运行。如有疑问,请随时提出。
阅读全文