使用Python语言完成图书类别管理功能的开发,要求该功能至少包括:输出图书类别管理主菜单、添加图书类别信息、删除图书类别信息、修改图书类别信息、显示所有图书类别信息。要求将图书类别存储到booktype.csv文件中
时间: 2023-12-04 15:05:08 浏览: 59
好的,这是一个比较复杂的功能,需要一步步实现。首先,我们需要创建一个名为`booktype.csv`的文件,用于存储图书类别信息。可以使用Python内置的`csv`模块来实现对csv文件的读写操作。下面是一个示例代码,用于创建并写入初始的图书类别信息:
```python
import csv
def create_csv():
# 创建csv文件,如果文件已存在则直接打开
with open('booktype.csv', 'w', newline='') as file:
writer = csv.writer(file)
# 写入csv文件的表头
writer.writerow(['类别编号', '类别名称'])
# 写入初始数据
writer.writerow(['001', '小说'])
writer.writerow(['002', '散文'])
writer.writerow(['003', '诗歌'])
```
接下来,我们需要实现输出图书类别管理主菜单的功能。可以使用`input()`函数来获取用户输入的选项,从而实现不同的功能。下面是一个示例代码:
```python
def show_menu():
print('欢迎使用图书类别管理系统')
print('1. 添加图书类别信息')
print('2. 删除图书类别信息')
print('3. 修改图书类别信息')
print('4. 显示所有图书类别信息')
print('0. 退出系统')
option = input('请输入选项:')
return option
```
接下来,我们需要实现添加图书类别信息的功能。用户需要输入新的类别编号和名称,并将其写入到`booktype.csv`文件中。下面是一个示例代码:
```python
def add_booktype():
booktype_id = input('请输入新的类别编号:')
booktype_name = input('请输入新的类别名称:')
with open('booktype.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow([booktype_id, booktype_name])
print('图书类别信息添加成功!')
```
接下来,我们需要实现删除图书类别信息的功能。用户需要输入要删除的类别编号,并从`booktype.csv`文件中将其删除。下面是一个示例代码:
```python
def delete_booktype():
booktype_id = input('请输入要删除的类别编号:')
with open('booktype.csv', 'r', newline='') as file:
reader = csv.reader(file)
rows = [row for row in reader if row[0] != booktype_id]
with open('booktype.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
print('图书类别信息删除成功!')
```
接下来,我们需要实现修改图书类别信息的功能。用户需要输入要修改的类别编号和名称,并将其更新到`booktype.csv`文件中。下面是一个示例代码:
```python
def update_booktype():
booktype_id = input('请输入要修改的类别编号:')
booktype_name = input('请输入新的类别名称:')
with open('booktype.csv', 'r', newline='') as file:
reader = csv.reader(file)
rows = [row if row[0] != booktype_id else [booktype_id, booktype_name] for row in reader]
with open('booktype.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
print('图书类别信息修改成功!')
```
最后,我们需要实现显示所有图书类别信息的功能。可以使用`csv`模块的`DictReader`类来读取csv文件,并将其转换为字典格式进行输出。下面是一个示例代码:
```python
def show_all_booktypes():
with open('booktype.csv', 'r', newline='') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['类别编号'], row['类别名称'])
```
通过以上代码的实现,我们就完成了基本的图书类别管理功能。完整代码如下所示:
```python
import csv
def create_csv():
# 创建csv文件,如果文件已存在则直接打开
with open('booktype.csv', 'w', newline='') as file:
writer = csv.writer(file)
# 写入csv文件的表头
writer.writerow(['类别编号', '类别名称'])
# 写入初始数据
writer.writerow(['001', '小说'])
writer.writerow(['002', '散文'])
writer.writerow(['003', '诗歌'])
def show_menu():
print('欢迎使用图书类别管理系统')
print('1. 添加图书类别信息')
print('2. 删除图书类别信息')
print('3. 修改图书类别信息')
print('4. 显示所有图书类别信息')
print('0. 退出系统')
option = input('请输入选项:')
return option
def add_booktype():
booktype_id = input('请输入新的类别编号:')
booktype_name = input('请输入新的类别名称:')
with open('booktype.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow([booktype_id, booktype_name])
print('图书类别信息添加成功!')
def delete_booktype():
booktype_id = input('请输入要删除的类别编号:')
with open('booktype.csv', 'r', newline='') as file:
reader = csv.reader(file)
rows = [row for row in reader if row[0] != booktype_id]
with open('booktype.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
print('图书类别信息删除成功!')
def update_booktype():
booktype_id = input('请输入要修改的类别编号:')
booktype_name = input('请输入新的类别名称:')
with open('booktype.csv', 'r', newline='') as file:
reader = csv.reader(file)
rows = [row if row[0] != booktype_id else [booktype_id, booktype_name] for row in reader]
with open('booktype.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
print('图书类别信息修改成功!')
def show_all_booktypes():
with open('booktype.csv', 'r', newline='') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['类别编号'], row['类别名称'])
if __name__ == '__main__':
create_csv()
while True:
option = show_menu()
if option == '1':
add_booktype()
elif option == '2':
delete_booktype()
elif option == '3':
update_booktype()
elif option == '4':
show_all_booktypes()
elif option == '0':
print('感谢使用图书类别管理系统,再见!')
break
else:
print('输入的选项无效,请重新输入!')
```
注意,为了保证代码的健壮性,我们还需要对用户输入的选项和数据进行校验。此处代码仅为示例,实际应用中还需要根据具体需求进行修改和完善。