1-3-python学生管理系统

声明!

通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章,如涉及侵权马上删除文章,笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负.

文章为个人学习笔记。

结果


# 函数用于添加学生信息
xue_sheng_zi_dian = {}
# 添加学生的id,姓名,成绩
def add_xue_sheng(zi_dain,xue_shen_id,name,grade):
    if xue_shen_id in zi_dain:
        print("学号已存在")
    else:
		# 使用字典嵌套
        student = {'name': name, 'grade': grade}
		# student为xue_shen_id的值
        zi_dain[xue_shen_id] = student
        print("学生信息已添加")

# 函数用于显示所有学生信息
def show_all_students(zi_dain):
    for xue_shen_id, student in zi_dain.items():
        print(f"学号:{xue_shen_id},姓名:{student['name']},成绩:{student['grade']}")

# 查找学生成绩
def find_student(zi_dain,xue_shen_id):
    if xue_shen_id in zi_dain:
        student = zi_dain[xue_shen_id]
        print(f"学号:{xue_shen_id},姓名:{student['name']},成绩:{student['grade']}")
    else:
        print("学号不存在")


# 修改学生成绩
def modify_student(zi_dain,xue_shen_id,new_grade):
    if xue_shen_id in zi_dain:
        student = zi_dain[xue_shen_id]
        student['grade'] = new_grade
        print("学生成绩已修改")
    else:
        print("学号不存在")

# 删除学生成绩
def delete_student(zi_dain,xue_shen_id):
    if xue_shen_id in zi_dain:
        del zi_dain[xue_shen_id]
        print("学生成绩已删除")
    else:
        print("学号不存在")

# 插入学生成绩
def insert_student(zi_dain,xue_shen_id,name,grade):
    if xue_shen_id in zi_dain:
        print("学号已存在")
    else:
        name = input("请输入学生姓名:")
        grade = float(input("请输入学生成绩:"))
        student = {'name': name, 'grade': grade}
        zi_dain[xue_shen_id] = student
        print("学生信息已插入")

# 按平均分排列
def sort_by_average(zi_dain):
    sorted_students = sorted(zi_dain.items(), key=lambda x: x[1]['grade'], reverse=True)
    for xue_shen_id, student in sorted_students:
        print(f"学号:{xue_shen_id},姓名:{student['name']},成绩:{student['grade']}")


# 显示学生高分,低分,平均分
def show_statistics(zi_dain):
    if len(zi_dain) == 0:
        print("没有学生数据")
    else:
        total_grade = sum(student['grade'] for student in zi_dain.values())
        average_grade = total_grade / len(zi_dain)

        highest_grade = max(student['grade'] for student in zi_dain.values())

        lowest_grade = min(student['grade'] for student in zi_dain.values())

        print(f"最高分:{highest_grade}")
        print(f"最低分:{lowest_grade}")
        print(f"平均分:{average_grade}")

def main():
    while True:
        # 打印菜单选项
        print('*********************************')
        print('-------欢迎使用学生成绩管理系统-------')
        print('*        【1】输入学生成绩         *')
        print('*        【2】显示学生数据         *')
        print('*        【3】查找学生成绩         *')
        print('*        【4】修改学生成绩         *')
        print('*        【5】删除学生成绩         *')
        print('*        【6】插入学生成绩         *')
        print('*        【7】按平均分排列         *')
        print('*        【8】给出高分,低分,平均分 *')
        print('*        【0】退出管理系统         *')
        print('*********************************')
        choice = input("选择数字【】:")
        # 输入内容
        if choice == '1':
            # 输入学生:学号,名字,成绩
            student_id = input("请输入学生学号:")
            name = input("请输入学生姓名:")
            grade = float(input("请输入学生成绩:"))
            # 加入学生的内容
            add_xue_sheng(xue_sheng_zi_dian,student_id,name,grade)

        # 显示所有学生信息
        elif choice == '2':
            # 显示统计数据
            show_all_students(xue_sheng_zi_dian)

        # 查找学生成绩
        elif choice == '3':
            student_id = input("请输入要查找的学生学号:")
            find_student(xue_sheng_zi_dian,student_id)

        # 修改学生成绩
        elif choice == '4':
            student_id = input("请输入要修改的学生学号:")
            new_grade = float(input("请输入新的成绩:"))
            modify_student(xue_sheng_zi_dian,student_id,new_grade)
        # 删除学生成绩
        elif choice == '5':
            student_id = input("请输入要删除的学生学号:")
            delete_student(xue_sheng_zi_dian,student_id)

        # 插入学生成绩
        elif choice == '6':
            student_id = input("请输入要插入的学生学号:")
            insert_student(xue_sheng_zi_dian,student_id,name,grade)

        # 按平均分排列
        elif choice == '7':
            sort_by_average(xue_sheng_zi_dian)

        # 显示学生高分,低分,平均分
        elif choice == '8':
            show_statistics(xue_sheng_zi_dian)

        # 退出管理系统
        elif choice == '0':
            print("感谢使用学生成绩管理系统,再见!")
            break
        else:
            print("输入错误,请重新输入!")

if __name__ == '__main__':
    main()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值