Testing system C++ Реализовать полнофункциональную систему тестирования. В системе должны быть 2 режима: администратор и тестируемый. Описание режима работа для Тестируемого (в дальнейшем гость): ■ Для входа в систему гость должен зарегистрироваться данная процедура выполняется один раз, при дальнейших входах в систему доступ идет по логину и паролю. ■ При регистрации нужно указывать Ф.И.О., домашний адрес, телефон. ■ Важно, чтобы логины для пользователей были уникальными. ■ После входа гость имеет возможность просмотреть свои предыдущие результаты тестирования, сдать новое тестирование. Тестирование может осуществляться по различным категориям знаний. Например: ОИТ -> Устройство ПК -> Компьютерные сети ООП -> Наследование -> Работа с потоками ■ После сдачи теста гость видит результат тестирования, количество правильно отвеченных вопросов, процент правильных ответов и полученную оценку. ■ Студент имеет возможность прервать тестирование и продолжить его тогда, когда ему это будет удобно. ■ Оценивание нужно вести на основании 12 балльной системы, привязанной к количеству вопросов теста. ■ Пароли и логины гостей хранятся в зашифрованном виде. Описание режима работы для Администратора (в дальнейшем админ): ■ В системе может быть только один админ, логин и пароль админа задаётся при первом входе в программу. ■ В дальнейшем пароль и логин можно изменить (но данную возможность имеет только админ). ■ Пароль и логин необходимо хранить только в зашифрованном виде. ■ При работе с системой админ имеет следующие возможности: ▶▶ Управление пользователями — создание, удаление, модификация пользователей. ▶▶ Просмотр статистики — просмотр результатов тестирования в общем по категориям, по конкретным тестам, по конкретным пользователям. Результаты просмотра статистики можно вывести в файл. ▶▶ Управление тестированием — админ имеет возможность добавлять категории,тесты, вопросы к тестам, задавать правильные и неправильные ответы, импортировать и экспортировать категории и тесты с вопросами из файла (и в файл). При выполнении задания необходимо в полной мере использовать аппарат ООП. Код должен быть читабельным, хорошо прокомментированным, и использовать единую систему именования идентификаторов.