"""
1.学员管理系统
    系统功能界面
        1-添加学员
        2-删除学员
        3-修改学员信息
        4-查询学员信息
        5-退出系统
        6-显示全部学员信息
"""

# 打印要操作的信息
# 使用数字表示使用的功能
# 输入对应的数字,表示要操作的功能
# 1:增加学员信息 2:删除学员信息
# 3:修改学员信息 4:查看学员信息 5:退出系统

# 存储数据
# str number list set tuple dict
# 学员的信息 学号 名字 手机号
# 选择dict类型存储
user_info = {}


# 打印系统界面
def print_info() -> str:
    """
    打印系统功能页面
    :return: 功能选择 str
    """
    print('-'*20+'选择功能'+'-'*20)
    print('1,增加学员信息\t  2,删除学员信息\t  3,修改学员信息\t\
      \n4,查看学员信息\t  5,退出系统\t\t  6,显示全部学员信息\t')
    number = input('请输入数字,选择操作的功能:')
    print('-'*20)
    return number


# 增加
def add_info():
    """
    增加学员信息
    :return:
    """
    print('增加学员信息')
    while True:
        user_id = input('请输入学员的学号:')
        user_name = input('请输入学员的名字:')
        number = input('请输入学员的电话:')
        if verify_info(user_id):  # 如果该学号在字典中
            print('已有这个学员,不可重复添加')
            print('请重新输入!')
        else:
            # 添加数据到user_info中
            user_info[user_id]= {'user_name': user_name, 'number': number}  # 字典中字典
            print(f'增加成功,数据为{user_id}->{user_info[user_id]}')
            break


# 确认学员学号是否存在
def verify_info(user_id):
    """
    确认学号是否存在
    :return:
    """
    if user_id in user_info.keys():  # 如果该学号在字典中
        return True
    else:
        print(f'没有找到学号为{user_id}的学员信息')
        return False


# 删除
def del_info():
    """
    删除学员信息
    :return:
    """
    print('删除学员信息')
    user_id = input('请输入学员的学号:')
    if verify_info(user_id):  # 判断学员id是否存在
        print(f'学员{user_id}的{user_info[user_id]}已经删除')  # 必须是先打印再删除,否则报错
        del user_info[user_id]  # 删除学员数据


# 修改
def alter_info():
    """
    修改学员信息
    :return:
    """
    print('修改学员信息')
    user_id = input('请输入学员的学号:')
    if verify_info(user_id):  # 判断学员id是否存在
        while True:
            print('1, 修改名字  2, 修改手机号')
            data = input('请输入要操作的功能')
            if data == '1':
                new_name = input('请输入修改后的名字')
                user_info[user_id]['user_name'] = new_name
                print(f'学员{user_id}的{user_info[user_id]}已经修改')
                break
            elif data == '2':
                new_number = input('请输入修改后的手机号')
                user_info[user_id]['number'] = new_number
                print(f'学员{user_id}的{user_info[user_id]}已经修改')
                break
            else:
                print('功能选择错误,请重新选择')


# 查看
def search_info():
    """
    查询学员信息
    :return:
    """
    print('查询学员信息')
    # 查询学号
    user_id = input('请输入要查询学员的学号:')
    if verify_info(user_id):
        print(f'学号为{user_id}的学员的信息为: {user_info[user_id]}')


# 显示全部信息
def show_all():
    """
    显示全部信息
    :return:
    """
    print('全部学员信息如下:')
    print('学号\t\t姓名\t\t电话号码\t')
    for user_id, j in user_info.items():
        print(user_id, end='\t\t')
        # print(j)
        for n in j.values():  # 按照我这个来说,这里没必要使用keys()
            # print(i)
            # print(m)
            print(n, end='\t\t')
        print()


if __name__ == '__main__':  # 程序的入口,程序从这里运行
    while True:
        value = print_info()

        if value == '1':  # 因为value是str类型
            add_info()  # 调用增加学员信息的函数
        elif value == '2':
            del_info()  # 调用删除信息的函数
        elif value == '3':
            alter_info()  # 调用修改信息的函数
        elif value == '4':
            search_info()  # 查询学员信息
        elif value == '5':
            break  # 结束程序运行
        elif value == '6':
            show_all()
        else:
            print('功能选择错误,请重新选择')
python实现学员管理系统-小白菜博客