python实现图书馆借阅管理系统并对《图书馆借阅管理系统》里的用户数据和图书数据改用文件进行存储,用户信息存一个文件user.csv,图书存一个文件book.csv,并实现基本的增删改查操作。 加入异常处理。
时间: 2024-02-03 11:12:13 浏览: 46
好的,我可以为您提供该系统的基本框架和代码,但是需要您自己去学习如何使用Python处理文件读写和异常处理。您需要先了解Python的文件读写和异常处理相关知识,再根据您的需求进行适当的修改。
以下是一个简单的示例:
```python
import csv
# 用户信息存储文件路径
USER_FILE = 'user.csv'
# 图书信息存储文件路径
BOOK_FILE = 'book.csv'
# 用户信息字段
USER_FIELDS = ['id', 'name', 'age', 'gender', 'phone']
# 图书信息字段
BOOK_FIELDS = ['id', 'name', 'author', 'publish_date', 'borrower']
# 读取用户信息
def read_user_data():
user_data = []
with open(USER_FILE, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f, fieldnames=USER_FIELDS)
next(reader) # 跳过表头
for row in reader:
user_data.append(row)
return user_data
# 保存用户信息
def save_user_data(user_data):
with open(USER_FILE, 'w', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=USER_FIELDS)
writer.writeheader()
writer.writerows(user_data)
# 读取图书信息
def read_book_data():
book_data = []
with open(BOOK_FILE, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f, fieldnames=BOOK_FIELDS)
next(reader) # 跳过表头
for row in reader:
book_data.append(row)
return book_data
# 保存图书信息
def save_book_data(book_data):
with open(BOOK_FILE, 'w', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=BOOK_FIELDS)
writer.writeheader()
writer.writerows(book_data)
# 添加用户
def add_user():
user_data = read_user_data()
user = {}
user['id'] = input("请输入用户ID:")
user['name'] = input("请输入用户名:")
user['age'] = input("请输入用户年龄:")
user['gender'] = input("请输入用户性别:")
user['phone'] = input("请输入用户电话:")
user_data.append(user)
save_user_data(user_data)
print("添加成功!")
# 添加图书
def add_book():
book_data = read_book_data()
book = {}
book['id'] = input("请输入图书ID:")
book['name'] = input("请输入图书名:")
book['author'] = input("请输入图书作者:")
book['publish_date'] = input("请输入出版日期:")
book['borrower'] = ''
book_data.append(book)
save_book_data(book_data)
print("添加成功!")
# 删除用户
def del_user():
user_data = read_user_data()
user_id = input("请输入要删除的用户ID:")
for user in user_data:
if user['id'] == user_id:
user_data.remove(user)
save_user_data(user_data)
print("删除成功!")
return
print("用户不存在!")
# 删除图书
def del_book():
book_data = read_book_data()
book_id = input("请输入要删除的图书ID:")
for book in book_data:
if book['id'] == book_id:
book_data.remove(book)
save_book_data(book_data)
print("删除成功!")
return
print("图书不存在!")
# 修改用户
def modify_user():
user_data = read_user_data()
user_id = input("请输入要修改的用户ID:")
for user in user_data:
if user['id'] == user_id:
user['name'] = input("请输入用户名:")
user['age'] = input("请输入用户年龄:")
user['gender'] = input("请输入用户性别:")
user['phone'] = input("请输入用户电话:")
save_user_data(user_data)
print("修改成功!")
return
print("用户不存在!")
# 修改图书信息
def modify_book():
book_data = read_book_data()
book_id = input("请输入要修改的图书ID:")
for book in book_data:
if book['id'] == book_id:
book['name'] = input("请输入图书名:")
book['author'] = input("请输入图书作者:")
book['publish_date'] = input("请输入出版日期:")
save_book_data(book_data)
print("修改成功!")
return
print("图书不存在!")
# 查询用户
def query_user():
user_data = read_user_data()
user_id = input("请输入要查询的用户ID:")
for user in user_data:
if user['id'] == user_id:
print("ID:{},姓名:{},年龄:{},性别:{},电话:{}".format(user['id'], user['name'], user['age'], user['gender'], user['phone']))
return
print("用户不存在!")
# 查询图书
def query_book():
book_data = read_book_data()
book_id = input("请输入要查询的图书ID:")
for book in book_data:
if book['id'] == book_id:
print("ID:{},书名:{},作者:{},出版日期:{},借阅人:{}".format(book['id'], book['name'], book['author'], book['publish_date'], book['borrower']))
return
print("图书不存在!")
# 借书
def borrow_book():
user_data = read_user_data()
book_data = read_book_data()
user_id = input("请输入借阅人ID:")
book_id = input("请输入要借阅的图书ID:")
for user in user_data:
if user['id'] == user_id:
for book in book_data:
if book['id'] == book_id:
if book['borrower'] != '':
print("图书已被借出!")
return
book['borrower'] = user_id
save_book_data(book_data)
print("借阅成功!")
return
print("图书不存在!")
return
print("用户不存在!")
# 还书
def return_book():
book_data = read_book_data()
book_id = input("请输入要归还的图书ID:")
for book in book_data:
if book['id'] == book_id:
if book['borrower'] == '':
print("图书未被借出!")
return
book['borrower'] = ''
save_book_data(book_data)
print("归还成功!")
return
print("图书不存在!")
# 显示菜单
def show_menu():
print("""
图书馆借阅管理系统
---------------------
1. 添加用户
2. 添加图书
3. 删除用户
4. 删除图书
5. 修改用户信息
6. 修改图书信息
7. 查询用户信息
8. 查询图书信息
9. 借书
10. 还书
0. 退出
""")
# 主函数
def main():
while True:
show_menu()
choice = input("请选择操作:")
if choice == '1':
add_user()
elif choice == '2':
add_book()
elif choice == '3':
del_user()
elif choice == '4':
del_book()
elif choice == '5':
modify_user()
elif choice == '6':
modify_book()
elif choice == '7':
query_user()
elif choice == '8':
query_book()
elif choice == '9':
borrow_book()
elif choice == '10':
return_book()
elif choice == '0':
print("谢谢使用,再见!")
break
else:
print("无效操作!")
if __name__ == '__main__':
main()
```
以上是一个简单的图书馆借阅管理系统的Python代码,其中使用了CSV文件存储用户和图书信息,并实现了基本的增删改查操作、借书和还书功能。但是需要注意的是,该代码并没有进行错误处理和异常处理,您需要自行学习如何进行异常处理来完善该系统。