基于python语言的成绩管理系统

一,前言

程序主要功能:信息输入,信息查询,删除信息,显示全部信息,成绩排序(按单科或总分),其中检索功能所需的数字是单个信息存储的位置,所以信息会在检索前后,打印出相关信息。以python语言来实现所有功能该系统仅是入门级别的一个实例和实践,请勿当成专业的算法程序看待,仅此提供学习参考!**

二,程序代码

程序代码如下

stu_list=[]#定义列表保存相关信息
def stu_information():#输入和保存学生相关信息的函数,此为该系统的重要数据部分
    name=input("请输入该学生的姓名:")
    number=input("请输入该学生的学号:")
    sex=input("请输入该学生的性别:")
    math=input("请输入该学生的数学成绩:")
    chinese=input("请输入该学生的语文成绩:")
    english=input("请输入该学生的英语成绩:")
    stu={'name':name,'number':number,'sex':sex,'math':math,'chinese':chinese,'english':english}#创建并赋值字典键值对
    stu_list.append(stu) #将字典添加到列表中
    stu_all()#函数调用
    print("------添加成功!-------")


    
def stu_change():#修改学生信息功能的函数
    key1=eval(input("请输入要修改信息的序号:"))#以变量位置值作为列表索引,用于后面的查询和修改等功能
    if 0<= int(key1) <=len(stu_list) : #使用if-else可以检查输入格式正确性,并且输入错误时,利用下面函数复用可以重新输入变量值
        del stu_list[key1]#删除该对应的列表中的值,再重新输入信息,配合下面代码,起到修改代码的功能
        name1=input("请输入该学生修改后的姓名:")
        number1=input("请输入该学生修改后的学号:")
        sex1=input("请输入该学生修改后的性别:")
        math1=input("请输入该学生修改后的数学成绩:")
        chinese1=input("请输入该学生修改后的语文成绩:")
        english1=input("请输入该学生修改后的英语成绩:")
        stu={'name':name1,'number':number1,'sex':sex1,'math':math1,'chinese':chinese1,'english':english1}
        stu_list.append(stu)
        print("修改后的成绩为:")
        stu_all()#由于该算法功能使修改原来那个信息和新信息在列表的位置,所以显示出来,给用户指引
        print("------修改成功!-------")
    else:
        print("-"*5)
        print("输入格式错误或无该人的信息!请重新输入!")
        stu_change()#函数递归


def stu_delete():#删除相关信息功能的函数
    key1=eval(input("请输入要删除学生信息的序号:"))
    if 0<= int(key1) <=len(stu_list) : #判断输入值是否满足列表位置值的相关条件,以及避免数据系统内无信息而使用该功能
        del stu_list[key1]
        print("------删除成功!-------")
        print("新的信息如下:\n")
        stu_all()
    else:
        print("-"*5)
        print("输入格式错误或无该人的信息!请重新输入!")
        stu_delete()



def stu_check():#查找相关信息的函数
    key1=eval(input("请输入要查询学生信息的序号:"))
    if 0<= int(key1) <=len(stu_list) :
        print(stu_list[key1])
    else:
        print("-"*5)
        print("输入格式错误或无该人的信息!!!")
        stu_check()


def stu_all(*b):#显示该系统中的所有学生信息数据
        for i in range(0,len(stu_list)):#遍历列表,分别显示出各个数据列表中各个元素,即学生每人的相关信息,也为列表
            print(stu_list[i],end="\n")
            i+=1
        print("已显示系统内所有人的信息!")

def stu_all1(*b):#显示该系统中的所有类型排序学生信息数据
    for i in range(0,len(stu_list1)):#遍历列表,分别显示出各个数据列表中各个元素,即学生每人的相关信息,也为列表
            print(stu_list1[i],end="\n")
            i+=1


def stu_rank():#排序不同类型成绩的函数
    global stu_list1
    global rank_1
    global stu1
    stu_list1=[]#定义新列表,用于下面取出并安放列表元素
    student=stu_list
    rank_1=int(input("请输入排序方式(1.升序,2.降序):"))
    if rank_1 ==1:
        rank_1 =False
    elif rank_1 ==2:
        rank_1 =True
    else:
        print("输入错误!")
        stu_rank()
    for stu1 in student:#从列表中取出元素作为字典类型,便于后面排序
        stu_list1.append(stu1)
    rank_2=int(input("按照哪种类型排序(1.数学 2.语文3.英语 4.总分成绩 ):"))
    if rank_2 ==1:
        stu_list1.sort(key=lambda x: int(x['math']), reverse=rank_1)#lambda函数使得所需函数简单化,单行写入到sort函数中
    elif rank_2 ==2:
        stu_list1.sort(key=lambda x : int(x['chinese']),reverse=rank_1)
    elif rank_2 ==3:
        stu_list1.sort(key=lambda x : int(x['english']),reverse=rank_1)
    elif rank_2 ==4:
        stu_list1.sort(key=lambda x : int(x['math'])+int(x['chinese'])+int(x['english']),reverse=rank_1)
    else:
        print("输入错误!")
        stu_rank()
    stu_all1()
    

  
        
        

while True:#while循环使功能主界面能一直供用户使用,直到用户不需要为止
    print("\n")
    print("-----------------本系统为学生成绩管理系统,请选择系统功能:---------------------\n")
    print("                 1.输入学生信息;\n")
    print("                 2.修改学生的相关信息;\n")
    print("                 3.删除学生的相关信息;\n")
    print("                 4.查询学生信息;\n")
    print("                 5.显示所有学生的信息;\n")
    print("                 6.学生成绩排序;\n")
    print("                 0.退出程序;\n")
    print("                 -----------------------------------------------------------------------\n")
    select=eval(input("请输入你的功能选择:"))
    if select ==1:
        stu_information()#函数调用或传参使用       
    elif select ==2:
        stu_change()
    elif select ==3:
        stu_delete()
    elif select ==4:
        stu_check()
    elif select ==5:
        stu_all()
    elif select ==6:
        stu_rank()
    elif select ==0:
        print("---------------------------------------------\n")
        print("感谢你的使用!!!祝你考试旗开得胜!!!")
        print("开发者:SteveDraw,么么哒^_^")
        print("---------------------------------------------\n")
        break
    else:
        print("你的输入错误!请按照提示重新输入!")#错误输入格式提醒
        continue   
           


        



        


三,运行效果如图所示(部分):

最后的说明:程序之间并非是独立存在的,有些算法和步骤是相一致的或相似的,作者也是参考其他一些思路融汇贯通的,由于水平浅薄,程序之中的不足之处还请各位码农理解并提出改正,在此发布也希望各位也能在此有所启发,谢谢!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值