'''最近学习python正酣,想起大学时初学语言要求完成图书管理系统的课程设计。当时觉得难如登天,如今却觉得并不是很难实现。经过一小段时间的摸索,也能写的有模有样。'''
def library():
library_book_managelist = []
while True:
print("欢迎进入图书馆管理系统! \n 1.增加图书 \n 2.删除图书 \n 3.更改图书信息 \n 4.查询图书 \n e(E).退出系统(e or E)")
oper = input("请选择你的操作:")
if oper == "e" or oper == "E":
print("Bye!!!")
break
elif oper == "1":
book_add(library_book_managelist)
elif oper == "2":
book_del(library_book_managelist)
elif oper == "3":
book_modify(library_book_managelist)
elif oper == "4":
book_query(library_book_managelist)
else:
print("操作有误,请重新选择您的操作!")
def book_add(book_list):
book = [] #定义一本书的信息,名称、作者、ISBN编号(唯一)、是否在库、出借人、预留信息
while True:
print("欢迎进入图书管理系统,输入e或E退出!")
book_name = input("请输入增加图书的名称:")
if book_name == "e" or book_name == "E":
print("未增加图书!")
break
if len(book_name) == 0:
print("增加图书名称不能为空!请重新填写!")
continue
else:
book.append(book_name)
break
while True:
book_author = input("请输入图书的作者:")
if len(book_author) == 0:
print("增加图书作者不能为空!请重新填写!")
continue
else:
book.append(book_author)
break
while True:
ISBN_flag = True
book_ISBN_num = input("请输入13位图书的ISBN数字号码:")
if len(book_ISBN_num) != 13:
print("输入图书的ISBN号码长度有误!请重新输入!")
continue
for i in book_ISBN_num:
if i < "0" or i > "9":
print("输入ISBN编号内容有误!请重新输入!")
break
else:
for i in range(len(book_list)): #根据图书ISBN索引查询是否有重复
if book_list[i][2] == book_ISBN_num:
print("增加图书已存在书库中")
ISBN_flag = False
break
if ISBN_flag:
book.append(book_ISBN_num)
break
book.append("") #出借人为空时表示在库,若有出借人表示已借出
book.append("") #预留信息为空
print("增加图书成功!")
book_list.append(book)
return book_list
def book_del(book_list):
while True:
print("欢迎进入图书馆查询系统!\n 1.按图书名称删除! \n 2.按作者删除图书! \n 3.按ISBN编号删除图书! \n e(E).不删除图书!")
oper = input("请选择您要删除的方式:")
if oper == "e" or oper == "E":
print("没有删除任何图书!")
break
elif oper == "1":
book_name = input("请输入您要删除图书的名称:")
Is_book_deleted = False
for i in range(len(book_list)):
if book_list[i][0] == book_name:
print("删除图书:%s" %book_list[i])
Is_book_deleted = True
book_list.remove(book_list[i])
if not Is_book_deleted:
print("指定删除的图书不存在!")
elif oper == "2":
book_author = input("请输入您要删除图书的作者:")
Is_book_deleted = False
for i in range(len(book_list)):
if book_list[i][1] == book_author:
print("删除图书:%s" %book_list[i])
Is_book_deleted = True
book_list.remove(book_list[i])
if not Is_book_deleted:
print("指定删除的图书不存在!")
elif oper == "3":
book_ISBN_num = input("请输入您要删除图书的作者:")
Is_book_deleted = False
for i in range(len(book_list)):
if book_list[i][2] == book_ISBN_num:
print("删除图书:%s" %book_list[i])
Is_book_deleted = True
book_list.remove(book_list[i])
break
else:
print("指定删除的图书不存在!")
else:
print("输入选择有误,请重新选择!")
def book_modify(book_list):
modify_flag = False
while True:
book_ISBN_num = input("请输入要修改图书的ISBN编号,输入e或E可退出:")
if book_ISBN_num == "e" or book_ISBN_num == "E":
print("没有修改任何图书信息!")
break
if len(book_ISBN_num) != 13:
print("输入图书的ISBN号码长度有误!请重新输入!")
continue
for i in book_ISBN_num:
if i < "0" or i > "9":
print("输入ISBN编号内容有误!请重新输入!")
break
else:
for i in range(len(book_list)):
if book_list[i][2] == book_ISBN_num:
while True:
print("想要修改信息的图书存在!\n 1.修改图书名称! \n 2.修改图书作者! \n 3.修改出借出人信息! \n 4.添加备注信息! \n e(E).退出图书信息修改!")
oper = input("请选择要修改的信息:")
if oper == "e" or oper == "E":
print("没有修改任何图书信息!")
break
elif oper == "1":
book_name = input("请输入图书的新名称:")
if len(book_name) == 0:
print("输入新名称为空,图书信息修改操作失败!")
else:
book_list[i][0] = book_name
modify_flag = True
print("修改图书名称成功!")
elif oper == "2":
book_author = input("请输入图书的作者:")
if len(book_author) == 0:
print("输入作者名字为空,图书信息修改操作失败!")
else:
book_list[i][1] = book_author
modify_flag = True
print("修改图书作者成功!")
elif oper == "3":
Is_booked = input("请输入借出人名称:")
book_list[i][3] = Is_booked
modify_flag = True
print("修改图书借出人成功!")
elif oper == "4":
book_info = input("请输入该图书备注信息:")
book_list[i][4] = book_info
modify_flag = True
print("图书添加备注信息成功!")
if modify_flag:
break
break
else:
print("未找到想要修改的图书!请重新选择操作!")
break
if modify_flag:
break
def book_query(book_list):
while True:
print("欢迎进入图书馆查询系统! \n 1.按图书名称查询! \n 2.按作者名查询! \n 3.按图书ISBN编号查询! \n e(E).退出查询系统")
oper = input("请选择要查询的方式:")
if oper == "e" or oper == "E":
print("未查询图书!")
break
if oper == "1":
book_name = input("请输入想要查询图书的名称:")
query_flag = False
if len(book_name) == 0:
print("未查询到任何图书!")
else:
for i in range(len(book_list)):
if book_list[i][0] == book_name:
query_flag = True
if len(book_list[i][3]) == 0:
print("%s作者是%s,其ISBN编号为%s,该书籍在库!" %(book_list[i][0],book_list[i][1],book_list[i][2]))
else:
print("%s作者是%s,其ISBN编号为%s,该书籍已借出!" %(book_list[i][0],book_list[i][1],book_list[i][2]))
if not query_flag:
print("未查询到任何图书!")
if oper == "2":
book_author = input("请输入想要查询图书的作者:")
query_flag = False
if len(book_author) == 0:
print("未查询到任何图书!")
else:
for i in range(len(book_list)):
if book_list[i][1] == book_author:
query_flag = True
if len(book_list[i][3]) == 0:
print("%s作者是%s,其ISBN编号为%s,该书籍在库!" %(book_list[i][0],book_list[i][1],book_list[i][2]))
else:
print("%s作者是%s,其ISBN编号为%s,该书籍已借出!" %(book_list[i][0],book_list[i][1],book_list[i][2]))
if not query_flag:
print("未查询到任何图书!")
if oper == "3":
while True:
book_ISBN_num = input("请输入要查询图书的ISBN编号,输入e或E可退出:")
query_flag = False
if book_ISBN_num == "e" or book_ISBN_num == "E":
print("未查询到任何图书信息!")
break
if len(book_ISBN_num) != 13:
print("输入图书的ISBN号码长度有误!请重新输入!")
continue
for i in book_ISBN_num:
if i < "0" or i > "9":
print("输入ISBN编号内容有误!请重新输入!")
break
for i in range(len(book_list)):
if book_list[i][2] == book_ISBN_num:
query_flag = True
if len(book_list[i][3]) == 0:
print("%s作者是%s,其ISBN编号为%s,该书籍在库!" %(book_list[i][0],book_list[i][1],book_list[i][2]))
else:
print("%s作者是%s,其ISBN编号为%s,该书籍已借出!" %(book_list[i][0],book_list[i][1],book_list[i][2]))
break
else:
print("未查询到任何图书!")
break
if query_flag:
break
library()