一,前言
程序主要功能:信息输入,信息查询,删除信息,显示全部信息,成绩排序(按单科或总分),其中检索功能所需的数字是单个信息存储的位置,所以信息会在检索前后,打印出相关信息。以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