学生管理系统_python
# -*- coding: utf-8 -*-
'''实现控制函数'''
def cai_lsit():
print("*" * 40)
print("* 学生管理系统 *")
print("* 1. 添加新学生信息 *")
print("* 2. 通过学号修改学生信息 *")
print("* 3. 通过学号删除学生信息 *")
print("* 4. 通过姓名删除学生信息 *")
print("* 5. 通过学号查询学生信息 *")
print("* 6. 通过姓名查询学生信息 *")
print("* 7. 显示所有学生信息 *")
print("* 8. 退出系统 *")
print("*" * 40)
def add_stu(stu_list_zong):
sids = []
for si in stu_list_zong:
sids.append(si['sid'])
try:
# 创建字典 包含学生信息
add = {
'sid' : max(sids) +1, # 确定编码,永远比现有的大1
'name':input("请输入姓名:"),
'age': input("请输入年龄:"),
'gender' : input("请输入性别:")
}
stu_list_zong.append(add)
print(f"添加{ add['name']}学生成功")
print(stu_list_zong)
except:
print("添加学生出错,请重新选择菜单进行添加")
# 修改
def update_stu(stu_list_zong):
sids = []
for si in stu_list_zong:
sids.append(si['sid'])
num = input("请输入修改id:")
try:
if int(num) in sids:
for stu_sid in stu_list_zong:
if stu_sid['sid'] == int(num):
stu_sid['name'] = input("请输入修改name:")
print('修改成功')
else:
pass
print(stu_list_zong)
except:
print('此id未在学生库中,请查明id后进行修改')
# 删除sid
def del_stu_num(stu_list_zong):
sids = []
for si in stu_list_zong:
sids.append(si['sid'])
num = input("请输入修改id:")
try:
if int(num) in sids:
for stu_sid in stu_list_zong:
if stu_sid['sid'] == int(num):
index = (stu_list_zong.index(stu_sid))
del stu_list_zong[index]
print('删除成功')
else:
pass
print(stu_list_zong)
except:
print('此id未在学生库中,请查明id后进行修改')
# 删除name
def del_stu_stu(stu_list_zong):
sids = []
for si in stu_list_zong:
sids.append(si['name'])
try:
name = input("请输入修改name:")
if name in sids:
for stu_sid in stu_list_zong:
if stu_sid['name'] == name:
index = (stu_list_zong.index(stu_sid))
del stu_list_zong[index]
print('删除成功')
else:
print('此学生未在学生库中')
print(stu_list_zong)
except:
print('此学生未在学生库中,请查明后进行修改')
# 查询sid
def select_stu_sid(stu_list_zong):
sids = []
for si in stu_list_zong: sids.append(si['sid'])
try:
sid = input("请输入sid:")
if int(sid) in sids:
for stu_sid in stu_list_zong:
if stu_sid['sid'] == int(sid):
print(stu_sid)
print('查询成功')
else:
print('此学生未在学生库中')
# print(stu_list_zong)
except:
print('此学生未在学生库中,请查明后进行修改')
# 查询姓名name
def select_stu_name(stu_list_zong):
sids = []
for si in stu_list_zong: sids.append(si['name'])
try:
name = input("请输入name:")
if name in sids:
for stu_sid in stu_list_zong:
if stu_sid['name'] == name:
print(stu_sid)
print('查询成功')
else:
print('此学生未在学生库中')
# print(stu_list_zong)
except:
print('此学生未在学生库中,请查明后进行修改')
# 查询姓名
def select_stu_all(stu_list_zong):
print(stu_list_zong)
'''runner是实现菜单函数,并进行了校验'''
def runner():
while True:
select_op = input("输入编号选择操作:")
try:
if (select_op) == 'lists': cai_lsit()
# 3. 实现添加学生函数,函数参数为编号,姓名,年龄,性别四个参数,返回是否添加成功的结果,要求编号不可重复。
elif select_op == '1': add_stu(stu_list_zong)
#4. 实现修改函数,参数为学号,如果学生存在,则进行修改,不存在输出提示,并返回是否修改成功
elif select_op == '2': update_stu(stu_list_zong)
#5. 实现删除函数,参数为学号,如果学生存在,则进行删除,不存在输出提示,并返回是否删除成功
elif select_op == '3': del_stu_num(stu_list_zong)
# 6. 实现删除函数,参数为姓名,如果学生存在,则进行删除(同名学生全部删除),不存在输出提示,并返回是否删除成功
elif select_op == '4': del_stu_stu(stu_list_zong)
# 7. 实现查询函数,参数为学号,如果学生存在,则输出学生信息,不存在输出提示,并返回是否查询成功
elif select_op == '5': select_stu_sid(stu_list_zong)
# 8. 实现查询函数,参数为姓名,如果学生存在,则输出学生信息(同名学生全部输出),不存在输出提示,并返回是否删除成功
elif select_op == '6': select_stu_name(stu_list_zong)
# 9. 实现函数,输出所有学生信息
elif select_op == '7': select_stu_all(stu_list_zong)
#退出
elif select_op == '8': break
else:
print('请输入菜单编号,获取菜单输入"lists"')
except:
print('未输入正确的菜单号,获取菜单输入"lists"')
if __name__ == '__main__':
print('欢迎来到学生管理系统')
stu_list_zong = [
{
'sid' :1,
'name':'very',
'age': '18',
'gender' : '男'
},
]
runner()