用python编写学生管理系统

#该程序在设计返回值时用了flag(标志)和i(标识下标);
#之前在travers()函数的编写中for循环中缺少一个return导致在传递参数时会有错误:
# 主要体现在修改和删除首个元素时!值得警醒
students = []
name = ""
sex = ""
stuID = ""


def traverse(num):
    flag = 0
    i=-1
    for i in range(len(students)):
        if students[i]['stuID'] == num:
            flag = 1
            return flag,i
    return flag,i


def selectStu():
    stunum = input("请输入要查询学生的学号:")
    f,n=traverse(stunum)
    if f==1:
            print("该同学存在")
    else:
        print("没有此同学,查询失败!")
    print()
    return f ,n



def insertStu():
    global name
    global sex
    global stuID
    number = input("请输入学生学号:")
    f,n=traverse(number)
    if f == 1:
            print("该同学存在,无需添加")
    if f == 0:
        inform = {}
        name = input("请输入学生姓名:")
        sex = input("请输入学生性别:")
        inform['name'] = name
        inform['sex'] = sex
        inform['stuID'] = number
        students.append(inform)
        print("学生添加成功!")
    print()




def deleteStu():
    n ,m = selectStu()
    if n == 1:
        students.remove(students[m])
    if n == 0:
        print("没有此学生,删除失败!")
    else:
        print("删除成功!")

    print()


def editStu():
    n ,m = selectStu()
    if n == 1:
        while True:
            num = input("请选择——1.修改姓名  2.修改性别  3.修改学号  4.退出修改\n")
            if num == '1':
                newname = input("输入更改后的姓名:")
                students[m]['name'] = newname
            elif num == '2':
                newsex = input("输入更改后的性别:")
                students[m]['sex'] = newsex
            elif num == '3':
                newID = input("输入更改后的学号:")
                students[m]['stuID'] = newID
            elif num == '4':
                break
            else:
                print("输入错误,重新输入")
        print("修改成功!")

    else:
        print("没有此学生,修改失败!")


def display():
    print("学生的信息如下:")
    print("学号\t姓名\t性别")
    for temp in students:
        print("%4s\t%4s\t%4s\t" % (temp['stuID'], temp['name'], temp['sex']))
    print()


def quit():
    print("即将退出系统")
    print()


def menu():
    print("****学生管理系统****")
    print("1.添加学生信息")
    print("2.查询学生信息")
    print("3.删除学生信息")
    print("4.修改学生信息")
    print("5.显示学生信息")
    print("6.退出系统")



def main():
    while True:
        menu()
        key = input("请输入选择操作的序号:")
        if key == '1':
            insertStu()
        elif key == '2':
            selectStu()
        elif key == '3':
            deleteStu()
        elif key == '4':
            editStu()
        elif key == '5':
            display()
        elif key == '6':
            quit()
            break
        else:
            print("操作错误!请重新输入")


main()



猜你喜欢

转载自blog.csdn.net/weixin_42156846/article/details/88750374