【python】简易的学员管理系统

119 阅读2分钟

前面,我们已经接触到函数,从简单入门到高阶函数,这里则使用函数,实现一个简单的学员管理系统,基本功能包括:对数据的增删改查:

# coding=utf-8
# author:Maria
# date:2023/5/20 19:34

"""数据存储仓库"""
stu_list = [
    {'id': 1, 'name': '苏白衣', 'tel': '111111'},
    {'id': 2, 'name': '素年', 'tel': '222222'},
    {'id': 3, 'name': '崔东山', 'tel': '333333'},
]

"""显示功能界面"""


def welcome():
    print("""
========欢迎进入学生管理系统,请选择需要实现的功能========
          ******** 1. 添加学员信息 ********
          ******** 2. 删除学员信息 ********
          ******** 3. 修改学员信息 ********
          ******** 4. 查找学员信息 ********
          ******** 5. 退出当前系统 ********     
    """)


"""获取用户选择的功能"""


def choose_need_num():
    need_num = input("请选择你需要的功能:")
    if need_num not in ['1', '2', '3', '4', '5']:
        return -1
    return int(need_num)


# 主函数
def main():
    while True:  # 一直循环运行,直到需要退出时才结束
        welcome()
        num = choose_need_num()
        if num == -1:
            print('编号输入有误,请重新输入:')
        if num == 1:
            print('----请添加学员信息----')
            add_stu()
        elif num == 2:
            print('----请选择需要删除的学员信息----')
            del_stu()
        elif num == 3:
            print('----请修改学员信息----')
            change_stu()
        elif num == 4:
            print('----请输入需要查找的学员信息----')
            find_stu()
        elif num == 5:
            print('退出当前系统.')
            break


"""添加学员信息"""


def add_stu():
    flag = True  # 设置一个标识,用于改变循环条件
    while flag:
        new_id = int(input("请输入学号:"))
        new_name = input("请输入姓名:")
        new_tel = input("请输入联系电话:")

        # 定义一个空字典,用于接收新增数据
        dict_data = {}
        dict_data['id'] = new_id
        dict_data['name'] = new_name
        dict_data['tel'] = new_tel

        if dict_data in stu_list:
            print('该学员已存在,请重新添加。')
        else:
            stu_list.append(dict_data)
            print(f'学员信息:{new_name},新增成功。')
            print(stu_list)
            add_next = input('是否继续添加(1 继续;2 返回):')
            if add_next == '2':
                flag = False  # 如果返回,则结束循环


"""删除学员信息"""


def del_stu():
    flag = True
    while flag:
        stu_id = int(input('请输入你要删除的学员ID:'))
        for data in stu_list:
            if data['id'] == stu_id:
                stu_list.remove(data)
                print('删除成功')
                print(stu_list)
                break
        else:
            print('要删除的学员信息不存在,请重新输入:')
        del_next = input('是否需要继续删除:(1 继续;2 返回):')
        if del_next == '2':
            flag = False


"""修改学员信息"""


def change_stu():
    flag = True
    while flag:
        stu_id = int(input('请输入你需要修改的学员ID:'))
        for data in stu_list:
            if data['id'] == stu_id:
                data['id'] = int(input('请输入修改后的学员ID:'))
                data['name'] = input('请输入修改后的学员姓名:')
                data['tel'] = input('请输入修改后学员的联系方式:')
                print('学员信息,修改成功')
                break
        else:
            print('需要修改的学员信息不存在,请重新输入:')
        change_next = input('请选择是否继续修改(1 继续; 2 返回):')
        if change_next == '2':
            flag = False
    print(stu_list)


"""查找学员信息"""


def find_stu():
    flag = True
    while flag:
        stu_id = input('请输入你需要查找的学员姓名:')
        for data in stu_list:
            if data['name'] == stu_id:
                print(f'这是你要查找的学员信息:{data}')
                break
        else:
            print('你要查找的数据不存在,请重新输入:')
        find_next = input('是否需要继续查找(1 继续;2 返回):')
        if find_next == '2':
            flag = False


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