Нужна помощь в реализации проекта тестирование на языке С++.
Реализовать полнофункциональную систему тестирования. В системе должны быть 2 режима: Администратор и Тестируемый. Описание режима работа для Тестируемого (в дальнейшем Гость). ■ Для входа в систему Гость должен зарегистрироваться. Данная процедура выполняется один раз, при дальнейших входах в систему доступ идет по логину и паролю. ■ При регистрации нужно указывать ФИО, домашний адрес, телефон. ■ Важно, чтобы логины для пользователей были уникальными. ■ После входа Гость имеет возможность просмотреть свои предыдущие результаты тестирования, сдать новое тестирование. ■ Тестирование может осуществляться по различным категориям знаний. Например: • Математика (раздел): ◉ Дискретная математика (конкретный тест); ◉ Математический анализ (конкретный тест). • Физика (раздел): ◉ Квантовая физика (конкретный тест); ◉ Механика (конкретный тест). ■ После сдачи теста Гость видит результат тестирования, количество правильно отвеченных вопросов, процент правильных ответов и полученную оценку. ■ Студент имеет возможность прервать тестирование и продолжить его тогда, когда ему это будет удобно. ■ Оценивание нужно вести на основании 12-ти балльной системы, привязанной к количеству вопросов теста. ■ Пароли и логины Гостей хранятся в зашифрованном виде. Описание режима работа для Администратора (в дальнейшем Админ). ■ В системе может быть только один Админ, логин и пароль Админа задается при первом входе в программу. ■ В дальнейшем пароль и логин можно изменить (но данную возможность имеет только Админ). ■ Пароль и логин необходимо хранить только в зашифрованном виде. ■ При работе с системой Админ имеет следующие возможности: • управление пользователями – создание, удаление, модификация пользователей; • просмотр статистики – просмотр результатов тестирования в общем по категориям, по конкретным тестам, по конкретным пользователям. Результаты просмотра статистики можно вывести в файл; • управление тестированием – Админ имеет возможность добавлять категории, тесты, вопросы к тестам, задавать правильные и неправильные ответы, импортировать и экспортировать категории и тесты с вопросами из файла (и в файл). При выполнении задания необходимо в полной мере использовать аппарат ООП и STL. Код должен быть читабельным, хорошо прокомментированным, и использовать единую систему именования идентификаторов.