0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
1

Онлайн-тест (вступительного экзамена) в институте

19.08.2019, 05:31. Показов 2697. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день коллеги,
Онлайн-тест (вступительного экзамена) в институте.

Исходные данные:
1) Всего 120 вопросов по 3 предметам. География - 50 вопросов, История - 30 вопросов и Биология - 40 вопросов.
2) В тесте будет 15 вопросов по географии, 10 вопросов по истории и 12 вопросов по биологии.
3) На тест дается 50 минут.

Надо сделать на главной странице:
1) Три кнопки с названиями предметов. К примеру, нажав на “ГЕОГРАФИЯ” абитуриент открывал все 50 вопросов по очереди, в каждом вопросе прилагается по 4 ответа. Один из которых правильный. Он нажимает на один ответ из четырех, потом кнопку “ПРОВЕРИТЬ” и система показывает его ответ и правильный ответ. Типа этого https://cdlstudy.com/test_sample/index.php?id=1. Здесь не будет учета времени.
2) Четвертая кнопка будет “ПРОЙТИ ТЕСТ НА ВРЕМЯ”. Тут будет задаваться 37 вопросов (по 3 предметам) вразброс со счетчиком обратного времени - 50 минут.

Вопросы:
1) Все 120 вопросов загрузить в БД phpMyAdmin в 1 общую таблицу или в 3 разные таблицы? Как лучше?
2) Как настроить вытаскивание 15 вопросов из 50 по ГЕОГРАФИИ?
3) Кто-нибудь раньше такое делал?

Спасибо. Жду.

P.S. Предметов на самом деле больше, просто расписал на примере 3-х для наглядности.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2019, 05:31
Ответы с готовыми решениями:

Вероятность сдачи вступительного экзамена
вероятность сдачи вступительного экзамена для выпускников школы равна 0.8. Сколько нужно...

VB6.0 Типизированные файлы.Дан файл,содержащий сведения о результатах вступительного экзамена по математике.
Дан файл,содержащий сведения о результатах вступительного экзамена по математике. Он содержит...

Онлайн тест
Как реализовать онлайн тест на php. Допустим есть десять вопросов с 4 вариантами ответами и чтоб...

Тест онлайн
у нас завтра экзамен в виде электроннного теста,есть ли шанс найти ответ в коде страницы? код...

61
621 / 464 / 169
Регистрация: 26.05.2016
Сообщений: 2,584
19.08.2019, 10:13 2
Цитата Сообщение от sheriff5 Посмотреть сообщение
Онлайн-тест (вступительного экзамена) в институте.
уууу, тут целое поле для творчества.
Цитата Сообщение от sheriff5 Посмотреть сообщение
Все 120 вопросов загрузить в БД phpMyAdmin в 1 общую таблицу или в 3 разные таблицы? Как лучше?
я бы разделил. Только phpmyadmin это не БД, БД у Вас скорее всего mysql.
Цитата Сообщение от sheriff5 Посмотреть сообщение
Как настроить вытаскивание 15 вопросов из 50 по ГЕОГРАФИИ?
sql запрос к таблице, в которой География c LIMIT 15, но выберет подряд. Если нужно случайно, то можно php скриптом выбирать по 1-му случайному в цикле до 15.
Цитата Сообщение от sheriff5 Посмотреть сообщение
Кто-нибудь раньше такое делал?
наверняка делали
0
1112 / 554 / 319
Регистрация: 21.06.2012
Сообщений: 1,854
19.08.2019, 10:17 3
1) Создаем 2 таблицы. Одна с категориями, вторая с вопросами. id категорий указываем в таблице с вопросами.
2) WHERE `id_category` = 7 ORDER BY RAND() LIMIT 15 7 - айдишник категории ГЕОГРАФИЯ
3) Естественно.
2
621 / 464 / 169
Регистрация: 26.05.2016
Сообщений: 2,584
19.08.2019, 10:20 4
Цитата Сообщение от sasha0012 Посмотреть сообщение
WHERE `id_category` = 7 ORDER BY RAND() LIMIT 15
точно, про RAND() забыл!
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
19.08.2019, 20:38  [ТС] 5
sasha0012, Спасибо!
Значит нужны 2 таблицы - 1 с категориями, а 2 с вопросами.

Возникает 3 вопроса:
1) А в какую таблицу забивать по 4 ответа к каждому вопросу? Во 2 таблицу или создать 3-ю таблицу?
2) Из 4-х ответов каждого вопроса 1 ответ правильный (остальные 3 ответа неправильные), как его отмечать в таблице?
3) Как постоянно менять местами 4 ответа при появлении вопроса? (если их оставить в одной последовательности студенты могут просто запомнить что 2-м по счету всегда идет правильный ответ). Студенты при подготовке к экзамену будут помногу раз открывать ВСЕ вопросы для заучивания, поэтому ответы на экране надо постоянно менять местами...

Спасибо. жду
0
1112 / 554 / 319
Регистрация: 21.06.2012
Сообщений: 1,854
19.08.2019, 22:14 6
1) Да, третью с ответами, ответам прописываем id вопроса.
2) Флажок (поле в третьей таблице), по умолчанию 0, правильный ответ 1
3) Тот-же RAND смешивает выборку, просто убираем LIMIT, либо LIMIT 4 WHERE `id_question` = 247 ORDER BY RAND()
0
621 / 464 / 169
Регистрация: 26.05.2016
Сообщений: 2,584
20.08.2019, 09:39 7
Цитата Сообщение от sheriff5 Посмотреть сообщение
1) А в какую таблицу забивать по 4 ответа к каждому вопросу? Во 2 таблицу или создать 3-ю таблицу?
я бы разделил на таблицы по предметам. Каждая запись - текст вопроса и 4 (можно и больше) поля для ответов. Один верный, скажем первый.
Цитата Сообщение от sheriff5 Посмотреть сообщение
2) Из 4-х ответов каждого вопроса 1 ответ правильный (остальные 3 ответа неправильные), как его отмечать в таблице?
например первый, название столбца trueReply.
Цитата Сообщение от sheriff5 Посмотреть сообщение
3) Как постоянно менять местами 4 ответа при появлении вопроса? (если их оставить в одной последовательности студенты могут просто запомнить что 2-м по счету всегда идет правильный ответ). Студенты при подготовке к экзамену будут помногу раз открывать ВСЕ вопросы для заучивания, поэтому ответы на экране надо постоянно менять местами...
Случайным образом. Например все 4 ответа поместить в массив и его случайным образом перемешать, например с помощью встроенной функции shuffle(), а результат вывести в html.
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 16:24  [ТС] 8
sasha0012, и atanov, СПАСИБО БОЛЬШОЕ!
Попробую оба варианта!

Остается 2 последних вопроса:

1) Как запоминать тест при его прохождении? Чтобы на финише вывести его на экран для user'a?

2) Как сделать обратный отсчет времени 50 минут на тесте и закрыть его при окончании времени?

Добавлено через 8 минут
Вопрос "2)" имеется в виду закрыть тест при окончании 50 минут для вывода результатов его прохождения.
0
621 / 464 / 169
Регистрация: 26.05.2016
Сообщений: 2,584
20.08.2019, 16:34 9
Цитата Сообщение от sheriff5 Посмотреть сообщение
Как запоминать тест при его прохождении
Начните сначала. Экзаменуемый как-то попадает на станицу, где выводятся вопросы. Т.е. должна быть авторизация. Как правило user имеет уникальную запись в таблице бд. В эту таблицу можно заносить результаты. Далее ответы пользователя отправляются на сервер, где сравниваются с информацией из бд. false/true можно сохранить хотя бы в новую таблицу, что-то типа testResults. В общем вариантом масса.
Цитата Сообщение от sheriff5 Посмотреть сообщение
а финише вывести его на экран для user'a
т.к. выбор пользователя (экзаменуемого) будет сохранён, ничто не мешает вывести результата -> список всех вопросов, зеленым выделить правильные, красным неправильные.
Цитата Сообщение от sheriff5 Посмотреть сообщение
Как сделать обратный отсчет времени 50 минут на тесте и закрыть его при окончании времени
на клиенте с помощью js. Если время вышло, то нельзя отправить на сервер.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
20.08.2019, 16:47 10
Цитата Сообщение от sheriff5 Посмотреть сообщение
3) Кто-нибудь раньше такое делал?
делал простенькие тесты для интереса)
выводил по 5-ть на страницу с чексбоксом - пользователь отвечал - сразу выводились результаты -какие правильные какие нет
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 19:02  [ТС] 11
atanov, andyyy, спасибо за разъяснения.

Сейчас попробовал создавать таблицы в phpmyadmin.

1) Создать 1 таблицу для пользователей и 2 таблицу с предметами не проблема;

2) Создать 3 таблицу с вопросами не проблема;

4) Создать 4 таблицу с ответами на вопросы - вот здесь тупик.

Можно создать 7 полей:
1 - id;
2 - id вопроса;
3 - 1 ответ правильный;
4 - 2 ответ;
5 - 3 ответ;
6 - 4 ответ;
7 - "Флажок, по умолчанию 0, правильный ответ 1" - советовал sasha0012.

Вопрос: Как правильный ответ в 3 поле связать с флажком в 7 поле?
0
1112 / 554 / 319
Регистрация: 21.06.2012
Сообщений: 1,854
20.08.2019, 19:32 12
Таблица с ответами:
1 - id (INT);
2 - id вопроса (INT);
3 - ответ (TEXT);
4 - флажок (TINYINT или BOOLEAN).

Правильному ответу в поле "флажок" присваиваем 1 или true
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 19:35  [ТС] 13
sasha0012, если бы все было так просто! :-)

проблема в том что у каждого вопроса обязательно должно быть 4 ответа: 1 правильный и 3 неправильных.
Куда же записать эти 3 неправильных?
0
1112 / 554 / 319
Регистрация: 21.06.2012
Сообщений: 1,854
20.08.2019, 19:38 14
В этом случае нет привязки к количеству ответов. Их может быть сколько угодно. Поле "id вопроса" как думаете, зачем?

Добавлено через 2 минуты
Таблица 4 строится по аналогии с таблицей 3
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 20:03  [ТС] 15
sasha0012, Сорян, затупил! Спасибо!

А как быть с выводом всего теста в конце? Вы согласны с предложением atanov, ?

"Экзаменуемый как-то попадает на станицу, где выводятся вопросы. Т.е. должна быть авторизация. Как правило user имеет уникальную запись в таблице бд. В эту таблицу можно заносить результаты. Далее ответы пользователя отправляются на сервер, где сравниваются с информацией из бд. false/true можно сохранить хотя бы в новую таблицу, что-то типа testResults. В общем вариантом масса."

Или попроще можно как-то сделать?
0
1112 / 554 / 319
Регистрация: 21.06.2012
Сообщений: 1,854
20.08.2019, 20:18 16
Все зависит от логики приложения. Если максимально просто, то можно так: создаем пятую таблицу с результатами. Там 4 поля (id, id пользователя, результат, время прохождения теста, дата прохождения). В "результат" записываем количество правильных ответов, в "время прохождения теста" время которое потратил на тест. После завершения теста записываем данные в таблицу (независимо от результатов), а при выводе информации пользователю (студенту) уже обрабатываем данные согласно логике приложения. То есть, если время превышено, или ошибок много, или попыток много, либо временной интервал между двумя тестами слишком короткий, или еще что-то, то показываем сообщение о ошибке и предлагаем повторить.

В общем вариантов на самом деле масса.
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 20:44  [ТС] 17
sasha0012, суть в том что надо показать пользователю весь пройденный тест за 50 минут.
Все вопросы и все ответы к ним.
С указанием вопроса и его ответа, если он неправильный, то и правильного ответа.
Это можно реализовать в Вашей 5 таблице?
0
1112 / 554 / 319
Регистрация: 21.06.2012
Сообщений: 1,854
20.08.2019, 20:55 18
Да, можно. Надо добавить одно поле и туда записывать айдишники ответов в таком виде: 1,7,27,81,12,458,71,35,......,41
При выводе ответов студенту проверяем состояние "флажка", если 1 красим ответ в зеленый, если 0 красным. Выводим ответы из таблицы ответов конструкцией IN(1,7,27,81,12,458,71,35,......,41)

Добавлено через 30 секунд
Ну и с вопросами аналогично

Добавлено через 1 минуту
кстати если у ответа флажок 0, то вытаскиваем из таблицы ответов ответ с флажком 1 с таким-же id вопроса
1
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 21:19  [ТС] 19
sasha0012, более менее стало понятно! Спасибо!

Как появятся новые вопросы, сразу напишу! :-)
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 21:19  [ТС] 20
sasha0012, более менее стало понятно! Спасибо!

Как появятся новые вопросы, сразу напишу! :-)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2019, 21:19
Помогаю со студенческими работами здесь

Тест онлайн фепо
такой вопрос можно ли узнать ответы через исходный код, браузер мозила, ctrl+U, или может можно...

Тест регулярного выражения онлайн
Нашел замечательный сайтик в котором можно онлайн подобрать нужное выражение и протестировать на...

Примеры приложений Тест-онлайн
Я только недавно начал работать с ASP.NET MVC. Есть задача создать приложение по тестированию. Тест...

Нужно создать онлайн тест для сайта
Тест на выбор профессии. Нужно выбрать (а) или (б). Например: 1) а. Ухаживать за животными |...

Как узнать ответы на онлайн тест, используя код страницы
У меня намечается экзамен по информатике, проходить будет в форме теста, вопросы в тесте случайные,...

Нужно разъяснение в решении вступительного задания
Не знаю, разрешено ли создавать подобные темы, но реально нужна помощь, ибо всю голову изломал уже....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru