操作list实现一个简单的图书管理系统

'''最近学习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()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值