Python関数の知識に基づいて学生管理システムを完成させ、最適化する

タスク: Python 関数の知識に基づいて学生管理システムを完成させ、最適化します。

具体的な要件
1. 次のサイクルのメイン プロセス コードに基づいて、完全な関数定義と呼び出しコードを補足して、学生管理システムの完全な最適化を実現します; 2. システム内の操作オプション 1、2、3、4、および
6第 4 章では、システム機能要件は包括的なアプリケーションで一貫しています;
3. システム機能の操作オプション 5 機能はさらに最適化する必要があります。ユーザーが「5」を入力すると、コンソールはユーザーに次のことを許可します。特定の生徒の成績をカウントするか、全生徒
の成績をカウントするかを選択 特定の生徒の成績をカウントする場合は、カウントする生徒の生徒番号を入力 保存されている生徒情報すべてに生徒情報が含まれている場合は、計算学生の3科目の成績合計と平均点を取得して出力し、それ以外の場合は「○○学生情報が保存されませんでした」と出力します。
全学生の成績を集計する場合は、コースを区別してコースごとに全学生の平均成績を出力します。

# encoding utf=8
# 定义一个函数,显示可以使用的功能列表给用户
def show_menu():
    print("-" * 30)
    print("欢迎使用学生管理系统=======================")
    print(" 1.添加学生的信息")
    print(" 2.删除学生的信息")
    print(" 3.修改学生的信息")
    print(" 4.查询学生的信息")
    print(" 5.学生成绩统计")
    print(" 6.退出系统")
    print('-' * 30)


# 定义一个列表,用来存储多个学生的信息
students = []


# 学号已存在
def idExist(stuId):
    # 验证学号是否唯一
    i = 0
    leap = 0
    for temp in students:
        if temp['id'] == stuId:
            leap = 1
            break
        else:
            i = i + 1
    if leap == 1:
        return True


# 学号不存在
def noId(delId):
    i = 0
    leap = 0
    for temp in students:
        if temp['id'] == delId:
            leap = 1
            break
        else:
            i = i + 1
    if leap == 0:
        return True


# 添加学生的功能函数
def add_info():
    # 实现添加学生的功能
    print("您选择了添加学生信息功能")
    stuId = input("请输入学生学号(学号不可重复):")
    if (idExist(stuId)):
        print("输入学生学号重复,添加失败!")
        start()
    name = input("请输入学生姓名:")
    sex = input("请输入学生性别:")
    chinese = int(input("请输入学生语文成绩:"))
    math = int(input("请输入学生数学成绩:"))
    english = int(input("请输入学生英语成绩:"))

    # 定义一个字典,存放单个学生信息
    stuInfo = {
    
    }
    stuInfo['name'] = name
    stuInfo['id'] = stuId
    stuInfo['sex'] = sex
    stuInfo['chinese'] = chinese
    stuInfo['math'] = math
    stuInfo['english'] = english

    # 单个学生信息放入列表
    students.append(stuInfo)
    print("添加成功!")


# 删除学生的功能函数
def del_info():
    print("您选择了删除学生功能")
    delId = input("请输入要删除的学生学号:")
    # i记录要删除的下标,leap为标志位,如果找到leap=1,否则为0
    i = 0
    leap = 0
    for temp in students:
        if temp['id'] == delId:
            leap = 1
            break
        else:
            i = i + 1
    if leap == 0:
        print("没有此学生学号,删除失败!")
    else:
        del students[i]
        print("删除成功!")


# 修改学生信息的功能函数
def update_info():
    print("您选择了修改学生信息功能")
    alterId = input("请输入你要修改学生的学号:")
    # 检测是否有此学号,然后进行修改信息
    # i = 0
    leap = 0
    for temp in students:
        if temp['id'] == alterId:
            leap = 1
            break
        # else:
        # i = i + 1
    if leap == 1:
        while True:
            alterNum = int(input(" 1.修改学号\n 2.修改姓名 \n 3.修改性别 \n 4.修改语文成绩 \n 5.修改数学成绩 \n 6.修改英语成绩 \n7.退出修改\n"))
            if alterNum == 1:
                newId = input("输入更改后的学号:")
                # 修改后的学号要验证是否唯一
                if (idExist(newId)):
                    print("输入学号不可重复,修改失败!")
                else:
                    temp['id'] = newId
                    print("学号修改成功")
            elif alterNum == 2:
                newName = input("输入更改后的姓名:")
                temp['name'] = newName
                print("姓名修改成功")
            elif alterNum == 3:
                newAge = input("输入更改后的性别:")
                temp['sex'] = newAge
                print("性别修改成功")
            elif alterNum == 4:
                chinese = input("输入更改后的语文:")
                temp['chinese'] = chinese
                print("语文修改成功")
            elif alterNum == 5:
                math = input("输入更改后的数学:")
                temp['math'] = math
                print("数学修改成功")
            elif alterNum == 6:
                english = input("输入更改后的英语:")
                temp['english'] = english
                print("英语修改成功")
            elif alterNum == 7:
                break
            else:
                print("输入错误请重新输入")
    else:
        print("没有此学号,修改失败!")


# 查询学生
def check_info():
    print("您选择了查询学生信息功能")
    searchID = input("请输入你要查询学生的学号:")
    # 验证是否有此学号
    i = 0
    leap = 0
    for temp in students:
        if temp['id'] == searchID:
            leap = 1
            break
        else:
            i = i + 1
    if leap == 0:
        print("没有此学生学号,查询失败!")
    else:
        print("找到此学生,信息如下:")
        print("学号:%s\n姓名:%s\n性别:%s\n语文成绩:%s\n数学成绩:%s\n英语成绩:%s\n" % (
            temp['id'], temp['name'], temp['sex'], temp['chinese'], temp['math'], temp['english']))


# 统计学生信息
def static_score():
    print("您选择了学生成绩统计")
    print("1:全部学生成绩统计")
    print("2:个人成绩统计")
    option = int(input("请输入您需要的功能"))
    if option == 1:
        i = 0
        cn = 0
        ma = 0
        en = 0
        temp1 = 0
        for temp1 in students:
            if len(students) != 0:
                cn += temp1["chinese"]
                ma += temp1["math"]
                en += temp1["english"]
                i += 1
            else:
                print("无学生信息!请返回添加学生信息!")
                start()

        print("语文总成绩:%.2f,平均成绩:%.2f" % (cn, cn / i))
        print("数学总成绩:%.2f,平均成绩:%.2f" % (ma, ma / i))
        print("英语总成绩:%.2f,平均成绩:%.2f" % (en, en / i))

    elif option == 2:
        searchID = input("请输入你要统计成绩学生的学号:")
        i = 0
        leap = 0
        for temp in students:
            if temp['id'] == searchID:
                leap = 1
                break
            else:
                i = i + 1
        if leap == 0:
            print("没有此学生学号,查询失败!")
        else:
            print("找到此学生,信息如下:")
            sum = float(temp['chinese']) + float(temp['math']) + float(temp['english'])
            avg = float(sum / 3)
            print("总成绩:%.2f" % sum)
            print("平均成绩:%.2f" % avg)
    else:
        print("输入错误!")
        start()


def start():
    while True:
        # 1. 显示学生管理系统的功能菜单
        show_menu()
        key = int(input("请选择功能(序号):"))
        if key == 1:
            add_info()
        elif key == 2:
            del_info()
        elif key == 3:
            update_info()
        elif key == 4:
            check_info()
        elif key == 5:
            static_score()
        elif key == 6:
            print("欢迎使用本系统,谢谢")
            break
        else:
            print("您输入有误,请重新输入")


# 在培华机房开启系统
start()

良いと思ったら「いいね」をお願いします。ご質問がございましたら、コメントしてコミュニケーションをとることができます。

おすすめ

転載: blog.csdn.net/m0_47987937/article/details/120847615