Python实现图书管理系统

本文详细描述了一个基于Python编写的图书管理系统,包括主函数的无限循环、菜单设计、显示、添加、删除、查找和修改图书信息的功能实现,以及字典数据结构的使用和嵌套列表的对比。
摘要由CSDN通过智能技术生成

一.主函数

#主函数
while True:
    menu()
    operate = int(input("请输入数字进行操作:0-5进行操作:"))#input函数所输入的结果是一个字符串类型于是需要通过类型转换
    #通过判断得出的所要执行的操作
    if operate==1:
        Show_info()
    elif operate==2:
        add_info()
    elif operate==3:
        delete()
    elif operate==4:
        search()
    elif operate==5:
        modify()
    elif operate==0:
        print("退出程序,感谢您的使用!")
        break
    else:
        print("输入无效!")

先实习一个无限循环,为了能够对其中的函数进行调用。通过输入对应的的数字来调用对应的方法。如果不对输入的数字进行强制转化,判断语句的数字要加引号。接下来是各个方法的撰写。

二.菜单

#菜单页面设计
def menu():
    print('*'*16+'   图书管理系统   '+'*'*16)
    print('\n'*2)
    print('      '+'*'*10+'1. 显示图书信息'+'*'*10)
    print('\n'*2)
    print('      '+'*'*10+'2. 添加图书信息'+'*'*10)
    print('\n'*2)
    print('      '+'*'*10+'3. 删除图书信息'+'*'*10)
    print('\n'*2)
    print('      '+'*'*10+'4. 查找图书信息'+'*'*10)
    print('\n'*2)
    print('      '+'*'*10+'5. 修改图书信息'+'*'*10)
    print('\n'*2)
    print('      '+'*'*10+'0.     退出    '+'*'*10)
    print('\n'*2)

首先是“菜单”,为了让用户能够更加直观的看出具体的数字对应的使用功能,我们就需要为用户提供一个菜单。

三.显示图书信息

def Show_info():
    if len(Book_info)==0:
        print("温馨提示:")
        print("系统无信息,请添加!")
    else:
        print('*'*40+"图书信息表"+'*'*40)
        for book_name,info in Book_info.items():
            print(f"{book_name}信息如下:")
            for row,re_info in info.items():
                print("{}:{}".format(row,re_info))
                print('|')
            print('-'*50)

四.添加图书信息

def add_info():
    '''添加书籍函数'''
    info={}
    new_book=input("请添加书名:\n")
    if new_book not in Book_info:
        #通过“异常”处理提高编程的健壮性
        try:
            No=int(input("请添加图书的编号:\n"))
            price=float(input("请添加图书的价格:\n"))
            year=int(input("请添加图书的出版年份:\n"))
            ty=input("请添加图书的类型:\n")
            author=input("请添加图书的作者:\n")
            info['No']=No
            info['year']=year
            info['price']=price
            info['type']=ty
            info['author']=author
            Book_info[new_book]=info
            print("信息添加成功!")
        except ValueError:
            print("输入有误!")
    else:
        print("该图书信息已存在!")

五.删除图书信息

def delete():
    '''删除书籍函数'''
    if len(Book_info)==0:
        print("系统无信息,请添加!")
    else:
        del_book=input("请输入要删除图书:\n")
        if del_book in Book_info:
            del Book_info[del_book]
            print("删除成功!")
        else:
            print("该图书信息不存在!\n删除失败!")

六.查找图书信息

def search():
    '''由于个人设计的字典嵌套类型导致(图书书名作为键值)于是查找图书信息时只通过能过图书的书名遍历'''
    if len(Book_info)==0:
        print("系统无信息,请添加!")
    else:
        name=input("请输入要所要查找的书籍名:\n")
        for book_name,info in Book_info.items(): #先通过外层字典的遍历查找匹配到要查找的图书信息
            if name==book_name:
                print("{}的信息如下:".format(book_name))
                print('-'*50)
                for row,re_info in info.items(): 
                    print("{}'s {}:{}".format(book_name,row,re_info))
                break
            else:
                print("该图书不存在!")
        print('-'*50)

七.修改图书信息

def modify():
    '''此函数功能可更改书籍信息(书籍编号、价格、出版年份、类型)'''
    if len(Book_info)==0:
        print("系统无信息,请添加!")
    else:
        name=input("请输入要更改的信息的图书书名:\n")
        if name in Book_info.keys():
            while True:
                #修改菜单:提供多种数据的修改
                menu2()
                oper=int(input("请输入要修改的信息项:"))
                if oper==1:
                    new_no=int(input("更改后的书籍编号为:\n"))
                    Book_info[name]['No']=new_no
                    print("修改书籍编号成功!")
                elif oper==2:
                    new_price=float(input("更改后的价格为:\n"))
                    Book_info[name]['price']=new_price
                    print("修改价格出版年份成功!")
                elif oper==3:
                    new_year=int(input("更改后的出版年份为:\n"))
                    Book_info[name]['year']=new_year
                    print("修改出版年份成功!")
                elif oper==4:
                    new_type=input("更改后的类型为:\n")
                    Book_info[name]['type']=new_type
                    print("修改类型成功!")
                elif oper==5:
                    new_author=input("更改后的作者为:\n")
                    Book_info[name]['author']=new_author
                    print("修改作者成功!")
                else:
                    print("退出修改界面!")
                    break
        else:
            print("该图书不存在!")
#修改菜单设计
def menu2():
    print("请输入要更改的内容:\n")
    print('\n')
    print('*'*10+'1.更改书籍编号 '+'*'*7+'\n')
    print('\n')
    print('*'*10+'2. 更改价格 '+'*'*10+'\n')
    print('\n')
    print('*'*10+'3.更改出版年份 '+'*'*7+'\n')
    print('\n')
    print('*'*10+'4. 更改类型 '+'*'*10+'\n')
    print('\n')
    print('*'*10+'5. 更改作者 '+'*'*10+'\n')
    print('\n')    
    print('*'*10+'0. 退出修改界面 '+'*'*10+'\n')

在修改功能里头,我们可以做一个小菜单,让用户选择要更改的信息项。

八.总结

当然你也可以用嵌套列表来实现数据存储与删除,当然有了items()方法,字典相对于列表来说简介有效许多。

  • 14
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值