赞
踩
- #主函数
- 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()方法,字典相对于列表来说简介有效许多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。