python学生管理系统

student = []


def print_menu():
    print("学生管理系统V2.0")
    print("=" * 30)
    print("1.添加学生基本信息")
    print("2.通过学号删除学生信息")
    print("3.显示全部学生信息")
    print("4.通过姓名查找学生的信息")
    print("5.通过学号修改学生信息")
    print("6.导出学生基本信息到指定路径的文件中")
    print("7.查询成绩最高的学生基本信息")
    print("8.查询成绩最低的学生基本信息")
    print("9.根据学生综合成绩排序后显示基本信息")
    print("10.根据输入的综合成绩,统计大于输入成绩的人数")
    print("11.计算当前所有学生综合成绩的平均值")
    print("12.退出系统")
    print("=" * 30)

def add():
    xh = input("请输入学生的学号:")
    xm = input("请输入学生姓名:")
    xb = input("请输入学生性别:(男/女)")
    phone = input("请输入学生的手机号码:")
    score = input("请输入学生的综合成绩:")
    student_infos = {}
    student_infos["xuehao"] = xh
    student_infos["name"] = xm
    student_infos["sex"] = xb
    student_infos["phone"] = phone
    student_infos["score"] = score
    student.append(student_infos)
    print(student)





def del_info():
    stdId =input("请输入需要删除学生的学号:")
    z = 0
    for temp in student:
            if stdId == temp['xuehao']:
                    indexxuehao = student.index(temp)
                    z = 1
                    break
            else:
                    continue
    if z ==1:
            fina = input ("确认是否删除?(yes or no):")
            if fina == "yes":
                del student[indexxuehao]
                print("恭喜您已成功删除该新学生了!")
            else:
                print("您放弃删除该学生信息了!")
    else:
            print("很抱歉,系统不存在该学生信息!")

def display():
    print("*" * 30)
    print("学生的信息如下:")
    print("*" * 30)
    print("序号    学号    姓名    性别   手机号码    综合成绩")
    i = 1
    for temp in student:
        print("%d      %s      %s      %s     %s      %s" % (
            i, temp["xuehao"], temp["name"], temp["sex"], temp["phone"], temp["score"]))
        i += 1






def find():
    while True:
        name = input("请输入要查找的学生姓名")
        for temp in student:
            if temp['name'] == name:
                print("找到此学生,信息如下:")
                print("学号:%s  姓名:%s  性别:%s  手机号码:%s  综合成绩:%s  " % (
                    temp["xuehao"], temp["name"], temp["sex"], temp["phone"], temp["score"]))
                break
            else:
                print("没有这个学生")

def change():
    print("您选择了修改学生信息功能")
    gai = input("请输入你要修改学生的学号:")
    i = 0
    ii = 0
    for temp in student:
        if temp["xuehao"] == gai:
            ii = 1
            break
        else:
            i = i + 1
    if ii == 1:
        while True:
            xiaocaidan = int(input(" 1.修改学号\n 2.修改姓名 \n 3.修改性别 \n 4.修改手机号码 \n 5.修改综合成绩 \n 6.退出修改 \n"))
            if xiaocaidan == 1:
                aaa = input("输入更改后的学号:")
                # 修改后的学号要验证是否唯一
                i = 0
                ii1 = 0
                for temp1 in student:
                    if temp1["xuehao"] == aaa:
                        ii1 = 1
                        break
                    else:
                        i = i + 1
                if ii1 == 1:
                    print("输入学号不可重复,修改失败!")
                else:
                    temp["xuehao"] = aaa
                    print("学号已修改")
            elif xiaocaidan == 2:
                bbb = input("输入新的姓名:")
                temp["name"] = bbb
                print("姓名已修改")
            elif xiaocaidan == 3:
                ccc = input("输入新的性别(男/女):")
                temp["sex"] = ccc
                print("性别已修改")
            elif xiaocaidan == 4:
                ddd = input("输入新的手机号码:")
                temp["phone"] = ddd
                print("手机号码已修改")
            elif xiaocaidan == 5:
                eee = input("输入新的成绩:")
                temp["score"] = eee
                print("综合成绩已修改")
            elif xiaocaidan == 6:
                break
            else:
                print("输入错误请重新输入")
    else:
        print("学号输入错误,修改失败!")


def baocun():
    file = open("xueshengxinxi.txt", "w")
    file.write(str(student))
    file.write('\n')
    file.close()


def findmax():
    studentone = []
    for temp in student:  # 遍历字典的成绩
        studentone.append(temp["score"])  # 将遍历的成绩加入空列表
        studentone.sort(reverse=True)  # 将列表的值从大到小排序
        n = studentone[0]
    i = 0
    j = 0
    for temp in student:
        if temp["score"] == n:
            j = 1
            break
        else:
            i = i + 1
    if j == 0:
        print("没有此学生,查询失败!")
    else:
        print("找到此学生,信息如下:")
        print("学号:%s  姓名:%s  性别:%s  手机号码:%s  综合成绩:%s" % (
            temp["xuehao"], temp["name"], temp["sex"], temp["phone"], temp["score"]))


def findmin():
    studenttwo = []
    for temp in student:  # 遍历字典的成绩
        studenttwo.append(temp["score"])  # 将遍历的成绩加入空列表
        studenttwo.sort()  # 将列表的值从小到大排序
        n = studenttwo[0]
    i = 0
    j = 0
    for temp in student:
        if temp["score"] == n:
            j = 1
            break
        else:
            i = i + 1
    if j == 0:
        print("没有此学生,查询失败!")
    else:
        print("找到此学生,信息如下:")
        print("学号:%s  姓名:%s  性别:%s  手机号码:%s  综合成绩:%s  " % (
            temp["xuehao"], temp["name"], temp["sex"], temp["phone"], temp["score"]))


def paixu():
    print("从高到低成绩排序:")
    print("序号    学号    姓名    性别   手机号码    综合成绩")
    studentthree = []
    for temp in student:  # 遍历字典的成绩
        studentthree.append(temp["score"])  # 将遍历的成绩加入空列表
        studentthree.sort(reverse=True)  # 将列表的值从大到小排序
    for n in studentthree:
        i = 0
        j = 0
        for temp in student:
            if temp["score"] == n:
                j = 1
                break
            else:
                i = i + 1
        if j == 0:
            print("没有此学生,查询失败!")
        else:
            print("%d      %s      %s      %s     %s      %s" % (
                i, temp["xuehao"], temp["name"], temp["sex"], temp["phone"], temp["score"]))


def count():
    studentfour = []
    studentfive = []
    for temp in student:  # 遍历字典的成绩
        studentfour.append(temp["score"])  # 将遍历的成绩加入空列表
    a = input("请输入需要统计人数的成绩线(大于该成绩的人数):")
    i = 0
    for temp in studentfour:
        if temp[i] >= a:
            studentfive.append(temp[i])
        else:
            pass
        i += 1
    print("大于该成绩的人数有:%s" % (len(studentfive)))


def average():
    studentsix = []
    for temp in student:  # 遍历字典的成绩
        studentsix.append(temp["score"])  # 将遍历的成绩加入空列表
        studentsix = [int(x) for x in studentsix]
        tt = sum(studentsix)
        pingjun = tt / len(studentsix)
        print(pingjun)


def quit():
    while True:
        d = input("确定退出吗?(Yes or No):")
        if d == "Yes":
            break
        else:
            print("输入有误,请重新输入")


def last():
    while True:
        print_menu()
        key = input("请输入功能对应的数字:")
        if key == "1":
            add()
        elif key == "2":
            del_info()
        elif key == "3":
            display()
        elif key == "4":
            find()
        elif key == "5":
            change()
        elif key == "6":
            baocun()
        elif key == "7":
            findmax()
        elif key == "8":
            findmin()
        elif key == "9":
            paixu()
        elif key == "10":
            count()
        elif key == "11":
            average()
        elif key == "12":
            quit()

last()

你可能感兴趣的:(python学生管理系统)