Python 图书管理系统

2023-05-11 19:42:35 浏览数 (1)

代码语言:javascript复制
import sys

# 标志位
flag = False

# 存储学生信息字典,学生信息用字典存储,再用列表存储字典
name_list = [{"id": "20201001", "name": "残浔", "sex": "男", "book": "传说有两个地球"},{"id": "20201002", "name": "好家伙", "sex": "男", "book": "好家伙传记"}]


# 默认图书馆管理员信息
users = [['admin', '123456']]

# 主函数


def main():
    print('nn    **********************')
    print('    *欢迎来到图书管理系统*')
    print('    **********************n')
    print('*********************************')
    print('******   登录-------0  **********')
    print('******   注册-------1  **********')
    print('******   退出-------2  **********')
    print('*********************************n')
    while True:
        val = int(input('请输入对应数字:'))
        if val == 0:
            login()
        elif val == 1:
            register()
        elif val == 2:
            sys.exit(0)


# 管理员注册
def register():
    username = input('请输入用户名:')
    password = input('请输入用户密码:')
    users.append([username, password])
    print('注册成功!')
    main()


# 管理员登录
def login():
    print('请输入用户名:', end='')
    username = input()
    print('请输入用户密码:', end='')
    password = input()
    if [username, password] in users:
        print('登录成功!')
        interface()
    else:
        print('n用户名不存在或密码错误!请重新登录!')


# 登录主界面
def interface():
    print('n***********************************************')
    print('******   进入书籍信息管理界面-------1  ********')
    print('******   进入学生信息管理界面-------2  ********')
    print('******   退出系统-------------------3  ********')
    print('***********************************************n')
    val = int(input('请输入对应数字:'))
    if val == 1:
        Book()
    elif val == 2:
        Student()
    elif val == 3:
        sys.exit(0)


# 学生信息管理
def Student():
    while True:
        print("-" * 30)
        print("1.添加学生信息")
        print("2.删除学生信息")
        print("3.修改学生信息")
        print("4.查询单个学生信息")
        print("5.查询所有学生信息")
        print("6.返回主界面")
        print("-" * 30)
        val = int(input('请输入对应数字:n'))
        if val == 1:
            new_info = {}
            new_id = check_id(input("请输入学号:"))
            new_info['id'] = new_id
            new_name = input("请输入姓名:")
            new_info['name'] = new_name
            new_sex = check_sex(input("请输入性别(男/女):"))
            new_info['sex'] = new_sex
            new_book = input("请输入书名,以《》格式命名:")
            new_info['book'] = new_book
            name_list.append(new_info)
            print("添加成功!")
        elif val == 2:
            del_name()
        elif val == 3:
            re_name()
        elif val == 4:
            find_name()
        elif val == 5:
            find_all()
        elif val == 6:
            # 返回主界面
            interface()


# 检查性别是否合法
def check_sex(new_sex):
    flag = True
    while flag:
        if new_sex == '男' or new_sex == '女':
            flag = False
        else:
            new_sex = input("输入性别有误,请重新输入(男/女):")
    return new_sex

    # 默认已存在的图书书籍信息


books = [['红楼梦', '曹雪芹', 'F02'], ['三国', '罗贯中', 'A32'], ['西游记', '吴承恩', 'D82'],
         ['水浒传', '施耐庵', 'B56']]


# 书籍信息管理
def Book():
    while True:
        print('n***************************************')
        print('********  增加书籍--------1  **********')
        print('********  删除书籍--------2  **********')
        print('********  查找书籍--------3  **********')
        print('********  修改书籍--------4  **********')
        print('********  查看所有书籍----5  **********')
        print('********  返回主界面------6  **********')
        print('***************************************n')
        val = int(input('请输入对应的数字:n'))
        if val == 1:
            bookname = input('请输入书名:')
            author = input('请输入作者:')
            Num = input('请输入编号:')
            books.append([bookname, author, Num])
            print('n添加书籍成功!')
        elif val == 2:
            Num = input('请输入编号:')
            j = 0
            for i in books:
                if i[2] == Num:
                    j = 1
                    books.remove([i[0], i[1], i[2]])
                    print('n删除书籍成功!')
            if j == 0:
                print('该书籍不存在!自动返回...')
        elif val == 3:
            bookname = input('请输入书名:')
            print()
            j = 0
            for i in books:
                if i[0] == bookname:
                    j = 1
                    print('书名:', i[0], '作者:', i[1], '编号:', i[2])
            if j == 0:
                print('该书籍不存在!自动返回...')
            print('n查找结束!n')
        elif val == 4:
            Num = input('请输入编号:')
            j = 0
            for i in books:
                if i[2] == Num:
                    j = 1
                    i[0] = input('请输入修改后的书名:')
                    i[1] = input('请输入修改后的作者:')
                    i[2] = input('请输入修改后的编号:')
                    books.append([i[0], i[1], i[2]])
                    print('n修改书籍成功!')
            if j == 0:
                print('该书籍不存在!自动返回...')
        elif val == 5:
            print('n书名tt', '作者ttt', '编号n')
            for i in books:
                print(i[0], 'tt', i[1], 'tt', i[2])
            print()
        elif val == 6:
            # 返回主界面
            interface()


# 检查学号是否重复或者有误
def check_id(new_id):
    flag = True
    while flag:
        # 先检查是不是纯数字再去考虑是否重复的事情,如果不是纯数字直接pass
        if new_id.isdigit():
            for i in range(len(name_list)):
                if name_list[i]['id'] == new_id:
                    new_id = check_id(input("您输入的学号重复,请重新输入:"))
            flag = False
        else:
            new_id = input("您输入的学号有误,请重新输入:")
    return new_id

    # 删除学生信息


def del_name():
    del_id_is = input("请输入要删除的学生学号:")
    flag = False
    index = 0
    for i in range(len(name_list)):
        if name_list[i]['id'] == del_id_is:
            flag = True
            index = i
            break
    if flag:
        name_list.pop(index)
        print("删除成功!")
    else:
        print("学生未找到!请检查学号输入是否有误!")


# 修改学生信息
def re_name():
    id_is = input("请输入要修改的学生学号:")
    flag = False
    index = 0
    # 先找到要修改的学生的下标
    for i in range(len(name_list)):
        if name_list[i]['id'] == id_is:
            flag = True
            index = i
            break
    if flag:
        choice_of_name(index)
        print("修改成功!")
    else:
        print("修改失败,学生信息未找到!")


# 查询所有学生信息
def find_all():
    print("=" * 50)
    for name in name_list:
        print(name['id'], name['name'], name['sex'], name['book'])
    print("=" * 50)


# 查询单个学生信息
def find_name():
    find_id_is = input("请输入要查询的学生学号:")
    flag = False
    index = 0
    for i in range(len(name_list)):
        if name_list[i]['id'] == find_id_is:
            flag = True
            index = i
            break
    if flag:
        print("学生查询到,学生信息为:")
        print(name_list[index]['id'], name_list[index]['name'],
              name_list[index]['sex'], name_list[index]['book'])
    else:
        print("学生未找到!")


# 主程序入口
if __name__ == "__main__":
    main()

0 人点赞