对《图书馆借阅管理系统》里的用户数据和图书数据改用文件进行存储,用户信息存一个文件user.csv,图书存一个文件book.csv,并实现基本的增删改查操作。 加入异常处理。
时间: 2023-06-11 12:08:18 浏览: 66
好的,这个需求可以分为以下几个步骤来实现:
1. 设计 user.csv 文件格式,存储用户信息,例如:id, name, age, gender, phone
2. 设计 book.csv 文件格式,存储图书信息,例如:id, title, author, publisher, price, status
3. 实现基本的增删改查操作,并将操作结果写入对应的文件中
4. 加入异常处理,处理文件读写可能出现的异常
以下是一个示例实现,代码使用 Python 语言:
```python
import csv
class Library:
def __init__(self):
self.user_file = 'user.csv'
self.book_file = 'book.csv'
def add_user(self, user):
try:
with open(self.user_file, 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(user)
return True, '添加用户成功'
except Exception as e:
return False, f'添加用户失败: {e}'
def delete_user(self, user_id):
try:
users = []
with open(self.user_file, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] != user_id:
users.append(row)
with open(self.user_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(users)
return True, '删除用户成功'
except Exception as e:
return False, f'删除用户失败: {e}'
def update_user(self, user_id, new_user):
try:
users = []
with open(self.user_file, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] == user_id:
users.append(new_user)
else:
users.append(row)
with open(self.user_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(users)
return True, '更新用户成功'
except Exception as e:
return False, f'更新用户失败: {e}'
def search_user(self, user_id):
try:
with open(self.user_file, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] == user_id:
return True, row
return False, f'用户不存在: {user_id}'
except Exception as e:
return False, f'查找用户失败: {e}'
def add_book(self, book):
try:
with open(self.book_file, 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(book)
return True, '添加图书成功'
except Exception as e:
return False, f'添加图书失败: {e}'
def delete_book(self, book_id):
try:
books = []
with open(self.book_file, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] != book_id:
books.append(row)
with open(self.book_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(books)
return True, '删除图书成功'
except Exception as e:
return False, f'删除图书失败: {e}'
def update_book(self, book_id, new_book):
try:
books = []
with open(self.book_file, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] == book_id:
books.append(new_book)
else:
books.append(row)
with open(self.book_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(books)
return True, '更新图书成功'
except Exception as e:
return False, f'更新图书失败: {e}'
def search_book(self, book_id):
try:
with open(self.book_file, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] == book_id:
return True, row
return False, f'图书不存在: {book_id}'
except Exception as e:
return False, f'查找图书失败: {e}'
```
上述代码中,我们使用了 Python 内置的 csv 模块来读写 csv 文件。每个方法都封装了对应的操作,并在出现异常时返回 False 和异常信息。你可以根据自己的需要进行调整和扩展。