|
import yaml
|
|
|
|
class Book:
|
|
def __init__(self,bid,name,price,summary):
|
|
self.bid = bid
|
|
self.name = name
|
|
self.price = price
|
|
self.summary = summary
|
|
|
|
def __str__(self):
|
|
return f'图书编号:{self.bid},书名:{self.name},图书价格:{self.price},图书简介:{self.summary}'
|
|
|
|
class BookManagemen:
|
|
def __init__(self):
|
|
self.__books = []
|
|
|
|
def __menu(self):
|
|
print("*****************************")
|
|
print("* 图书管理系统 *")
|
|
print("* 1. 添加新图书信息 *")
|
|
print("* 2. 通过编号修改图书信息 *")
|
|
print("* 3. 通过编号删除图书信息 *")
|
|
print("* 4. 通过书名删除图书信息 *")
|
|
print("* 5. 通过编号查询图书信息 *")
|
|
print("* 6. 通过书名查询图书信息 *")
|
|
print("* 7. 显示所有图书信息 *")
|
|
print("* 8. 退出系统 *")
|
|
print("*****************************")
|
|
select_op = input('请输入需要选择的选项')
|
|
return select_op
|
|
|
|
def __get_bid(self):#获取图书编号
|
|
bid = input("请输入图书编号:")
|
|
return bid
|
|
|
|
def __get_name(self):#获取图书名称
|
|
name = input("请输入图书名称:")
|
|
return name
|
|
|
|
def __get_price(self):#获取图书价格
|
|
while True:
|
|
price = input("请输入图书价格:")
|
|
if price.isdigit():
|
|
return int(price)
|
|
else:
|
|
print("请输入正确格式数字:")
|
|
|
|
def __get_summary(self):
|
|
summary = input("请输入图书简介:")
|
|
return summary
|
|
|
|
def __add_book(self,bid,name,price,summary):#添加书本
|
|
for s in self.__books:
|
|
if s.bid == bid:
|
|
print(f"{bid}已存在,添加失败")
|
|
return "添加失败"
|
|
book = Book(bid,name,price,summary)
|
|
self.__books.append(book)
|
|
|
|
def __modify_book_by_bid(self,bid,name,price,summary):#通过编号修改图书信息
|
|
for s in self.__books:
|
|
if s.bid == bid:
|
|
s.name = name
|
|
s.price = price
|
|
s.summary = summary
|
|
print("修改成功")
|
|
return '修改成功'
|
|
print(f"图书编号{bid}不存在")
|
|
return "修改失败"
|
|
|
|
def __delete_book_by_bid(self,bid):#通过编号删除图书
|
|
for s in self.__books:
|
|
if s.bid == bid:
|
|
self.__books.remove(s)
|
|
print(f"图书{s.name}删除成功")
|
|
return"删除成功"
|
|
print("无此图书编号")
|
|
return "删除失败"
|
|
|
|
def __delete_book_by_name(self,name):#通过书名删除图书
|
|
del_book = []
|
|
for s in self.__books:
|
|
if s.name == name:
|
|
del_book.append(s)
|
|
if len(del_book) > 0:
|
|
for i in del_book:
|
|
self.__books.remove(i)
|
|
print(f"成功删除{len(del_book)}本名为{name}的书")
|
|
return "删除成功"
|
|
else:
|
|
print(f'书本{name}不存在')
|
|
return "删除失败"
|
|
def __select_book_by_bid(self,bid):#通过编号查询图书
|
|
for s in self.__books:
|
|
if s.bid == bid:
|
|
print("图书信息为:")
|
|
print(f"图书编号:{s.bid},图书名称:{s.name},图书价格:{s.price},图书简介:{s.summary}")
|
|
return '查询成功'
|
|
print(f"图书编号{bid}不存在")
|
|
return '查询失败'
|
|
|
|
def __select_book_by_name(self,name):#通过名称查询图书
|
|
select_book = []
|
|
for s in self.__books:
|
|
if s.name == name:
|
|
select_book.append(s)
|
|
if len(select_book) > 0:
|
|
print("图书信息为:")
|
|
for i in select_book:
|
|
print(f"图书编号:{i.bid},图书名称:{i.name},图书价格:{i.price},图书简介:{i.summary}")
|
|
return '查询成功'
|
|
else:
|
|
print(f"图书名称{name}不存在")
|
|
return '查询失败'
|
|
def __show(self):
|
|
print("所有图书信息如下:")
|
|
for s in self.__books:
|
|
print(f"图书编号:{s.bid},图书名称:{s.name},图书价格:{s.price},图书简介:{s.summary}")
|
|
|
|
def manager(self):
|
|
while True:
|
|
select_op = self.__menu()
|
|
if len(select_op) == 1 and int(select_op) in range(1,9):
|
|
if select_op == '1':
|
|
bid = self.__get_bid()
|
|
name = self.__get_name()
|
|
price = self.__get_price()
|
|
summary = self.__get_summary()
|
|
self.__add_book(bid,name,price,summary)
|
|
elif select_op == '2':
|
|
bid = self.__get_bid()
|
|
name = self.__get_name()
|
|
price = self.__get_price()
|
|
summary = self.__get_summary()
|
|
self.__modify_book_by_bid(bid, name, price, summary)
|
|
elif select_op == '3':
|
|
bid = self.__get_bid()
|
|
self.__delete_book_by_bid(bid)
|
|
elif select_op == '4':
|
|
name = self.__get_name()
|
|
self.__delete_book_by_name(name)
|
|
elif select_op == '5':
|
|
bid = self.__get_bid()
|
|
self.__select_book_by_bid(bid)
|
|
elif select_op == '6':
|
|
name = self.__get_name()
|
|
self.__select_book_by_name(name)
|
|
elif select_op == '7':
|
|
self.__show()
|
|
else:
|
|
break
|
|
else:
|
|
print('输入的字符不合法,请重新输入')
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
bm = BookManagemen()
|
|
bm.manager()
|
|
|
|
|
|
|
|
|
|
|