dEEp |
Отправлено: 07.03.2005, 16:13 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
На форме расположены 2 ListBox'a. Предположим, что
в левом столбце вопросы. А в правом ответы на них,
причём расположены не по порядку. Наши действия: в
левом ListBox'e оставляем всё как есть, а в правом
выбираем какую либо строку. Кликаем по кнопке, также
расположенной на форме и в случае, если ответ (т.е.
выделенная строка) является правильным, то
на экране появляется сообщение, что ответ верен.
Вопросы идут поочерёдно, т.е. сначала первый, затем
второй и т.д. А ответы, естественно, как уже говорил,
расположены беспорядочно. Каким образом можно всё это
реализовать? Если что-то не понятно — могу разъяснить.
Присоединить изображение
|
|
Георгий |
Отправлено: 07.03.2005, 22:43 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
5 таблиц в БД:
1- id1; текст вопроса;
2- id2; текст ответа;
3- id3; id1; id2
4- id4; id1; id3
5- код тестируемого; id3
1 таблица — таблица (список) вопросов
2 таблица — таблица (список) всех возможных ответов
3 таблица — таблица связи вопроса и множества возможных ответов
4 таблица — таблица связи вопроса и правильного или правильных вариантов ответа
5 таблица — таблица выбранных тестируемым субъектом вариантов ответа
приведённая стуктура обеспечивает защиту от ошибок когда в результате ошибочного ввода правильных ответов правильный вариант случайно не попадает в список ответов.
позволяет на один вопрос иметь несколько правильных вариантов ответов (в том числе и ни одного).
позволяет вести протокол тестирования — кто и что отвечал
недостатки — структура позволяет только однократное тестирование субъекта — при последующих тестах выбраные ответы будут путаться.
обход недостатков — в "код тестируемого" включить дату и время начала тестирования.
Asher, RUP, а именно варианты использования, потрасающая вещь!
Отредактировано Георгий — 07/03/2005, 22:49 |
|
dEEp |
Отправлено: 08.03.2005, 12:52 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
Я почти не умею работать с базами данных. Но могу попытаться. БЫло бы хорошо, если бы Вы разъяснили подробнее про то, что написали. Я плохо понял. Хотя в принципе и сам постараюсь. Спасибо заранее.
|
|
Treumer |
Отправлено: 08.03.2005, 17:17 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
QUOTE (dEEp @ 07/03/2005, 16:13) | На форме расположены 2 ListBox'a. Предположим, что
в левом столбце вопросы. А в правом ответы на них,
причём расположены не по порядку. Наши действия: в
левом ListBox'e оставляем всё как есть, а в правом
выбираем какую либо строку. Кликаем по кнопке, также
расположенной на форме и в случае, если ответ (т.е.
выделенная строка) является правильным, то
на экране появляется сообщение, что ответ верен.
Вопросы идут поочерёдно, т.е. сначала первый, затем
второй и т.д. А ответы, естественно, как уже говорил,
расположены беспорядочно. Каким образом можно всё это
реализовать? Если что-то не понятно — могу разъяснить. |
В общем-то про таблицы толково описано, хотя до них еще надо добраться
Если я правильно понимаю, то ListBox-ы на данный момент заполнены вручную ?
Это должно происходить, естественно — автоматически.
Общий алгоритм такой:
0) Идентифицируеи испытуемого.
1) Берем откуда-то (наилучший вариант — из базы данных — из описанной выше таблицы 1) список вопросов и заполняем им левый ListBox.
2) "Встаем" на первый элемент списка вопросов.
3) Заполняем (предварительно очистив) правый ListBox списком возможных ответов (взятых из описанной выше таблицы 2 по правилу в таблице номер 3) для вопроса выбранного в левом ListBox-е.
4) Ожидаем ввода от пользователя, возможные варианты:
- Пользователь выбрал новый вопрос — переход на пункт 3)
- Пользователь выбрал ответ (нажал на кнопку после этого, или 2 раза кликнул на выбранном ответе — все равно) — переходим к пункту 6
- Пользователь завершает работу — переходим к пункту 9
5) См. пункт 4
6) Проверяем — правилен ли выбранный ответ — по таблице правильных ответов 4.
7) Если ответ верен — сообщаем об этом, исключаем из левого ListBox-а вопрос, сохраняем в таблице номер 5 ответ испытуемого,
выделяем в левом ListBox-е следующий вопрос и переходим к пункту 3),
иначе пункт 8)
8) Ответ неверен. Сообщаем об этом, возможно — сохраняем в таблице 5 неверный ответ, переходим к пункту 4)
9) Сообщаем результаты. Завершаем программу.
Естественно, таблицы базы данных можно заменить на что-то еще — файлы, массивы данных введенные в программу вручную и т.п.
|
|
|