"""__author__==xx"""
"""
学生管理系统-->管理多个学生-->需要容器存储学生-->
最外层的容器是字典-->字典的某一个key对应的是所有的学生-->
每个学生是一个字典
"""
# 声明所有的key值
key_all_student = 'students' # 所有学生
key_name = 'name' # 学生姓名
key_id = 'stu_id' # 学生学号
key_age = 'age' # 学生年龄
key_tel = 'tel' # 学生电话
key_scores = 'scores' # 学生成绩
key_english = 'english' # 英语成绩
key_math = 'math' # 数学成绩
# 系统容器
system_info = {key_all_student: [{key_name: '张三', key_id: 'py1805001', key_age: 18, key_tel: '1234', key_scores:{key_english: 66, key_math:88}}]}
# 当前已经添加过的学生个数计数
count = 1
# 系统入口
while True:
# ========显示主页========
print('==================')
print(' 欢迎进入学生成绩管理系统')
print('1.添加学生\n2.查看学生信息\n3.删除学生\n4.修改学生\n0.退出系统')
print('==================')
input_value = input('>>>')
# ========退出系统========
if input_value == '0':
break
# ========添加学生========
if input_value == '1':
while True:
print('==添加学生==')
# 输入信息
add_name = input('姓名:')
add_age = int(input('年龄:'))
add_tel = input('电话:')
# 产生学号
count += 1
"""1,2,3,4,5,6,7,"""
add_id = 'py1805'+str(count).rjust(3, '0')
# 输入成绩
add_english = int(input('英语成绩:'))
add_math = int(input('数学成绩:'))
# 创建一个学生字典
add_student = {key_name: add_name, key_id: add_id, key_age: add_age, key_tel: add_tel, key_scores:{key_english: add_english, key_math: add_math}}
# 获取存学生的容器
all_students = system_info.get(key_all_student)
# 判断学生列表是否为空
if all_students == None:
all_students == []
# 将学生添加到容器中
all_students.append(add_student)
system_info[key_all_student] = all_students
print(system_info)
# 给出选择
print('1.继续添加\n其它:返回上一层')
add_input = input('>>>')
if add_input != '1':
break
continue
# ========查看学生信息========
if input_value == '2':
print('==查看学生信息==')
# 给出选择
print('1.查看所有的学生信息\n2.根据姓名查看学生信息\n3.根据学号查看学生信息\n其它.返回上一层')
find_input = input('>>>')
# 直接返回上一层
if find_input != '1' and find_input != '2' and find_input != '3':
continue
# 获取到所有学生
all_students = system_info.get(key_all_student)
# 系统还没有添加过学生
"""
or和and的短路操作:
表达式1 or 表达式2;如果表达式1为True,结果就是True,不会判断表达式2
表达式1 and 表达式2:如果表达式1为False,结果就是False,不会判断表达式2
"""
if (not all_students) or (not len(all_students)):
print('系统中没有学生')
continue
# 查看所有
if find_input == '1':
for student in all_students:
print('姓名:%s,学号:%s,年龄:%d,电话:%s,英语成绩:%d,数学成绩:%d' % (student[key_name], student[key_id],
student[key_age], student[key_tel], student[key_scores][key_english], student[key_scores][key_math]))
# 根据姓名查找
elif find_input == '2':
find_name = input('请输入要查找的学生姓名')
flag = True
for student in all_students:
# 如果学生的名字和输入的相同,就打印
if find_name == student[key_name]:
print(student)
flag = False
if flag:
print('找不到该学生!')
# 根据学号查找
elif find_input == '3':
find_id = input('请输入要查找的学生学号f')
flag = True # 表示是否找不到
for student in all_students:
# 如果学生的学号和输入的相同,就打印
if find_id == student[key_id]:
print(student)
flag = False
break
if flag:
print('找不到该学生信息!')
continue
# ========删除学生========
if input_value == '3':
print('==删除学生==')
while True:
print('1.按姓名删除\n2.按学号删除\n其它.返回上一层')
del_input = input('>>>')
if del_input !='1' and del_input != '2':
print('aaa')
break
# 把所有的学生拎出来
all_students = system_info.get(key_all_student)
if (not all_students) or (not len((all_students))):
print('该系统没有学生')
break
# 按名字删除学生
if del_input == '1':
del_name = input('输入要删除的学生姓名:')
del_students = []
# 找到所有可能要删除的学生
for student in all_students:
if del_name == student[key_name]:
# 保存可能要删除的学生
del_students.append(student)
# 判断是否找到
if not len(del_students):
print('没有找到相关的学生信息!')
continue
index = 0
for student in del_students:
print(index, student)
index += 1
del_num = int(input('请输入要删除的学生下标:'))
del_students = del_students[del_num]
# 从系统中删除学生
system_info[key_all_student].remove(del_students)
print('删除成功!')
# 按学号删除学生
if del_input == '2':
del_id = input('输入要删除的学生学号:')
flag = True
# 找到要删除的学生,并删除
for student in all_students:
if del_id == student[key_id]:
# 保存可能要删除的学生
system_info[key_all_student].remove(student)
print('删除成功!')
flag = False
break
# 判断是否找到
if flag:
print('没有找到相关的学生信息!')
continue
continue
# ========修改信息========
if input_value == '4':
print('==修改信息==')
while True:
print('1.按姓名修改\n2.按学号修改\n其它.返回上一层')
rev_input = input('>>>')
if rev_input !='1' and rev_input != '2':
break
# 把所有的学生拎出来
all_students = system_info.get(key_all_student)
if (not all_students) or (not len((all_students))):
print('该系统没有学生')
break
# 按名字修改学生
if rev_input == '1':
rev_name = input('输入要修改的学生姓名:')
rev_students = []
# 找到所有可能要修改的学生
for student in all_students:
if rev_name == student[key_name]:
# 保存可能要修改的学生
rev_students.append(student)
# 判断是否找到
if not len(rev_students):
print('没有找到相关的学生信息!')
continue
index = 0
for student in rev_students:
print(index, student)
index += 1
rev_num = int(input('请输入要修改的学生下标:'))
rev_students = rev_students[rev_num]
# 从系统中先删除学生
system_info[key_all_student].remove(rev_students)
# 输入信息
add_name = input('姓名:')
add_age = int(input('年龄:'))
add_tel = input('电话:')
# 输入成绩
add_english = int(input('英语成绩:'))
add_math = int(input('数学成绩:'))
rev_students[key_name] = add_name
rev_students[key_age] = add_age
rev_students[key_tel] = add_tel
rev_students[key_scores][key_english] = add_english
rev_students[key_scores][key_math] = add_math
# 从系统中添加学生,从而实现修改
system_info[key_all_student].append(rev_students)
print('修改成功!')
# 按学号修改学生
if rev_input == '2':
rev_id = input('输入要修改的学生学号:')
flag = True
# 找到要修改的学生,并修改
for student in all_students:
if rev_id == student[key_id]:
# 先删除的学生
system_info[key_all_student].remove(student)
# 输入信息
add_name = input('姓名:')
add_age = int(input('年龄:'))
add_tel = input('电话:')
# 输入成绩
add_english = int(input('英语成绩:'))
add_math = int(input('数学成绩:'))
student[key_name] = add_name
student[key_age] = add_age
student[key_tel] = add_tel
student[key_scores][key_english] = add_english
student[key_scores][key_math] = add_math
# 从系统中添加学生,从而实现修改
system_info[key_all_student].append(student)
print('修改成功!')
flag = False
break
# 判断是否找到
if flag:
print('没有找到相关的学生信息!')
continue
continue
网友评论