# -*- encoding: utf-8 -*-
"""
@Author : cy1
@File : 17.book_manager.py
@Time : 2022/7/26 15:06
@Software: PyCharm
"""
'''
图书管理系统
1.借书
2.还书
3.查询(书名/作者)
4.查看所有
5.退出
数据结构
[{'id':'1',书名':'三国演义','作者':'吴承恩','价格':'35','数量':'12'},{},{}]
查询-->输入书名/作者-->分别查询作者列表和书名列表
借书-->输入书名-->查询结果-->确认序号-->确认数量-->完成借阅
还书-->输入书名-->查询结果-->确认序号-->确认数量-->完成还书
查看所有-->打印所有全部书籍
退出-->退出系统
'''
def search():
search_name = input("输入书名或作者:")
result = []
for i in book_list:
if search_name in i.values():
print(i)
result.append(i)
if result == []:
print("没有查到")
return result
def borrow():
result = search()
if result:
id_list = [i['id'] for i in result]
borrow_name = str(input("输入序号进行借阅:"))
if borrow_name in id_list:
for index, i in enumerate(book_list):
if i['id'] == borrow_name:
if book_list[index]['数量'] == 0:
print("数量不足")
return
else:
book_list[index]['数量'] -= 1
find_all()
print('借阅完成')
else:
print('该序号不在查询结果中')
else:
find_all()
def repay():
result = search()
if result:
id_list = [i['id'] for i in result]
repay_name = str(input("输入序号进行还书:"))
if repay_name in id_list:
for index, i in enumerate(book_list):
if i['id'] == repay_name:
# input()借还数量
book_list[index]['数量'] += 1
find_all()
print('还书完成')
else:
print('该序号不在查询结果中')
else:
find_all()
def find_all():
for i in book_list:
print(i)
class over_loop(Exception): pass
def quit_app():
key = str(input("是否确认退出? Y/N:"))
if key == 'Y' or key == 'y' or key=='':
raise over_loop()
func_list = {
'1': search,
'2': borrow,
'3': repay,
'4': find_all,
'5': quit_app,
}
book_list = [
{'id': '1', '书名': '三国演义', '作者': '吴承恩', '价格': '35', '数量': 12},
{'id': '2', '书名': '西游记', '作者': '罗贯中', '价格': '35', '数量': 12},
{'id': '3', '书名': '红楼梦', '作者': '施耐庵', '价格': '35', '数量': 12},
{'id': '4', '书名': '水浒传', '作者': '曹雪芹', '价格': '35', '数量': 12},
{'id': '5', '书名': '挪威的森林', '作者': '马尔克斯', '价格': '35', '数量': 12},
{'id': '6', '书名': '红楼梦', '作者': '曹雪芹', '价格': '35', '数量': 12},
]
flag = True
while flag:
print(''' ————图书管理系统————
1.查询(书名/作者)
2.借书
3.还书
4.查看所有
5.退出''')
func_type = str(input("请选择你要的功能:"))
try:
if func_type in func_list.keys():
func_list[func_type]()
print(" ")
except over_loop:
print('程序运行结束 祝您生活愉快')
break