# 需求:学生管理系统 实现 对学生的增删改查
students = []
def getIndexByStuId(stuId):
for student in students:
if stuId == student['stuId']:
# 获取到这个字典对应的索引
return students.index(student)
# 欢迎
def welcome():
msg = """
欢迎使用<学生信息管理系统>
1.查询所有学生信息
2.添加
3.删除
4.修改
5.退出
"""
return input(msg)
# 查询
def show():
print("----------------正在[查询]--------------------")
if students:
print("学号\t\t\t名字\t\t\t年龄")
for student in students:
print(f"{student['stuId']}\t\t{student['name']}\t\t\t{student['age']}")
else:
print("暂无学生信息,请添加")
# 添加
def add():
print("----------------正在[添加]--------------------")
# 依次获取用户输入的数据
# 存到字典中
student = {}
# 获取用户的学号后,要去查一查此学号是否存在 如果存在则提示用户重新输入 如果不存在 则正常添加
while True:
stuId = input("请输入学号:")
i = getIndexByStuId(stuId)
if i == None:
student['stuId'] = stuId
student['name'] = input("请输入名字:")
student['age'] = int(input("请输入年龄:"))
# print(student)
# 把字典添加到列表
students.append(student)
break
else:
print("请重新输入新的学号")
# 删除
def delete():
print("----------------正在[删除]--------------------")
while True:
# 接收学号
stuId = input('请输入想要删除的学生的学号')
# 获取索引
i = getIndexByStuId(stuId)
if i == None:
print("学号不存在,请重新输入")
else:
students.pop(i)
print("删除成功")
break
# for student in students:
# if stuId == student['stuId']:
# break
# # 删除
# students.remove(student)
# print(students)
# 修改
def update():
print("----------------正在[修改]--------------------")
while True:
# 接收学号
user_input = input('请输入想要修改的学生的学号(如果想退出请输入"q")')
if user_input == 'q':
break
i = getIndexByStuId(user_input)
# None
if i == None:
print("学号不存在,请重新输入(如果想退出请输入'q')")
else:
# 根据列表的索引找到列表中的字典
while True:
stuId = input(f"请输入新的学号({students[i]['stuId']})[回车表示不修改]")
# 根据学号查询索引
index = getIndexByStuId(stuId)
if i != index:
print("学生id已存在")
else:
break
name = input(f"请输入新的姓名({students[i]['name']})[回车表示不修改]")
age = input(f"请输入新的年龄({students[i]['age']})[回车表示不修改]")
# # 如果为true说明改了,如果为false说明没改
students[i]['stuId'] = stuId if stuId else students[i]['stuId']
students[i]['name'] = name if name else students[i]['name']
students[i]['age'] = age if age else students[i]['age']
break
print(students)
pass
while True:
# 欢迎
num = welcome()
match num:
case '1':
show()
case '2':
add()
case '3':
# 查看列表中是否有数据,如果有才往下执行
if students:
show()
delete()
show()
else:
print("暂无数据,请添加")
case '4':
# 查看列表中是否有数据,如果有才往下执行
if students:
show()
update()
else:
print("暂无数据,请添加")
case '5':
print("欢迎下次使用")
break
case _:
print("输入有误,请重新输入")
版权属于:
公子初心
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)