大作业(学生管理系统)
身份不同,进入不同的界面,同样的可以进行的操作也不同。
管理员账号:可以进行所有操作。(账号:admin 密码:123)
老师:修改密码,修改姓名,查看自己信息,查看所有信息,删除数据(但是不能删除同为老师身份的数据)
学生:修改密码,修改姓名,查看自己信息,查看所有姓名
# {'账号' : ['密码','姓名','Y/N']}
student_teacher = {
'admin': ['123', '1', 'N'],
'111': ['123', '张三', 'N'],
'222': ['123', '春游去动物园', 'Y'],
'333': ['123', '李四', 'Y'],
'444': ['123', '王五', 'N'],
}
# 获取输入信息,保存到name 和 password
def getInfo():
name = input('请输入用户名: ').strip()
password = input('请输入密码: ').strip()
return name, password
# 注册
def register(student_teacher):
name, password = getInfo()
if name == '' or password.isspace():
print('-----------输入不能为空-----------')
elif name not in student_teacher:
student_name = input('请输入你的姓名:').strip()
is_student = input('是否是学生(Y/N): ').strip().upper()
str = [password, student_name, is_student]
student_teacher[name] = str
print('-----------账号创建成功-----------')
print(student_teacher)
elif name in student_teacher:
print('-----------账号已存在,请重新输入-----------')
# 重新注册
register(student_teacher)
# 更新密码
def updatepassword(student_teacher, name):
psd = input('请输入你想修改的密码: ').strip()
student_teacher[name][0] = psd
print('-----------密码修改成功-----------')
# 跟新姓名
def updatename(student_teacher, name):
nam = input('请输入你想要修改的姓名: ').strip()
student_teacher[name][1] = nam
print('-----------姓名修改成功-----------')
# 查找自己的信息
def select_self(student_teacher, name):
print(
'''
账号:{}
密码:{}
姓名:{}
是否为学生:{}
------------------------------------------------------------------------------
'''.format(name, student_teacher[name][0], student_teacher[name][1], student_teacher[name][2])
)
# 查看所有信息
def select_all(student_teacher):
for i in student_teacher:
if i == 'admin':
continue
print(
'''
账号:{} 密码:{} 姓名:{} 是否为学生:{}
'''.format(i, student_teacher[i][0], student_teacher[i][1], student_teacher[i][2]))
# 删除信息
def delete_info(student_teacher, name):
delete_name = input('请输入要删除学生的姓名或账号:').strip()
if delete_name == name or delete_name == student_teacher[name][1]:
print('-----------不能删除自己!!!!!!!!!!!!!!!-----------')
elif student_teacher[name][2] == 'N' and name != 'admin':
print('-----------不能删除老师-----------')
elif delete_name in student_teacher:
student_teacher.pop(delete_name)
print('-----------删除成功-----------')
else:
for i in student_teacher:
if delete_name == student_teacher[i][1]:
student_teacher.pop(i)
print('-----------删除成功-----------')
break
# 管理员操作
def admin_into(student_teacher, name):
while True:
print(
'''
1.修改已有账号密码
2.修改已有账号姓名
3.修改身份
4.查看所有账号的所有信息
5.删除数据
6.修改密码
7.退出
'''
)
inp = input('请输入要执行的指令: ').strip()
if inp == '1':
nam = input('请输入你想要修改的账号: ').strip()
if nam in student_teacher:
updatepassword(student_teacher, nam)
else:
print('-----------账号不存在-----------')
elif inp == '2':
nam = input('请输入你想要修改的账号: ').strip()
if nam in student_teacher:
updatename(student_teacher, nam)
else:
print('-----------账号不存在-----------')
elif inp == '3':
nam = input('请输入你想要修改的账号: ').strip()
if nam in student_teacher:
is_student = input('修改为(Y/N): ').strip().upper()
student_teacher[nam][2] = is_student
else:
print('-----------账号不存在-----------')
elif inp == '4':
select_all(student_teacher)
elif inp == '5':
nam = input('请输入你想要删除的账号: ').strip()
if nam in student_teacher:
student_teacher.pop(nam)
print('-----------删除成功-----------')
else:
print('-----------账号不存在-----------')
elif inp == '6':
updatepassword(student_teacher, 'admin')
else:
print('-----------再见-----------')
break
# 登入
def login(student_teacher):
name, password = getInfo()
if name in student_teacher and password == student_teacher[name][0]:
print(f'-----------登入成功,欢迎回来 {name} !!!-----------')
# 登入成功后的操作
# 管理员账号可以进行所有操作
if name == 'admin':
admin_into(student_teacher, name)
elif student_teacher[name][2] == 'Y':
while True:
# 进入学生操作界面(可以的操作 修改密码和姓名 查看自己的所有信息 查看所有账号的姓名)
print(
'''
1.修改密码
2.修改姓名
3.查看自己的信息
4.查看所有账号的姓名
5.退出
'''
)
inp = input('请输入要执行的指令: ').strip()
if inp == '1':
updatepassword(student_teacher, name)
elif inp == '2':
updatename(student_teacher, name)
elif inp == '3':
select_self(student_teacher, name)
elif inp == '4':
for i in student_teacher:
if i == 'admin':
continue
print(
'''
姓名:{} 是否为学生:{}
'''.format(student_teacher[i][1], student_teacher[i][2]))
elif inp == '5':
print('-----------再见-----------')
break
else:
print('-----------指令无法识别,请输入正确的指令-----------')
elif student_teacher[name][2] == 'N':
# 进入教师界面
while True:
print(
'''
1.修改密码
2.修改姓名
3.查看自己的信息
4.查看所有账号的所有信息
5.删除学生数据
6.退出
'''
)
inp = input('请输入要执行的指令: ').strip()
if inp == '1':
updatepassword(student_teacher, name)
elif inp == '2':
updatename(student_teacher, name)
elif inp == '3':
select_self(student_teacher, name)
elif inp == '4':
select_all(student_teacher)
elif inp == '5':
delete_info(student_teacher, name)
elif inp == '6':
print('-----------再见-----------')
break
else:
print('-----------指令无法识别,请输入正确的指令-----------')
elif name not in student_teacher:
print('-----------该账号不存在,请先注册-----------')
# 进行注册
register(student_teacher)
else:
print('-----------账号或密码错误,请重新登入-----------')
# 重新登入
login(student_teacher)
# 主程序
while True:
print(
'''
1.登入学生管理系统
2.学生或老师 注册
3.退出系统
'''
)
choice = input('请输入要执行的指令: ').strip()
if choice == '1':
login(student_teacher)
elif choice == '2':
register(student_teacher)
elif choice == '3':
print('-----------欢迎下次使用-----------')
break
else:
print('指令无法识别,请输入正确的指令')