Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 551

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Требуется помощь. Хотим использовать работу с файлами для создания теста для учащихся.
1.Как прочитать информацию с текстового файла, содержащего тест (вопрос, варианты ответов, правильный вариант)?
2.Как организовать их вывод в случайной последовательности?

bzfar_77 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: bzfar_77 (статус: Посетитель)
Вопрос отправлен: 3 мая 2008, 09:40
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Косолапов Дмитрий Юрьевич

Здравствуйте, bzfar_77!
В принципе, лучше всего определиться с форматом текстового файла, или вообще использовать БД. Ну а чтение из текстового файла можно организовать вплоть до Memo1.Lines.LoadFromFile.
Что же касается организации вывода в произвольной последовательности - лучше всего, когда весь тест загружен в некую структуру (например, массив из TRecord или класса "вопрос теста"), а выдавать случайные элементы массива - дело техники.

Ответ отправил: Косолапов Дмитрий Юрьевич (статус: 8-ой класс)
Время отправки: 3 мая 2008, 12:49
Оценка за ответ: 4


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 16 июня 2008, 07:50; участников в обсуждении: 3.
bzfar_77

bzfar_77 (статус: Посетитель), 3 мая 2008, 14:04 [#1]:

С чтением файла я практически разобрался.
Как сделать случайный выбор вывода вопросов?
Трофимов А.Ю. - 821

Трофимов А.Ю. - 821 (статус: Посетитель), 4 мая 2008, 11:05 [#2]:

Делал подобную программу. Пришёл к выводу, что лучше файл использовать Exel. На форме размещаещь StringGird и при начале работы грузишь в него данные. Далее работаешь с загруженной таблицей. У меня было 3 столбца: 1 - номера вопросов (не использовался, 2 - текст вопроса, 3 - ответ Да или Нет. При старте программа также определяет количество записей в загруженной таблице и исходя из этого генерирует номер вопроса случайным образом через Random(...). не забудь учесть при написании кода что может выскочить один и тот же вопрос два раза подряд (не очень удачный вариант для теста).
bzfar_77

bzfar_77 (статус: Посетитель), 4 мая 2008, 12:00 [#3]:

Каким образом избежать выпадания одного и того же вопроса?
Трофимов А.Ю. - 821

Трофимов А.Ю. - 821 (статус: Посетитель), 4 мая 2008, 15:18 [#4]:

Если достаточно, чтобы не совпадали ближайщие 2, то создавай глобальную переменную в своей программе, куда сохраняешь номер вопроса после того, как на него ответили, а во время генерации следующего, производим генерацию номера вопроса до тех пор, пока номер вопроса не перестанет совпадать с номером в глобальной переменной. ( необходима дополнительная проверка количества вопросов иначе если будет 1 то получится замкнутый цикл). По аналогии для определённого количества вопросов создаётся уже массив и соответственно проверка на то, чтобы количество вопросов не было меньше количества необходимых (размерность массива).
проверку можно сделать примерно так:(a- количество вопросов, b- предыдущий вопрос)
var
i: boolean;
Tv: (размерность a и b обычно достаточно byte);
begin
randomize;
repeat
Tv:=round(random(a));
until Tv<>b;
end;
3_JI_O_o

3_JI_O_o (статус: Посетитель), 16 июня 2008, 06:29 [#5]:

Писал нечто подобное...
Есть готовая прога ( почти не сырая) :)
Если интересно могу скинуть... вроде где то сохранились исходники....
Делал следующее:
1.возможность создания теста в реал тайм( с неопределенным количеством вопросов)
2.выдача вопросов и ответов к ним ( четыре ответа на каждый вопрос)
в случайном порядке.
3. выставление оценки (критерии можно задать самому)
4. кодирование текста вопросов и ответов в файле(чтобы "умные" студенты не читали) файл организован следующим способом:
а. вопрос
б. правильный ответ
в, г, д неправильные ответы
5. сохранение статистики ответов.
6. редактирование уже имеющегося теста (созданного этой программой) (возможно закачка из текстовика... но я так и не доделал... руки не доходили :))
вроде все...
bzfar_77

bzfar_77 (статус: Посетитель), 16 июня 2008, 07:50 [#6]:

Скинье пожалуйста, мистер 3_JI_O_o.
bzfar@mail.ru

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:34
Выполнено за 0.02 сек.