Как создать программу для прохождения тестов

Use saved searches to filter your results more quickly

Cancel Create saved search

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window.

Reload to refresh your session.

C#, WPF, MVVM, LiteDB

EvgeniyVashinko/TestSystem

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Создание тестов для проведения экзаменов

Sign In Required

Теперь давайте разберём 5-й пункт, так как он тоже является, возможно, не совсем понятным:

$question_id = 5; // id вопроса, на который пользователь дал ответ (приходит из формы)
$answer = 1; // ответ, который дал пользователь (приходит из формы)
$_SESSION[«questions»][«$question_id»] = $answer; // Записываем в сессию ответ на данный вопрос
?>

Самую суть я разобрал, а уже дальше постарайтесь этот алгоритм применить на практике самостоятельно. Ведь не секрет, что придумать алгоритм гораздо тяжелее, чем его реализовать, и Вам нужно лишь его реализовать, а это не так сложно. Не спорю, алгоритм весьма сложный, но я предупредил вначале статьи, что она не для новичков. И несмотря на то, что алгоритм сложный, в реальности он ещё сложнее может быть, если начать добавлять различные «навороты», например, разбор вопросов в конце, а также каждый раз перемешивать варианты ответов при выводе вопроса.

Создано 06.02.2012 14:00:47

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Читайте также:
    Где на экране по умолчанию располагается панель фильтров отображения в программе scad office

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    Как написать любой онлайн тест на максимальный балл или 5 на дистанционке

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 25 ):

    Sirojiddin Ashti 06.02.2012 14:29:14

    Добавьте результат этого скрипка с рисунком??

    Admin 06.02.2012 15:14:29

    Результат здесь: http://myrusakov.ru/tests.html В любой тест заходите вот и будет результат, за вычетом того, что в конце данного скрипта нет разбора вопросов.

    Screen 06.02.2012 15:01:44

    Да. Было бы не плохо, если бы появились пункты со скринами, или допустим со ссылками для переходу, где можно было бы просмотреть итог.

    yurfact 07.02.2012 15:16:12

    Ничего себе длииииинющая статья. Это рекорд. Прим. — не в обиду автору а просто хочется чтобы темы пошире раскрывались а не абстрактно

    Admin 07.02.2012 16:07:54

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

    Нур-Мохмад 30.07.2012 12:00:51

    Михаил, разве тут $_SESSION[«questions»][$question_id»] не должна быть кавычка перед $question_id ?

    Admin 30.07.2012 18:37:00
    SARUMAN7 17.11.2013 13:35:34

    Михаил скажите пожалуйста как мне вытащить все вопросы по определенной теме допустим где test_id=3

    alexandrdante 17.11.2013 13:56:32

    Уважаемый Андрей,id каждого вопроса теста не должны повторяться. Можно сделать категорию,занести в неё нужные вам тесты,задать ей id,например,3 и при помощи запроса вытащить все данные из неё.

    SARUMAN7 17.11.2013 14:23:17

    Уважаемый Александр Альт если Вам не сложно помогите мне пожалуйста я php знаю на среднем уровне до темы регулярные выражения (учусь по курсу Михаила)но мне срочно нужно сделать тестирование поможете сопровождая меня советами?

    alexandrdante 17.11.2013 14:51:31

    Буду стараться Вот смотрите,у вас есть айди теста: — 3 в таблице с вопросами у каждого вопроса из этого теста,должен стоять идентификатор 3 в колонке test_id У Михаила разобран вывод по одному вопросу при помощи массива и так по действиям,что,в принципе и актуально для теста. Cуть примерно такая. Подключаетесь к базе данных при помощи php. Думаю у Михаила этот вопрос разобран в курсах,так что вдаваться в подробности не буду. После этого создаёте запрос к таблице и выводите данные из неё при помощи массива: $row = mysql_fetch_array(mysql_query(«SELECT * FROM таблица WHERE test_id=`3`»,$имя переменной,где задан коннект к базе данных); потом выводите результат при помощи команды echo, включив нужные вам данные в вывод. echo $row[‘title’]; Выведет название вопроса) Ну,можно вывести название,далее варианты ответов и т.д. Это как обычный вывод массива

    Читайте также:
    Как переводится условная инструкция if в программе

    SARUMAN7 17.11.2013 15:14:41

    все понял кроме этого момента Вот смотрите,у вас есть айди теста: — 3 в таблице с вопросами у каждого вопроса из этого теста,должен стоять идентификатор 3 в колонке test_id на данный момент я создал отдельную базу kontrol и в ней две таблицы testi с полями id и title(тема тестов) и таблицу vopros с полями id id_test title_vopros(Текст вопроса) variant_1 variant_2 variant_3 variant_4 и поле correct это чтобы Вы видели ситуацию изнутри теперь вопрос как подставить эти данные в форму (тоесть заголовок варианты и т.д) обе таблицы я заполнил по одной записи в нужных полях

    alexandrdante 17.11.2013 18:12:51

    Ну вот. Вытаскиваете этим запросом: $row = mysqli_fetch_array(mysqli_query(«SELECT * FROM таблица WHERE test_id=`3`»,$имя переменной,где задан коннект к базе данных); все данные из таблицы,у которых параметр test_id = 3 mysqli_fetch_array — этим вы добавили все данные из всех колонок,test_id которых равен 3,в массив =) Ну вот,а теперь выводите,создавая внешний вид теста например:echo $row[‘title_vopros’]; — текст вопроса. Следующей строчкой: echo $row[‘variant_1’]; — выведет первый вариант ответа и так далее,формируя тело отображения теста Про привязку к форме отпишу чуть позже.

    SARUMAN7 18.11.2013 12:01:13

    на данный момент я вывел из базы тему теста вопрос теста и варианты ответа вот файл testing.php «; else echo «неудача».»
    «; $obr=mysql_select_db(«kontrol»,$disk); if($obr==true) echo «обратились».»
    «; else echo «неудача».»
    «; $result=mysql_query(«SELECT * FROM vopros»,$disk); if($result==true) echo «вывели».»
    «; else echo «не вывели».»
    «; $resultat=mysql_query(«SELECT * FROM testi»,$disk); if($result==true) echo «вывели».»
    «; else echo «не вывели».»
    «; $myrow=mysql_fetch_array($result); if($myrow==true) echo «занесли».»
    «; else echo «не занесли».»
    «; echo «
    «; echo «
    «; $myr=mysql_fetch_array($resultat); if($myrow==true) echo «занесли».»
    «; else echo «не занесли».»
    «; echo «
    «; echo «
    «; mysql_close($disk); $title=$myr[‘title’]; $title_vopros=$myrow[‘title_vopros’].»
    «; $variant_1=$myrow[‘variant_1’].»
    «; $variant_2=$myrow[‘variant_2’].»
    «; $variant_3=$myrow[‘variant_3’].»
    «; $variant_4=$myrow[‘variant_4’].»
    «; include(«select_testing.php»); echo «
    «; ?> а вот файл select_testing.php

    Читайте также:
    Есть ли в программе возможность оформления интерфейса рмк

    хотя все выводит но все же проверьте правильно ли здесь все и еще вопрос в таблице у меня 4 поля вариантов а в данном вопросе 3 (тоесть четвертое поле в таблице пустое)не вызовет ли это в будущем сбой? и еще как сделать чтобы при нажатии на следующий вопрос выводился следующий из таблицы?? (пока там всего один вопрос)

    tikkiwiki 18.11.2013 16:33:50

    Здравствуйте Андрей. Пустое поле в таблице не как не повлияет на работу в целом. Чтобы выводился следующий вопрос из таблицы читайте внимательно пункты 2-7 и делайте по аналогии.

    SARUMAN7 18.11.2013 16:50:19

    Здравствуйте а можно как то обойтись без сессий? я их еще не изучал а тупо копировать я не хочу так как потом сам же не разберусь в коде в случае чего

    tikkiwiki 18.11.2013 17:26:34

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

    SARUMAN7 20.11.2013 15:55:38

    Скажите как сделать так чтобы при нажатии следующий вопрос выводился следуший вопрос? если можно пример пожалуйста

    tikkiwiki 20.11.2013 16:44:25

    Лучше реализовать одной кнопкой «Ответ» и после ее нажатия, пользователю автоматически подается следующий вопрос. Реализовать можно множеством способов, зависит от того, как у Вас работает система, можно AJAX’ом допустим.

    SARUMAN7 20.11.2013 16:55:37

    нет аякс не использую можно как то по другому ? я слышал get запросом как то можно\подскажите код

    tikkiwiki 20.11.2013 17:06:04

    пример из двух файлов, форма отправки находится в файле form.php, а обработчик в файле add.php. Файлы Вы можете конечно называть как вам угодно, лишь придерживаясь правильности именования файлов и правильно указывайте путь к обработчику. Создайте form.php и добавьте следующий код: Затем, создайте add.php и в него добавьте следующее: Затем, запустите form.php и увидите результат работы передачи данных методом GET.

    SARUMAN7 24.11.2013 10:02:45

    у меня все получилось но все вопросы выводятся на одной странице как это исправить?

    Источник: myrusakov.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru