Програма-тест - stack overflow російською
Зацікавив мене це питання і я вирішив зробити маленьку программулінку в приклад. Тут многа бука = /
почну здалеку: не треба розводити політосрач, це просто мій погляд на вирішення завдання. Це політ моєї фантазії, така базова заготовка, яку можна, при бажанні, розвинути далі.
А тепер по справі:
програма зчитує дані з ini файлу, і на їх основі створює дерево. в дереві кожна гілка є питанням. Залежно від відповіді на питання (так чи ні) вибирається наступне питання. Для програми не має значення кількість розгалужень дерева. У класу питання є параметр YesNo, його можна використовувати для перевірки правильності відповіді.
приклад ini файлу:
Структура ini файлу:
ключ - ідентифікатор питання (не повинен повторюватися) значення - батько питання (тобто питання передує цьому)
ключ - ідентифікатор питання (повинен відповідати ВД з таблиці Questions) значення - текст питання
ключ - ідентифікатор питання (повинен відповідати ВД з таблиці Questions) значення - тут можна експериментувати, як душа забажає
Для початку описуємо клас питань:
Тепер, власне, код програми:
Нехай є таблиця-опитувальник: 10 заходів по 10 запитань кожен.
Простий варіант. Випадкове перемішування. Для кожного випробуваного свої питання (незалежно від відповіді).
- Створюємо таблицю з номерами питань у вихідній таблиці.
- Випадковим чином перемішуємо питання для кожного заходу.
- Проводимо тест, витягуючи питання з вихідної таблиці на підставі, номера питання.
- Створюємо дерево з номерами питань у вихідній таблиці.
- На кожному рівні гілки дерева визначаються можливими варіантами відповідей.
- Проходимо тест, спускаючись по гілках вниз.
Почитати про дерева в Delphi: серія статей.