Вам поступила задача написать программу для создания тестов на проверку знаний в школе. Для этого должна быть возможность создавать наборы вопросов на разные темы по набору дисциплин.
Что такое темы и дисциплины?
С дисциплинами всё просто - это как предметы в школе: математика, литература, физика и т.д.
Темы - это, соответственно, какие-либо из разделов указанной дисциплины. Например дисциплина "математика" может включать следующие темы:
- Алгебраические выражения
- Рациональные числа
- Дроби
- Факториал
и т.д.
(?) Стоит ли сделать более развёрнутую иерархию? Если да, то какую?
Учителям в школе необходима возможность создавать наборы вопросов, набирая их либо в случайном порядке автоматически, либо самостоятельно. Для каждого набора необходимо иметь возможность задать максимальное количество вопросов.
Программа должна уметь подсчитывать количество баллов за тест и хранить результаты прохождения всех тестов.
Для конкретного теста должна быть возможность задать количество попыток неверно ответить на вопрос.