**
**
系统流程图:
实现原理:
学生管理系统主要运用字典来存储学生成绩,用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()