使用Python语言完成一套学生成绩管理系统,这套操作系统可以帮助我们实现学生成绩的录入、修改、增添、删除、查询等一些操作。

**

学生管成绩理系统

**
系统流程图:
在这里插入图片描述实现原理:
学生管理系统主要运用字典来存储学生成绩,用while,for,if-else语句以及多分支if语句来实现各部分功能,同时还使用了format内置函数来达到定位输出的目的。在这个管理系统中,首次用到字典来获取学生数据,在学生成绩的录入、修改、查询、增添、删除、输出等操作中,是将单个学生信息储存在字典中,再达到输出目的。字典是由“关键字:值”对组成的集合体。通过定义函数,模块化实现各功能,最后在主函数中调用,以实现整个系统的增、删、改、查等功能。再者,本系统还求出了学生的平均成绩,方便老师查看学生的综合水平。
代码:

my_dict={}  #先定义一个空字典用来存放数据

#显示菜单函数
def show():
    print("***学生成绩管理系统***")
    print("***1.录入    成绩***")
    print("***2.修改    成绩***")
    print("***3.信息    查询***")
    print("***4.增加学生信息***")
    print("***5.删除学生信息***")
    print("***6.成绩    统计***")
    print("***7.退出    系统***")
    print("---------------------------")
    index=input('请输入你想要执行的操作:')
    return int(index) if index in list('1234567')  else 0

#录入模块
def asve_info():
    j=eval(input("请输入您将要录入成绩的学生人数:"))
    for i in range(0,j):
        my_name=input("请输入学生姓名:")
        my_no=(input("请输入学号:"))
        while my_no in my_dict :
             print('该学生已经存在!')
             my_no=(input("请输入学号:"))
        my_score1=int(input('请输入学生的数学成绩:'))
        while my_score1<0 or my_score1>100:
            print("很抱歉,您输入的成绩不符合规范,请重新输入!")
            my_score1=int(input('请输入学生的数学成绩:'))
        my_score2=int(input('请输入学生的语文成绩:'))
        while my_score2<0 or my_score2>100:
            print("很抱歉,您输入的成绩不符合规范,请重新输入!")
            my_score2=int(input('请输入学生的语文成绩:'))
        average=(my_score1+my_score2)/2
        dict1={'no':my_no,'name':my_name,'score1':my_score1,'score2':my_score2,'average':average}
        my_dict[my_no]=dict1
    print('\n')


    
                      
#修改模块
def change():
    my_no=input('请输入要修改学生的学号:')
    
    while my_no not in my_dict:
        print('您输入的学号有误,请重新输入!')
        my_no=input('请输入要修改学生的学号:')
        
    new_name=input('请输入要修改学生的名字:')
    
    a=input("是否要修改学生数学成绩(y/n):")
    if a=='y':
        new_score1=int(input('请输入学生的数学成绩:'))
    elif a=='n':
        new_score1=my_dict[my_no]["score1"]
        
    b=input("是否要修改语文成绩(y/n):")
    if b=='y':
        new_score2=int(input('请输入学生的语文成绩:'))
    elif b=='n':
        new_score2=my_dict[my_no]["score2"]
        
    average=(new_score1+new_score2)/2
    
    dict2={'no':my_no,'name':new_name,'score1':new_score1,'score2':new_score2,'average':average}
    my_dict[my_no]=dict2
    print('\n')


# 查询模块
def reach():
    my_no=input('请输入要查询学生的学号')
    if my_no not in my_dict:
        print('您所查找的学生不存在,请重新输入!')
    else:
        print('学号:{0}'.format(my_dict[my_no]["no"]))
        print('姓名:{0}'.format(my_dict[my_no]['name']))
        print('语文:{0}'.format(my_dict[my_no]['score1']))
        print('数学:{0}'.format(my_dict[my_no]['score2']))
        print('平均成绩:{0}'.format(my_dict[my_no]['average']))
    print('\n')


#增添
def add_info():
    dict4={}
    my_no=input('请输入要添加学生的学号:')
    while my_no in my_dict :
        print('该学生已经存在,请重新输入!')
        my_no=input('请输入要添加学生的学号:')
    my_name=input('请输入学生的姓名:')
    my_score1=int(input('请输入学生的数学成绩:'))
    while my_score1<0 or my_score1>100:
        print("很抱歉,您输入的成绩不符合规范!请重新输入!")
        my_score1=int(input('请输入学生的数学成绩:'))
    my_score2=int(input('请输入学生的语文成绩:'))
    while my_score2<0 or my_score2>100:
        print("很抱歉,您输入的成绩不符合规范!请重新输入!")
        my_score2=int(input('请输入学生的语文成绩:'))
    average=(my_score1+my_score2)/2
    dict4={'no':my_no,'name':my_name,'score1':my_score1,'score2':my_score2,'average':average}
    my_dict[my_no]=dict4
    print("增添成功!")
    print('\n')    

#删除模块
def delete_info():
    my_no=input('请输入要删除学生的学号:')
    while my_no  not in  my_dict:
        print('该学生不存在,请重新输入')
        my_no=input('请输入要删除学生的学号:')
    del my_dict[my_no]
    print('删除成功!')
print('\n')

#成绩统计
def print_scene():
    print('该班级学生信息如下:')
    print('-------------------')
    for value in my_dict.values():
        print('学号:{0} 姓名:{1} 语文:{2} 数学:{3} 平均成绩:{4}'.format(value['no'],value['name'],value['score1'],value['score2'],value['average']))
        print('\n')


#主函数用来调用其他模块
def main(): 
    while True:
        index = show()
        if index==1:
            asve_info()
        elif index==2:
            change()
            print_scene()
        elif index == 3:
            reach()
        elif index == 4:
            add_info()
        elif index == 5:
            delete_info()
        elif index == 6:
            print_scene()
        elif index == 7:
            print("期待您下次使用!")
            break
main()

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值