10题、完成一个读书管理系统(仅是我个人答案)

会用到的知识点:
循环、列表以及列表函数、字典以及字典函数、输入、输出、break、函数、作用域(全局变量)
完成一个图书管理系统!

需求:

1、 有欢迎页面,提供用户操作选择:

提示:1、输入书籍;2、显示所有书籍;3、查询书籍;0、退出系统

python 用类 实现学生选课系统 python制作选择题系统说明书_提示信息

2、 用户输入【1】可以依次完成书籍名称、出版日期、概述,三项内容的输入,且给出输入成功的提示信息

python 用类 实现学生选课系统 python制作选择题系统说明书_管理系统_02

3、 用户输入【2】可以显示当前系统中所有的书籍信息,要求显示的时候有汉字表头,所有信息依次罗列

python 用类 实现学生选课系统 python制作选择题系统说明书_python 用类 实现学生选课系统_03

4、 用户输入【3】提示用户输入需要查询的书籍名称

1、 查询到书籍之后提供用户三个选择:1、修改;2、删除;0、返回上一级

python 用类 实现学生选课系统 python制作选择题系统说明书_图书管理系统_04

2、 用户输入【1】会依次提醒用户完成对书籍三项参数值的修改

3、 用户输入【2】会直接删除掉书籍信息,给出删除成功的提示

4、 用户输入【0】会直接返回系统的欢迎页面

5、 未查询到的话直接给出提示信息

python 用类 实现学生选课系统 python制作选择题系统说明书_python_05

5、用户输入【0】直接退出管理系统

6、所有的合规输入都会再次显示,提醒用户

python 用类 实现学生选课系统 python制作选择题系统说明书_提示信息_06

7、如果输入的值不在操作步骤内,提示用户输错了,重新输入

python 用类 实现学生选课系统 python制作选择题系统说明书_python 用类 实现学生选课系统_07

答:这里有两个模块,主模块book_main.py,操作模块:book_tool.py
1、book_main.py代码:

from book0415 import book_tool
import time
while True:
    print('*' * 50)
    print('撒浪嘿呦~~~~~\n' + '欢迎使用图书管理系统')
    print('1、新建书籍\n' + '2、显示全部\n' + '3、查询书籍\n\n' + '0、退出系统')
    print('*' * 50)
    ass1 = input('请选择希望执行的操作:')
    if ass1 in ['1', '2', '3', '0']:
        if ass1 == '1':
            print('您选择的操作是【%s】' % ass1)
            print('=' * 50 + '\n新增书籍\n')
            book_tool.add_book()
            time.sleep(2)
        elif ass1 == '2':
            print('您选择的操作是【%s】' % ass1)
            print('=' * 50 + '\n显示全部\n')
            book_tool.select_book()
            time.sleep(2)
        elif ass1 == '3':
            print('您选择的操作是【%s】' % ass1)
            print('=' * 50 + '\n查询书籍\n')
            book_tool.sousuo_book()
            time.sleep(2)
        elif ass1 == '0':
            print('感谢您的使用,欢迎再次光临!!拜拜~~~~')
            break
    else:
        print('您输入的不正确,请从新选择!')
        time.sleep(2)

2、book_tool.py代码:

import time
import openpyxl
list1 = list()
wb = openpyxl.Workbook()
ws = wb.active


def add_book():
    book_name = input('请输入书籍名称:')
    book_date = input('请输入书籍发版时间:')
    comment = input('请输入书籍简介:')
    dict1 = dict((('book_name', book_name), ('book_date', book_date), ('comment', comment)))
    list1.append(dict1)
    print(list1)
    print('添加' + ' ' * 2 + book_name + ' ' * 2 + '成功')
    ws.cell(row=1, column=1, value='书籍名称')
    ws.cell(row=1, column=2, value='书籍发版日期')
    ws.cell(row=1, column=3, value='书籍简介')
    a = list1.index(dict1) + 2
    for col in range(1, len(dict1.keys())+1):
        ws.cell(row=a, column=col, value=dict1[list(dict1.keys())[col-1]])
    wb.save('图书馆.xlsx')


def select_book():
    print('名称' + ' ' * 4 + '日期' + ' ' * 4 + '概述')
    print('-' * 50)
    for i in range(0, len(list1)):
        print(list1[i]['book_name'] + ' ' * 4 + list1[i]['book_date'] + ' ' * 4 + list1[i]['comment'])


def sousuo_book():
    list2 = []
    book_name = input('请输入需要搜索的书籍名称:')
    print('名称' + ' ' * 4 + '日期' + ' ' * 4 + '概述')
    print('-' * 50)
    for i in range(0, len(list1)):
        list2.append(list1[i]['book_name'])
    if book_name in list2:
        up_book_name = list1[list2.index(book_name)]
        up_book_date = list1[list2.index(book_name)]
        up_comment = list1[list2.index(book_name)]
        print(up_book_name['book_name'] + ' ' * 4 + up_book_date['book_date'] + ' ' * 4 + up_comment['comment'])
        a = int(input('请输入对书籍的操作:1:修改  2:删除  0:返回上一级 :'))
        if a in [1, 2, 0]:
            if a == 1:
                up_book_name['book_name'] = input_tool('修改书籍名称:', up_book_name['book_name'])
                up_book_date['book_date'] = input_tool('修改出版日期:', up_book_date['book_date'])
                up_comment['comment'] = input_tool('修改概述:', up_comment['comment'])
                c = list1.index(up_book_name) + 2
                for col in range(1, len(up_book_name.keys()) + 1):
                    ws.cell(row=c, column=col, value=up_book_name[list(up_book_name.keys())[col - 1]])
                # print(list(ws.values))
                wb.save('图书馆.xlsx')
            elif a == 2:
                list1.pop(list2.index(book_name))
                print('书籍' + '%s' % '《' + book_name + '》' + '已经删除')
                time.sleep(2)
            elif a == 0:
                pass
        else:
            print('您输入的操作不正确,请重新输入!!')
    else:
        print('您输入的书籍不存在,请重新输入!!')
    print(list1)


def input_tool(a, b):
    a = input('修改书籍名称(回车表示不修改):')
    if len(a) > 0:
        return a
    else:
        return b