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()
有帮助别忘了,关注老余哦!