使用Python语言完成图书管理功能的开发,要求该功能至少包括:输出图书管理主菜单、添加图书信息、删除图书信息、修改图书别信息、显示所有图书信息。要求将图书类别存储到book.csv文件中,文件格式如下:类别编号,类别名称,图书编号,图书名称,作者,出版社,出版时间,ISBN在添加图书的时候,要求定义类booktype2,定义readBookType()方法,实现从booktype.csv读取图书类别的方法。 实现过程一整段代码
时间: 2024-01-06 11:04:15 浏览: 65
以下是Python实现图书管理功能的代码:
```python
import csv
class Book:
def __init__(self, book_type, book_id, book_name, author, publisher, publish_time, ISBN):
self.book_type = book_type
self.book_id = book_id
self.book_name = book_name
self.author = author
self.publisher = publisher
self.publish_time = publish_time
self.ISBN = ISBN
class BookType:
def __init__(self, type_id, type_name):
self.type_id = type_id
self.type_name = type_name
class BookManagement:
def __init__(self):
self.books = []
self.book_types = []
self.load_book_types()
def load_book_types(self):
with open('booktype.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
book_type = BookType(row[0], row[1])
self.book_types.append(book_type)
def read_book_type(self, book_type_id):
for book_type in self.book_types:
if book_type.type_id == book_type_id:
return book_type
def add_book(self):
book_type_id = input('请输入图书类别编号:')
book_type = self.read_book_type(book_type_id)
if book_type is None:
print('没有找到该图书类别')
return
book_id = input('请输入图书编号:')
book_name = input('请输入图书名称:')
author = input('请输入作者:')
publisher = input('请输入出版社:')
publish_time = input('请输入出版时间:')
ISBN = input('请输入ISBN:')
book = Book(book_type, book_id, book_name, author, publisher, publish_time, ISBN)
self.books.append(book)
print('添加成功!')
def delete_book(self):
book_id = input('请输入要删除的图书编号:')
for book in self.books:
if book.book_id == book_id:
self.books.remove(book)
print('删除成功!')
return
print('没有找到该图书')
def modify_book(self):
book_id = input('请输入要修改的图书编号:')
for book in self.books:
if book.book_id == book_id:
book.book_name = input('请输入图书名称:')
book.author = input('请输入作者:')
book.publisher = input('请输入出版社:')
book.publish_time = input('请输入出版时间:')
book.ISBN = input('请输入ISBN:')
print('修改成功!')
return
print('没有找到该图书')
def display_books(self):
if len(self.books) == 0:
print('暂无图书信息')
return
for book in self.books:
print('图书类别:{},图书编号:{},图书名称:{},作者:{},出版社:{},出版时间:{},ISBN:{}'.format(book.book_type.type_name, book.book_id, book.book_name, book.author, book.publisher, book.publish_time, book.ISBN))
def display_menu(self):
print('==========图书管理系统==========')
print('1. 添加图书信息')
print('2. 删除图书信息')
print('3. 修改图书信息')
print('4. 显示所有图书信息')
print('0. 退出系统')
def run(self):
while True:
self.display_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.display_books()
elif choice == '0':
print('感谢使用图书管理系统,再见!')
break
else:
print('输入有误,请重新输入!')
if __name__ == '__main__':
bm = BookManagement()
bm.run()
```
说明:
- Book类表示一本书的信息,包括图书类别、图书编号、图书名称、作者、出版社、出版时间和ISBN号;
- BookType类表示一种图书类别,包括类别编号和类别名称;
- BookManagement类是图书管理系统的主类,包括添加图书信息、删除图书信息、修改图书信息和显示所有图书信息等操作,其中load_book_types()方法从booktype.csv文件中读取图书类别信息,read_book_type()方法根据图书类别编号获取图书类别信息;
- 程序入口为if __name__ == '__main__':,创建一个BookManagement对象,并调用其run()方法运行程序。
阅读全文