Day7—作业
2018-08-29 本文已影响0人
C0mpass
学生管理系统
代码如下:
"""__author__=Zeng"""
student_sys = [{'姓名': '张三', '年龄': '18', '学号': '001', '电话': '123456'},
{'姓名': '李四', '年龄': '19', '学号': '002', '电话': '456789'}]
def interface_menu(): # 系统界面菜单
print('='*7,'*','欢迎进入学生管理系统','*','='*7)
print(' 1. 添加学生\n',
'2. 删除学生\n',
'3. 修改信息\n',
'4. 查找信息\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
add_menu()
elif select_num == '2':
del_menu()
elif select_num == '3':
re_menu()
elif select_num == '4':
find_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
interface_menu()
# 添加学生功能部分
def add_menu(): # 添加学生界面菜单
print('=' * 37)
print(' 1. 开始添加\n',
'2. 返回上一级\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
add_stud()
elif select_num == '2':
interface_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
add_menu()
def add_stud():
stu_name = input('请输入学生姓名:')
stu_age = input('请输入学生年龄:')
stu_num = input('请输入学生学号:')
stu_tel = input('请输入学生电话:')
stu_info = {'姓名': stu_name,
'年龄': stu_age,
'学号': stu_num,
'电话': stu_tel}
student_sys.append(stu_info)
print('添加成功!!!')
cont_add()
def cont_add():
print('=' * 37)
print(' 1. 继续添加\n',
'2. 返回首页\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
add_stud()
elif select_num == '2':
interface_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
cont_add()
# 删除学生功能部分
def del_menu(): # 删除学生界面菜单
print('=' * 37)
print(' 1. 根据姓名删除\n',
'2. 根据学号删除\n',
'3. 返回上一级\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
del_stud(1)
elif select_num == '2':
del_stud(2)
elif select_num == '3':
interface_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
del_menu()
def del_stud(id):
if id == 1:
s_name = input('请输入学生姓名:')
name_list = [] # 创建一个新的列表,用来存放在student_sys获取的与输入姓名相同的学生信息
id_list = [] # 创建一个新的列表,用来存放在在student_sys获取的与输入姓名相同的索引值
i = 0 # 计算索引值
count = 0 # 计算student_sys获取的与输入姓名相同的元素个数
for item in student_sys[:]:
if item['姓名'] == s_name:
name_list.append(item) # 遍历student_sys中与输入姓名相同的同学,并将信息存入name_list列表中
id_list.append(i) # 将存入name_list列表中的同学信息在student_sys的索引值存入id_list列表中
count += 1 # 统计名字相同的个数
i += 1 # 每循环一次,索引值+1
if not count:
print('未找到该名字学生,请重新输入')
del_menu()
else:
for j in range(count):
print(j+1,'. ',name_list[j])
del_id = int(input('请删除学生对应的编号(1 - %d):' % count)) - 1
for x in range(count):
if x == del_id:
del student_sys[id_list[x]]
print('删除成功!!!')
cont_del(0)
else:
s_num = input('请输入学生学号:')
y = 0 # 计算索引值
for item in student_sys[:]:
if item['学号'] == s_num:
del student_sys[y] # 遍历student_sys中与输入学号相同的同学,并删除
print('删除成功!!!')
break
y += 1
else:
print('未找到该名字学生,请重新选择')
del_menu()
cont_del(1)
def cont_del(did):
did1 = did
print('=' * 37)
print(' 1. 继续删除\n',
'2. 返回上一级\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
if did1 == 0:
del_stud(1)
else:
del_stud(2)
elif select_num == '2':
del_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
cont_del(did1)
# 修改学生功能部分
def re_menu(): # 修改学生界面菜单
print('=' * 37)
print(' 1. 根据姓名修改\n',
'2. 根据学号修改\n',
'3. 返回上一级\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
re_stud(1)
elif select_num == '2':
re_stud(2)
elif select_num == '3':
interface_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
del_menu()
def re_stud(id):
if id == 1:
s_name = input('请输入学生姓名:')
name_list = [] # 创建一个新的列表,用来存放在student_sys获取的与输入姓名相同的学生信息
id_list = [] # 创建一个新的列表,用来存放在在student_sys获取的与输入姓名相同的索引值
i = 0 # 计算索引值
count = 0 # 计算student_sys获取的与输入姓名相同的元素个数
for item in student_sys[:]:
if item['姓名'] == s_name:
name_list.append(item) # 遍历student_sys中与输入姓名相同的同学,并将信息存入name_list列表中
id_list.append(i) # 将存入name_list列表中的同学信息在student_sys的索引值存入id_list列表中
count += 1 # 统计名字相同的个数
i += 1 # 每循环一次,索引值+1
if not count:
print('未找到该名字学生,请重新选择')
re_menu()
else:
for j in range(count):
print(j+1,'. ',name_list[j])
del_id = int(input('请输入需修改学生对应的编号(1 - %d):' % count)) - 1
for x in range(count):
if x == del_id:
re_info(x)
else:
s_num = input('请输入学生学号:')
y = 0 # 计算索引值
for item in student_sys[:]:
if item['学号'] == s_num:
print('该同学信息为:\n', student_sys[y])
re_info(y) # 遍历student_sys中与输入学号相同的同学,并修改
print('修改成功!!!')
break
y += 1
else:
print('未找到该名字学生,请重新选择')
re_menu()
def re_info(fid):
fid2 = fid
print('=' * 37)
print(' 1. 修改学生姓名\n',
'2. 修改学生年龄\n',
'3. 修改学生学号\n',
'4. 修改学生电话\n',
'5. 返回上一级\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
re_name = input('请输入修改后的姓名:')
student_sys[fid]['姓名'] = re_name
print('修改成功!!!\n修改结果为:\n',student_sys[fid])
elif select_num == '2':
re_age = int(input('请输入修改后的年龄:'))
student_sys[fid]['年龄'] = re_age
print('修改成功!!!\n修改结果为:\n', student_sys[fid])
elif select_num == '3':
re_num = input('请输入修改后的学号:')
student_sys[fid]['年龄'] = re_num
print('修改成功!!!\n修改结果为:\n', student_sys[fid])
elif select_num == '4':
re_tel = input('请输入修改后的电话:')
student_sys[fid]['年龄'] = re_tel
print('修改成功!!!\n修改结果为:\n', student_sys[fid])
elif select_num == '5':
re_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
interface_menu()
re_info(fid2)
# 查找学生功能部分
def find_menu(): # 查找学生界面菜单
print('=' * 37)
print(' 1. 查找所有学生\n',
'2. 根据姓名查找\n',
'3. 根据学号查找\n',
'4. 返回上一级\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
find_stud(1)
elif select_num == '2':
find_stud(2)
elif select_num == '3':
find_stud(3)
elif select_num == '4':
interface_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
del_menu()
def find_stud(id):
if id == 1:
print('所有同学信息如下所示:')
for item in student_sys[:]:
print(item)
print('查找成功!!!')
find_menu()
elif id == 2:
s_name = input('请输入学生姓名:')
name_list = [] # 创建一个新的列表,用来存放在student_sys获取的与输入姓名相同的学生信息
id_list = [] # 创建一个新的列表,用来存放在在student_sys获取的与输入姓名相同的索引值
i = 0 # 计算索引值
count = 0 # 计算student_sys获取的与输入姓名相同的元素个数
for item in student_sys[:]:
if item['姓名'] == s_name:
name_list.append(item) # 遍历student_sys中与输入姓名相同的同学,并将信息存入name_list列表中
id_list.append(i) # 将存入name_list列表中的同学信息在student_sys的索引值存入id_list列表中
count += 1 # 统计名字相同的个数
i += 1 # 每循环一次,索引值+1
if not count:
print('未找到该名字学生,请重新查找')
cont_find(0)
else:
for j in range(count):
print(j+1,'. ',name_list[j])
print('查找成功!!!')
cont_find(0)
else:
s_num = input('请输入学生学号:')
y = 0 # 计算索引值
for item in student_sys[:]:
if item['学号'] == s_num:
print(student_sys[y]) # 遍历student_sys中与输入学号相同的同学,并输出
print('查找成功!!!')
break
y += 1
else:
print('未找到该学号学生,请重新输入')
cont_find(1)
def cont_find(id2):
id3 = id2
print('=' * 37)
print(' 1. 继续查找\n',
'2. 返回上一级\n',
'q. 退出系统')
print('=' * 37)
# 根据输入数值进入相应操作界面
select_num = input('请选择:')
if select_num == '1':
if id2 == 0:
find_stud(2)
else:
find_stud(3)
elif select_num == '2':
find_menu()
elif select_num == 'q':
exit(0)
else:
print('选择错误,请选择重新')
cont_find(id3)
interface_menu()