韦奇_学生管理系统_python

学生管理系统_python

#  -*- coding: utf-8 -*-

'''实现控制函数'''
def cai_lsit():
        print("*" * 40)
        print("*				学生管理系统			 *")
        print("*  	    1. 添加新学生信息              *")
        print("* 	    2. 通过学号修改学生信息		 *")
        print("*		3. 通过学号删除学生信息		 *")
        print("*		4. 通过姓名删除学生信息		 *")
        print("* 	    5. 通过学号查询学生信息          *")
        print("*		6. 通过姓名查询学生信息          *")
        print("*		7. 显示所有学生信息             *")
        print("*		8. 退出系统			  		 *")
        print("*" * 40)

def add_stu(stu_list_zong):
    sids = []
    for si in stu_list_zong:
        sids.append(si['sid'])
    try:
        # 创建字典  包含学生信息
        add = {
            'sid' : max(sids) +1, # 确定编码,永远比现有的大1
            'name':input("请输入姓名:"),
            'age': input("请输入年龄:"),
            'gender' : input("请输入性别:")
        }
        stu_list_zong.append(add)
        print(f"添加{ add['name']}学生成功")
        print(stu_list_zong)

    except:
        print("添加学生出错,请重新选择菜单进行添加")

# 修改
def update_stu(stu_list_zong):
    sids = []
    for si in stu_list_zong:
        sids.append(si['sid'])
    num = input("请输入修改id:")
    try:
        if int(num) in sids:
            for stu_sid in stu_list_zong:
                if stu_sid['sid'] == int(num):
                    stu_sid['name'] = input("请输入修改name:")
                    print('修改成功')
                else:
                    pass
            print(stu_list_zong)

    except:
        print('此id未在学生库中,请查明id后进行修改')

# 删除sid
def del_stu_num(stu_list_zong):
    sids = []
    for si in stu_list_zong:
        sids.append(si['sid'])
    num = input("请输入修改id:")
    try:
        if int(num) in sids:
            for stu_sid in stu_list_zong:
                if stu_sid['sid'] == int(num):
                    index = (stu_list_zong.index(stu_sid))
                    del stu_list_zong[index]
                    print('删除成功')
                else:
                    pass

            print(stu_list_zong)

    except:
        print('此id未在学生库中,请查明id后进行修改')

# 删除name
def del_stu_stu(stu_list_zong):
    sids = []
    for si in stu_list_zong:
        sids.append(si['name'])
    try:
        name = input("请输入修改name:")
        if name in sids:
            for stu_sid in stu_list_zong:
                if stu_sid['name'] == name:
                    index = (stu_list_zong.index(stu_sid))
                    del stu_list_zong[index]
                    print('删除成功')
                else:
                    print('此学生未在学生库中')
            print(stu_list_zong)
    except:
        print('此学生未在学生库中,请查明后进行修改')

# 查询sid
def select_stu_sid(stu_list_zong):
    sids = []
    for si in stu_list_zong: sids.append(si['sid'])
    try:
        sid = input("请输入sid:")
        if int(sid) in sids:
            for stu_sid in stu_list_zong:
                if stu_sid['sid'] == int(sid):
                    print(stu_sid)
                    print('查询成功')
                else:
                    print('此学生未在学生库中')
            # print(stu_list_zong)
    except:
        print('此学生未在学生库中,请查明后进行修改')

# 查询姓名name
def select_stu_name(stu_list_zong):
    sids = []
    for si in stu_list_zong: sids.append(si['name'])
    try:
        name = input("请输入name:")
        if name in sids:
            for stu_sid in stu_list_zong:
                if stu_sid['name'] == name:
                    print(stu_sid)
                    print('查询成功')
                else:
                    print('此学生未在学生库中')
            # print(stu_list_zong)
    except:
        print('此学生未在学生库中,请查明后进行修改')

# 查询姓名
def select_stu_all(stu_list_zong):
    print(stu_list_zong)

'''runner是实现菜单函数,并进行了校验'''
def runner():
    while True:
        select_op = input("输入编号选择操作:")
        try:
            if (select_op) == 'lists':  cai_lsit()
            # 3. 实现添加学生函数,函数参数为编号,姓名,年龄,性别四个参数,返回是否添加成功的结果,要求编号不可重复。
            elif select_op == '1':  add_stu(stu_list_zong)
            #4. 实现修改函数,参数为学号,如果学生存在,则进行修改,不存在输出提示,并返回是否修改成功
            elif select_op == '2': update_stu(stu_list_zong)
            #5. 实现删除函数,参数为学号,如果学生存在,则进行删除,不存在输出提示,并返回是否删除成功
            elif select_op == '3': del_stu_num(stu_list_zong)
            # 6. 实现删除函数,参数为姓名,如果学生存在,则进行删除(同名学生全部删除),不存在输出提示,并返回是否删除成功
            elif select_op == '4': del_stu_stu(stu_list_zong)
            # 7. 实现查询函数,参数为学号,如果学生存在,则输出学生信息,不存在输出提示,并返回是否查询成功
            elif select_op == '5': select_stu_sid(stu_list_zong)
            # 8. 实现查询函数,参数为姓名,如果学生存在,则输出学生信息(同名学生全部输出),不存在输出提示,并返回是否删除成功
            elif select_op == '6': select_stu_name(stu_list_zong)
            # 9. 实现函数,输出所有学生信息
            elif select_op == '7': select_stu_all(stu_list_zong)
            #退出
            elif select_op == '8':  break
            else:
                print('请输入菜单编号,获取菜单输入"lists"')
        except:
            print('未输入正确的菜单号,获取菜单输入"lists"')

if __name__ == '__main__':
    print('欢迎来到学生管理系统')
    stu_list_zong = [
        {
        'sid' :1,
        'name':'very',
        'age': '18',
        'gender' : '男'
        },
    ]
    runner()