学生成绩管理系统功能:增.删.改.查.排序.这五个部份组成.均由单独的函数完成.其中信息的存取均以字典形式表达.
#student_info.py
#插入学生信息
def input_student():
infos=[]
while True:
n=input("请输入学生姓名:")
if not n:
break
a=int(input("请输入年龄:"))
s=int(input("请输入成绩:"))
d={'name':n,'age':a,'score':s} #d=dict(name=n,age=a,score=s)
infos.append(d) #将字典数据添加到列表中
return infos
#显示信息
def output_student(L):
print("+------------+------------+------------+")
print("| 姓名 | 年龄 | 成绩 |")
print("+------------+------------+------------+")
for d in L: #绑定字典
n=d['name']
a=d['age']
s=d['score']
n=str(n)
a=str(a) #将整型转换成字符串
s=str(s)
print("|"+n.center(12)+"|"+a.center(12)+"|"+s.center(12)+"|")
print("+------------+------------+------------+")
#删除信息
def delete_student(L):
name=input(print("请输入要删除的学生姓名:"))
i=0
while i
if L[i]['name']==name:
del L[i]
print("学生"+name+"删除成功")
return True
elif i>=len(L)-1:
print("学生"+name+"不存在")
return False
i+=1
#修改学生成绩
def modify_student_score(L):
n=input("请输入要修改的学生姓名:")
i=0
while i
if L[i]['name']==n:
L[i]['score']=input("请输入新成绩:")
print("修改成绩OK")
return True
elif i>=len(L)-1:
print(name+"学生不存在,不能修改")
return False
i+=1
#by学生成绩排序
def output_student_score_desc(L):
lis=sorted(L,key=lambda d:d['score'],reverse=True)
output_student(lis)
def output_student_score_asc(L):
lis=sorted(L,key=lambda d:d['score'],reverse=False)
output_student(lis)
#by学生年龄排序
def output_student_age_desc(L):
lis=sorted(L,key=lambda d:d['age'],reverse=True)
output_student(lis)
def output_student_age_asc(L):
lis=sorted(L,key=lambda d:d['age'],reverse=False)
output_student(lis)
#解释说明:
#sorted(iterable,key=None,reverse=False) 函数作用是将原可迭代对象排序,生成新的列表
#单步测试
# l=[]
# l+=input_student()
# output_student(l)
# menu.py
def show_menu():
print("+--------------------------------+")
print("| 1) 添加学生信息 |")
print("| 2) 查看学生信息 |")
print("| 3) 删除学生信息 |")
print("| 4) 修改学生成绩 |")
print("| 5) 按学生成绩高-低显示学生信息 |")
print("| 6) 按学生成绩低-高显示学生信息 |")
print("| 7) 按年龄成绩高-低显示学生信息 |")
print("| 8) 按年龄成绩低-高显示学生信息 |")
print("| q) 退出 |")
print("+--------------------------------+")
#main.py
from menu import show_menu
from student_info import *
def main():
infos=[]
while True:
show_menu()
s=input("请选择:")
if s=='q':
return #退出
elif s == '1':
infos += input_student()
# infos.extend(input_student())
elif s == '2':
output_student(infos)
elif s == '3':
delete_student(infos)
elif s=='4':
modify_student_score(infos)
elif s=='5':
output_student_score_desc(infos)
elif s=='6':
output_student_score_asc(infos)
elif s=='7':
output_student_age_desc(infos)
elif s=='8':
output_student_age_asc(infos)
main() #从主函数开始