def Start():
    lenRegister = functions.LenRegister()

    if lenRegister:
        functions.visit(BriefPrintVisitor())

        chosen = Chosen()
        chosen.item = int(input('Введите номер студента: ')) - 1

    else:
        print('Студентов нет')
def del_value():
    chosen = Chosen()
    item = chosen.item

    if item != None:
        apostate = functions.getStudent(item)

        if apostate.getRating():

            keys = input('Введите предмет: ')

            check = input('Вы уверены?(да/нет): ')

            while check not in ['Нет', 'нет', 'НЕТ']:
                if check in ['Да', 'да', 'ДА']:
                    apostate.delRating(keys)
                    functions.save()
                    break

                else:
                    print('Ошибка\nВведите да или нет!')

                    check = input('Вы уверены?(да/нет): ')

        else:
            print('Оценок нет!')

    else:
        print('Студентов нет')
def add_value():
    chosen = Chosen()
    item = chosen.item

    if item != None:
        apostate = functions.getStudent(item)

        keys = input('Введите предмет: ')

        while keys in apostate.getRating():
            print('Ошибка!!!\nВведите не существующий в программе предмет')

            keys = input('Введите предмет: ')

        check = False

        while not check:
            try:
                value = int(input('Введите оценку: '))
            except ValueError as e:
                print('Введите число!!!')

            else:
                if value > 0:
                    check = True

                else:
                    print('Введите число больше нуля')

        apostate.changeRating(keys, value)
        functions.save()

    else:
        print('Студентов нет')
def change_group():
    chosen = Chosen()
    item = chosen.item

    if item != None:
        group = input('Введите новую группу: ')

        apostate = functions.getStudent(item)

        apostate.setGroup(group)
        functions.save()

    else:
        print('Студентов нет')
def change_patronymic():
    chosen = Chosen()
    item = chosen.item

    if item != None:
        patronymic = input('Введите новое отчество: ')

        apostate = functions.getStudent(item)

        apostate.setPatronymic(patronymic)
        functions.save()

    else:
        print('Студентов нет')
def change_name():
    chosen = Chosen()
    item = chosen.item

    if item != None:
        name = input('Введите новое имя: ')

        apostate = functions.getStudent(item)

        apostate.setName(name)
        functions.save()

    else:
        print('Студентов нет')
def change_family_name():
    chosen = Chosen()
    item = chosen.item

    if item != None:
        family_name = input('Введите новую фамилию: ')

        apostate = functions.getStudent(item)

        apostate.setFamily_name(family_name)
        functions.save()

    else:
        print('Студентов нет')
def End():
    chosen = Chosen()

    chosen.item = None
def Print():
    chosen = Chosen()
    item = chosen.item

    if item != None:
        functions.getStudent(item).PrintStudent(item + 1)