任务:学生管理系统
任务说明:
按所给的框架代码完善学生管理系统,要求实现学生信息的增、删、改、查等功能。框架代码说明如下图所示:
框架代码如下所示:
#学生管理系统
student_infos=[] #用于保存学生的相关信息
def print_menu(): #主菜单显示
pass
def add_info(): #添加学生信息
pass
def del_info(student): #删除学生信息
pass
def modify_info(): #修改学生信息
pass
def show_infos(): #显示所有学生的信息
pass
def main(): #功能包括:系统的退出;各函数的调用;接收用户输入的序号选择;根据用户的序号判断函数的调用;输入异常情况的处理
pass
main()
主菜单函数:
def print_menu(): #主菜单显示
print("--------------------------")
print(" 学生管理系统 ")
print("1. 添加学生信息")
print("2. 删除学生信息")
print("3. 修改学生信息")
print("4. 查询学生信息")
print("5. 获取所有学生信息")
print("6. 退出系统")
增加学生信息函数:
#添加学生信息–姓名、性别、年龄、学号、家庭住址–以字典存储:姓名为键,其它信息形成列表为值
def add_info(): #添加学生信息--姓名、性别、年龄、学号、家庭住址--以字典存储:姓名为键,其它信息形成列表为值
print("--------------------------")
print("正在添加学生信息")
name=input("请输入姓名:")
sex= input("请输入性别:")
year = input("请输入年龄:")
number=input("请输入学号:")
id = input("请输入家庭住址:")
listvalue=[sex,year,number,id]
student_infos[name]=listvalue
print("添加成功")
#增加学生信息函数可进行改进,上述函数增加一名学生信息后就会返回主菜单,
#下面改进函数可连续添加学生信息。
def add_info(): #添加学生信息--姓名、性别、年龄、学号、家庭住址--以字典存储:姓名为键,其它信息形成列表为值
while True:
a=input("是否添加学生信息(Y/N):")
if a=='Y':
print("--------------------------")
print("正在添加学生信息")
name = input("请输入姓名:")
sex = input("请输入性别:")
year = input("请输入年龄:")
number = input("请输入学号:")
id = input("请输入家庭住址:")
listvalue = [sex, year, number, id]
student_infos[name] = listvalue
print("添加成功")
else:
break
删除学生信息函数:
#删除学生信息–输入姓名删除,如果姓名不存在则显示查无此人返回主菜单;姓名存在,删除成功
def del_info(student): #删除学生信息--输入姓名删除,如果姓名不存在则显示查无此人返回主菜单;姓名存在,删除成功
print("--------------------------")
while True:
info_list = student_infos.get(student)
if info_list==None:
print("查无此人")
break
else:
print("正在删除学生信息")
del student_infos[student]
print("删除成功")
break
修改学生信息函数:
#输入姓名修改
#姓名不存在则显示查无此人返回主菜单
#先输出未修改时信息
#后可分别按1 性别;2 年龄;3 学号;4 家庭住址;进行修改
#修改信息可循环,知道输入5停止修改,返回主菜单
#每次修改会显示修改后的信息
def modify_info(): #修改学生信息
print("--------------------------")
print("正在修改学生信息")
while True:
nameinfo1 = input("请输入要修改的学生信息姓名:")#输入姓名修改
info_list = student_infos.get(nameinfo1)
if info_list==None:#姓名不存在则显示查无此人返回主菜单
print("查无此人")
break
else:
print(info_list)#输出未修改时信息
while True:#可分别按1 性别;2 年龄;3 学号;4 家庭住址;进行修改
k = int(input("请输入要修改的内容(1 性别;2 年龄;3 学号;4 家庭住址;5 停止修改):"))
if k == 1:
sex = input("请输入修改后性别:")
info_list[0] = sex
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())#会显示修改后的信息
print()
elif k == 2:
year = input("请输入修改后年龄:")
info_list[1] = year
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())
print()
elif k == 3:
number = input("请输入修改后学号:")
info_list[2] = number
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())
print()
elif k == 4:
id = input("请输入修改后家庭住址:")
info_list[3] = id
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())
print()
elif k == 5:
break
else:
print("输入有误,请重新输入...")
print("修改成功")
break
#上述修改学生信息函数可分别按按1 性别;2 年龄;3 学号;4 家庭住址;进行修改。弊端就是不能修改学生姓名。
#下面的函数是学生输入姓名,将所有信息先删除,然后所有信息重复输入,再添加到字典存储完成修改。优点是可以修改键-姓名。
def modify_info():
nameinfo1 = input("请输入要修改的学生信息姓名:")
del student_infos[nameinfo1]
name = input("请输入姓名:")
sex = input("请输入性别:")
number = input("请输入学号:")
id = input("请输入家庭住址:")
listvalue = [sex, number, id]
student_infos[name] = listvalue
查询学生信息函数:
#按姓名查询学生信息,学生不存在则显示查无此人
def seek_info(): # 函数--查询学生信息
print("--------------------------")
print("正在查询学生信息")
nameinfo2 = input("请输入要查询的学生信息姓名:")
print(student_infos.get(nameinfo2, '查无此人'))
查询全部学生信息函数:
#输出字典的键值对
def show_infos(): #显示所有学生的信息
print("--------------------------")
print("正在查询所有学生信息")
print(student_infos.items())
完整代码:
#学生管理系统
import sys
student_infos={} #用于保存学生的相关信息
listvalue=[]
def print_menu(): #主菜单显示
print("--------------------------")
print(" 学生管理系统 ")
print("1. 添加学生信息")
print("2. 删除学生信息")
print("3. 修改学生信息")
print("4. 查询学生信息")
print("5. 获取所有学生信息")
print("6. 退出系统")
def get_choice(): # 函数--#等待用户选择
print("--------------------------")
global key
key = int(input("请输入选择的序号:"))
def add_info(): #添加学生信息--姓名、性别、年龄、学号、家庭住址--以字典存储:姓名为键,其它信息形成列表为值
print("--------------------------")
print("正在添加学生信息")
name=input("请输入姓名:")
sex= input("请输入性别:")
year = input("请输入年龄:")
number=input("请输入学号:")
id = input("请输入家庭住址:")
listvalue=[sex,year,number,id]
student_infos[name]=listvalue
print("添加成功")
def del_info(student): #删除学生信息--输入姓名删除,如果姓名不存在则显示查无此人返回主菜单;姓名存在,删除成功
print("--------------------------")
while True:
info_list = student_infos.get(student)
if info_list==None:
print("查无此人")
break
else:
print("正在删除学生信息")
del student_infos[student]
print("删除成功")
break
def modify_info(): #修改学生信息
print("--------------------------")
print("正在修改学生信息")
while True:
nameinfo1 = input("请输入要修改的学生信息姓名:")#输入姓名修改
info_list = student_infos.get(nameinfo1)
if info_list==None:#姓名不存在则显示查无此人返回主菜单
print("查无此人")
break
else:
print(info_list)#输出未修改时信息
while True:#可分别按1 性别;2 年龄;3 学号;4 家庭住址;进行修改
k = int(input("请输入要修改的内容(1 性别;2 年龄;3 学号;4 家庭住址;5 停止修改):"))
if k == 1:
sex = input("请输入修改后性别:")
info_list[0] = sex
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())#会显示修改后的信息
print()
elif k == 2:
year = input("请输入修改后年龄:")
info_list[1] = year
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())
print()
elif k == 3:
number = input("请输入修改后学号:")
info_list[2] = number
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())
print()
elif k == 4:
id = input("请输入修改后家庭住址:")
info_list[3] = id
student_infos[nameinfo1] = info_list
print("修改后信息", student_infos.items())
print()
elif k == 5:
break
else:
print("输入有误,请重新输入...")
print("修改成功")
break
# nameinfo1 = input("请输入要修改的学生信息姓名:")
# del student_infos[nameinfo1]
# name = input("请输入姓名:")
# sex = input("请输入性别:")
# number = input("请输入学号:")
# id = input("请输入家庭住址:")
# listvalue = [sex, number, id]
# student_infos[name] = listvalue
def seek_info(): # 函数--查询学生信息
print("--------------------------")
print("正在查询学生信息")
nameinfo2 = input("请输入要查询的学生信息姓名:")
print(student_infos.get(nameinfo2, '查无此人'))
def show_infos(): #显示所有学生的信息
print("--------------------------")
print("正在查询所有学生信息")
print(student_infos.items())
def exit_menu(): # 函数--退出系统
print("--------------------------")
print("已退出")
sys.exit(0)
def main(): #功能包括:系统的退出;各函数的调用;接收用户输入的序号选择;根据用户的序号判断函数的调用;输入异常情况的处理
i = 0
while i < 1:
print_menu() # 函数--#打印菜单
get_choice() # 函数--#等待用户选择
if key == 1:
add_info() # 函数--添加学生信息
elif key == 2:
nameinfo = input("请输入要删除的学生信息姓名:")
del_info(nameinfo) # 函数--删除学生信息
elif key == 3:
modify_info() # 函数--修改学生信息
elif key == 4:
seek_info() # 函数--查询学生信息
elif key == 5:
show_infos() # 函数--获取所有学生信息
elif key == 6:
exit_menu() # 函数--退出系统
else:
print("输入有误,请重新输入...")
main()
运行结果:
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:1
--------------------------
正在添加学生信息
请输入姓名:蓝湛
请输入性别:男
请输入年龄:18
请输入学号:180
请输入家庭住址:姑苏
添加成功
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:1
--------------------------
正在添加学生信息
请输入姓名:魏婴
请输入性别:女
请输入年龄:81
请输入学号:108
请输入家庭住址:清河
添加成功
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:4
--------------------------
正在查询学生信息
请输入要查询的学生信息姓名:江澄
查无此人
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:4
--------------------------
正在查询学生信息
请输入要查询的学生信息姓名:蓝湛
['男', '18', '180', '姑苏']
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:5
--------------------------
正在查询所有学生信息
dict_items([('蓝湛', ['男', '18', '180', '姑苏']), ('魏婴', ['女', '81', '108', '清河'])])
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:2
请输入要删除的学生信息姓名:江澄
--------------------------
查无此人
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:2
请输入要删除的学生信息姓名:蓝湛
--------------------------
正在删除学生信息
删除成功
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:3
--------------------------
正在修改学生信息
请输入要修改的学生信息姓名:蓝湛
查无此人
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:9
输入有误,请重新输入...
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:3
--------------------------
正在修改学生信息
请输入要修改的学生信息姓名:魏婴
['女', '81', '108', '清河']
请输入要修改的内容(1 性别;2 年龄;3 学号;4 家庭住址;5 停止修改):1
请输入修改后性别:男
修改后信息 dict_items([('魏婴', ['男', '81', '108', '清河'])])
请输入要修改的内容(1 性别;2 年龄;3 学号;4 家庭住址;5 停止修改):2
请输入修改后年龄:18
修改后信息 dict_items([('魏婴', ['男', '18', '108', '清河'])])
请输入要修改的内容(1 性别;2 年龄;3 学号;4 家庭住址;5 停止修改):3
请输入修改后学号:183
修改后信息 dict_items([('魏婴', ['男', '18', '183', '清河'])])
请输入要修改的内容(1 性别;2 年龄;3 学号;4 家庭住址;5 停止修改):4
请输入修改后家庭住址:莲花坞
修改后信息 dict_items([('魏婴', ['男', '18', '183', '莲花坞'])])
请输入要修改的内容(1 性别;2 年龄;3 学号;4 家庭住址;5 停止修改):5
修改成功
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:5
--------------------------
正在查询所有学生信息
dict_items([('魏婴', ['男', '18', '183', '莲花坞'])])
--------------------------
学生管理系统
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
5. 获取所有学生信息
6. 退出系统
--------------------------
请输入选择的序号:6
--------------------------
已退出