python编写学生管理系统/毕业设计/课堂练习

Python编写学生管理系统/毕业设计/课堂练习

最近许多童鞋都在搞毕业设计、专业课作业什么的,今天给各位同学们分享个学生成绩管理系统程序,代码全部由Python编写完成,运行环境Python3.X即可。

效果图:
在这里插入图片描述

Python代码:

def meun():
    menu_info = '''+---------------------+
|1)添加学生信息                           |
|2)添加学生成绩                           |
|3)显示所有学生的信息                     |
|4)删除学生信息                           |
|5)修改学生信息                           |
|6)按学生成绩高-低显示学生信息           |
|7)显示某一科学生成绩排名信息             |
|8)显示不及格科目超过两科的学生的所有信息 |
|退出:其他任意按键或<回车>              |
+---------------------+
'''
    print(menu_info)

def get_score_chinese(*l):
    for x in l:
        return x.get("chinese")

def get_score_math(*l):
    for x in l:
        return x.get("math")
    
def get_score_english(*l):
    for x in l:
        return x.get("english")

def get_score_history(*l):
    for x in l:
        return x.get("history")

def get_score_program(*l):
    for x in l:
        return x.get("program")

def get_score_sport(*l):
    for x in l:
        return x.get("sport")


# 1)添加学生信息
def add_student_info():
    L = []
    while True:
        name = input("请输入要添加的学生的姓名:")
        if not name:  # 名字为空 跳出循环
            break
        try:
            number = int(input("请输入学生的学号:"))
            major = input("请输入学生的专业:")
        except:
            print("输入无效,不是整形数值....重新录入信息")
            continue
        info = {"name":name,"number":number,"major":major,"chinese":0,"math":0,"english":0,"history":0,"program":0,"sport":0}
        L.append(info)
    print("学生信息录入完毕!!!")
    return L

# 2)添加学生成绩
def add_student_score(student_info):
    print('请选择你要进行录入成绩的科目')
    print('1—————————————语文')
    print('2—————————————数学')
    print('3—————————————英语')
    print('4—————————————历史')
    print('5—————————————程序')
    print('6—————————————体育')
    choice = int(input('请输入科目对应字母:'))
    if choice == 1:
        print("请依次输入语文成绩")
        for i in student_info:
            print(i.get("name"),i.get("number"),i.get("major"))
            tscore = int(input("请输入语文成绩:"))
            i['chinese'] = tscore
    elif choice == 2:
        print("请依次输入数学成绩")
        for i in student_info:
            print(i.get("name"),i.get("number"),i.get("major"))
            tscore = int(input("请输入数学成绩:"))
            i['math'] = tscore
            return i
    elif choice == 3:
        print("请依次输入英语成绩")
        for i in student_info:
            print(i.get("name"),i.get("number"),i.get("major"))
            tscore = int(input("请输入英语成绩:"))
            i['english'] = tscore
            return i
    elif choice == 4:
        print("请依次输入历史成绩")
        for i in student_info:
            print(i.get("name"),i.get("number"),i.get("major"))
            tscore = int(input("请输入历史成绩:"))
            i['history'] = tscore
            return i
    elif choice == 5:
        print("请依次输入程序成绩")
        for i in student_info:
            print(i.get("name"),i.get("number"),i.get("major"))
            tscore = int(input("请输入程序成绩:"))
            i['program'] = tscore
            return i
    elif choice == 6:
        print("请依次输入体育成绩")
        for i in student_info:
            print(i.get("name"),i.get("number"),i.get("major"))
            tscore = int(input("请输入体育成绩:"))
            i['sport'] = tscore
            return i
    else :
        print("您好像并未输入正确的数字哦")
    
# 3)显示所有学生的信息
def show_student_info(student_info):
    if not student_info:
        print("好像并没有要输出的学生的信息哦")
        return
    print("姓名\t学号\t专业\t语文\t数学\t英语\t历史\t程序\t体育")
    for i in student_info:
        print(i.get("name"),i.get("number"),i.get("major"),i.get("chinese"),i.get("math"),i.get("english"),i.get("history"),i.get("program"),i.get("sport"))

  
# 4)删除学生信息
def del_student_info(student_info,del_name = ''):
    if not del_name:
        del_name = input("请输入删除的学生的姓名:")
    for info in student_info:
        if del_name == info.get("name"):
            print("该学生信息已删除")
            return info
    raise IndexError("不好意思,没有找到%s这个学生" %del_name)

# 5)修改学生信息
def mod_student_info(student_info):
    mod_name = input("请输入想要修改的学生姓名:")
    for info in student_info:
        if mod_name == info.get("name"):
            name = input("请输入想要修改的学生姓名:")
            number = int(input("请输入想要修改的学生的学号:"))
            major = input("请输入想要修改的学生的专业:")
            chinese = int(input("请输入想要修改的该学生的语文成绩:"))
            math = int(input("请输入想要修改的该学生的数学成绩:"))
            english = int(input("请输入想要修改的该学生的英语成绩:"))
            history = int(input("请输入想要修改的该学生的历史成绩:"))
            program = int(input("请输入想要修改的该学生的程序成绩:"))
            sport = int(input("请输入想要修改的该学生的体育成绩:"))
            info['name'] = name
            info['number'] = number
            info['major'] = major
            info['chinese'] = chinese
            info['math'] = math
            info['english'] = english
            info['history'] = history
            info['program'] = program
            info['sport'] = sport
            print("学生信息已修改完毕")
            return info
    raise IndexError("学生信息不匹配,没有找到%s" %mod_name)

# 6)显示某一科学生成绩排名信息
def score_reduce(student_info):
    print('请选择你要进行查看成绩的科目')
    print('1—————————————语文')
    print('2—————————————数学')
    print('3—————————————英语')
    print('4—————————————历史')
    print('5—————————————程序')
    print('6—————————————体育')
    choice = int(input("请输入选项:"))
    m = 1
    if choice == 1:
        mit = sorted(student_info ,key = get_score_chinese, reverse = True)
        for i in mit:
            print(i.get("name"),i.get("number"),i.get("major"),i.get("chinese"),m)
            m = m + 1
        print("语文成绩排名输出完毕")
    elif choice == 2:
        mit = sorted(student_info ,key = get_score_math, reverse = True)
        for i in mit:
            print(i.get("name"),i.get("number"),i.get("major"),i.get("math"),m)
            m = m + 1
        print("数学成绩排名输出完毕")
    elif choice == 3:
        mit = sorted(student_info ,key = get_score_english, reverse = True)
        for i in mit:
            print(i.get("name"),i.get("number"),i.get("major"),i.get("english"),m)
            m = m + 1
        print("英语成绩排名输出完毕")
    elif choice == 4:
        mit = sorted(student_info ,key = get_score_history, reverse = True)
        for i in mit:
            print(i.get("name"),i.get("number"),i.get("major"),i.get("history"),m)
            m = m + 1
        print("历史成绩排名输出完毕")
    elif choice == 5:
        mit = sorted(student_info ,key = get_score_program, reverse = True)
        for i in mit:
            print(i.get("name"),i.get("number"),i.get("major"),i.get("program"),m)
            m = m + 1
        print("程序成绩排名输出完毕")
    elif choice == 6:
        mit = sorted(student_info ,key = get_score_sport, reverse = True)
        for i in mit:
            print(i.get("name"),i.get("number"),i.get("major"),i.get("sport"),m)
            m = m + 1
        print("程序成绩排名输出完毕")
    else :
        print("请输入正确的选择哦")


# 7)显示某一学生的所有信息
def show_onestudent_info(student_info):
    if not student_info:
        print("好像并没有要输出的学生的信息哦")
        return
    tname = input("请输入你想查询的学生的姓名:")
    print("姓名\t学号\t专业\t语文\t数学\t英语\t历史\t程序\t体育")
    for i in student_info:
        if tname == i.get("name"):
            print(i.get("name"),i.get("number"),i.get("major"),i.get("chinese"),i.get("math"),i.get("english"),i.get("history"),i.get("program"),i.get("sport"))
            print("该学生信息如上")
    else :
        print("学生信息错误,没有找到%s" %tname)

# 8)显示不及格科目超过两科的学生的所有信息
def show_student_noinfo(student_info):
    sum = 0
    for i in student_info:
        if i['chinese']<60:
            sum=sum+1
        if i['math']<60:
            sum=sum+1
        if i['english']<60:
            sum=sum+1
        if i['history']<60:
            sum=sum+1
        if i['program']<60:
            sum=sum+1
        if i['sport']<60:
            sum=sum+1
        if sum>2:
            print(i.get("name"),i.get("number"),i.get("major"),i.get("chinese"),i.get("math"),i.get("english"),i.get("history"),i.get("program"),i.get("sport"))
        sum = 0
    print("不及格科目超过两科的学生已显示完毕")
    
def main():
    student_info = []
    while True:
        meun()
        number = input("请输入选项:")
        if number == '1':                                                           # 1)添加学生信息
            student_info = add_student_info()
        elif number == '2':                                                         # 2 )添加学生成绩
            add_student_score(student_info)
        elif number == '3':                                                         # 3)显示所有学生的信息
            show_student_info(student_info)
        elif number == '4':                                                         # 4)删除学生信息
            del_student_info(student_info,del_name = '')           
        elif number == '5':                                                         # 5)修改学生信息    
            student = mod_student_info(student_info)
        elif number == '6':                                                         # 6)显示某一科学生成绩排名信息
            score_reduce(student_info)
        elif number == '7':                                                         # 7)显示某一学生的所有信息
            show_onestudent_info(student_info)
        elif number == '8':                                                         # 8)显示不及格科目超过两科的学生的所有信息
            show_student_noinfo(student_info)                                       
        else:
            break
        input("输入回车可显示菜单")

if __name__ == "__main__":
    main()

有帮助别忘了,关注老余哦!

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码哥-老余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值