学生管理系统

大作业(学生管理系统)

身份不同,进入不同的界面,同样的可以进行的操作也不同。

管理员账号:可以进行所有操作。(账号: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('指令无法识别,请输入正确的指令')


posted @ 2022-03-11 06:17  春游去动物园  阅读(49)  评论(0编辑  收藏  举报