python基础-学习记录day11

99 阅读3分钟

学生管理系统

目标:完成学生管理系统

功能:完成学生的添加、删除、修改、查询功能

# 数据存储仓库
stu_list = [
    {'id': 1, 'name': '花花1', 'tel': '1234561'},
    {'id': 2, 'name': '花花2', 'tel': '1234562'},
    {'id': 3, 'name': '花花3', 'tel': '1234563'},
    {'id': 4, 'name': '花花4', 'tel': '1234564'},
    {'id': 5, 'name': '花花1', 'tel': '1234565'},
]


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


# 获取用户输入的函数
def get_choose_number():
    choose_number = input('请输入你的选择编号:')  # asdfgh
    # 如果不是数字  或者我的数字 不是 1 2 3 4 5
    if not choose_number.isdigit() or choose_number not in ['1', '2', '3', '4', '5']:
        return -1
    return int(choose_number)  # 整型的编号


# 主函数
def main():
    while True:  # 不加只能执行一次
        welcome()  #
        number = get_choose_number()  # number有什么用?
        if number == -1:
            print('编号输入有误,请重新输入!')
            continue
        if number == 1:
            print('调用添加函数的功能')
            add_stu()
        elif number == 2:
            print('调用删除学员的功能')
            del_stu()
        elif number == 3:
            print('调用修改学员的功能')
            set_stu()
        elif number == 4:
            print('调用查找学员的功能')
            find_stu()
        else:
            print('退出系统了')
            break


# 添加学员
def add_stu():
    # 标志 用于改变我的循环条件
    flag = True  # -----F
    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(new_name, '同学信息添加成功!!')
            print(stu_list)
            add_next = input('是否继续添加(1、添加 2、返回系统首页)')  # 除了输入2的情况下退出其他情况下默认继续添加的
            if add_next == '2':
                flag = False


# 删除学员
def del_stu():
    flag = True
    while flag:
        stu_id = int(input('请输入你要删除学员的id:'))
        for data in stu_list:  # data代表的就是每条学员信息
            if data['id'] == stu_id:
                stu_list.remove(data)
                print('删除成功')
                print(stu_list)
                break
        else:
            print('当前的学员id不存在请重新输入!')
        del_next = input('是否继续删除学员信息(1、删除 2、不删除)')
        if del_next == '2':
            flag = False


# 修改学员
def set_stu():
    flag = True
    while flag:
        stu_data = int(input('请输入你要修改的学员学号:'))
        for data in stu_list:
            if data['id'] == stu_data:
                data['id'] = int(input('请输入修改后的id:'))
                data['name'] = input('请输入修改后的名字:')
                data['tel'] = input('请输入修改后的手机号:')
                print('修改成功!!')
                break
        else:
            print('学员id不存在请重新输入')
        set_next = int(input('是否继续修改学员信息(1、修改2、不修改)'))
        if set_next == 2:
            flag = False
    print(stu_list)  # 检测数据


# 查找学员
"""完善学员管理系统之查找学员功能  
模仿前面三个函数功能实现 
根据学员名字查询即可。不考虑重复数据能查到即可。"""


def find_stu():
    flag = True
    while flag:
        # 设置一个空列表 用于临时保存学员的数据作为查找结果
        temp_res = []
        find_name = input("请输入你要查找的学员姓名:")
        for data in stu_list:
            if find_name == data["name"]:
                temp_res.append(data)
        if len(temp_res) != 0:
            print("查找成功!")
            print(temp_res)
        else:
            print("输入的姓名查询无结果,请重新输入!")
        find_next = int(input('是否继续查找学员信息(1、查找2、不查找)'))
        if find_next == 2:
            flag = False
    print(stu_list)


# # 程序主入口
if __name__ == '__main__':  # 语法是固定的
    main()

查询功能展示:

1684638618633.jpg

只展示部分功能,剩余功能可自行运行代码(部分功能点可继续优化,此代码只简易实现功能)。