Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100

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

19.08.2019, 05:31. Показов 3664. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.08.2019, 05:31
Ответы с готовыми решениями:

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

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

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

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

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

Спасибо. жду
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
19.08.2019, 22:14
1) Да, третью с ответами, ответам прописываем id вопроса.
2) Флажок (поле в третьей таблице), по умолчанию 0, правильный ответ 1
3) Тот-же RAND смешивает выборку, просто убираем LIMIT, либо LIMIT 4 WHERE `id_question` = 247 ORDER BY RAND()
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
20.08.2019, 09:39
Цитата Сообщение от 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  [ТС]
sasha0012, и atanov, СПАСИБО БОЛЬШОЕ!
Попробую оба варианта!

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

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

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

Добавлено через 8 минут
Вопрос "2)" имеется в виду закрыть тест при окончании 50 минут для вывода результатов его прохождения.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
20.08.2019, 16:34
Цитата Сообщение от 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
Цитата Сообщение от sheriff5 Посмотреть сообщение
3) Кто-нибудь раньше такое делал?
делал простенькие тесты для интереса)
выводил по 5-ть на страницу с чексбоксом - пользователь отвечал - сразу выводились результаты -какие правильные какие нет
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 19:02  [ТС]
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
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
20.08.2019, 19:32
Таблица с ответами:
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  [ТС]
sasha0012, если бы все было так просто! :-)

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

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

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

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

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

В общем вариантов на самом деле масса.
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 100
20.08.2019, 20:44  [ТС]
sasha0012, суть в том что надо показать пользователю весь пройденный тест за 50 минут.
Все вопросы и все ответы к ним.
С указанием вопроса и его ответа, если он неправильный, то и правильного ответа.
Это можно реализовать в Вашей 5 таблице?
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
20.08.2019, 20:55
Да, можно. Надо добавить одно поле и туда записывать айдишники ответов в таком виде: 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  [ТС]
sasha0012, более менее стало понятно! Спасибо!

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

Как появятся новые вопросы, сразу напишу! :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.08.2019, 21:19
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru