Приложение для онлайн-викторины: обзор викторины



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

Это третья статья в серии о создании онлайн-викторины с использованием JSP Servlet.

Если вы не читали предыдущие сообщения, просмотрите их, так как вам будет легче следить за этим сообщением и полностью его понимать.





Часть 1 -

Часть 2 - Приложение-викторина - реализация таймера обратного отсчета



В этом посте мы собираемся добавить следующие функции в наше приложение для викторин.

1. Предоставление пользователю возможности просмотреть свои ответы после завершения викторины.

2. Отметить ответы пользователя как правильные или неправильные



3. Пометка непрошенных вопросов как оставшихся без ответа.

Ниже приведен снимок созданной страницы результатов викторины.

Страница результатов викторины

Что еще нам нужно, чтобы функция проверки работала?

Пользователь может закончить викторину в любое время, по окончании викторины у него будет возможность просмотреть свои ответы. Если пользователь не ответит на вопрос и пропустит его, нажав кнопку «Далее», этот вопрос будет отображаться как неотвеченный на странице обзора экзамена.

Чтобы предоставить пользователю краткое изложение викторины, все, что нам нужно сделать, это сохранить ответы пользователя и, когда он закончит викторину, сравнить их с фактическим ответом на вопрос.

Если ответ пользователя совпадает с правильным ответом на вопрос, мы отображаем правильный символ, иначе крест (x).

Приложение онлайн-викторины

Мы добавим новый контроллер под названием ReviewController, который извлечет все данные и отправит их на страницу JSP для отображения.

Примечание. Мы получаем вопросы из XML-файла, когда пользователь нажимает следующую или предыдущую кнопку.

Предположим, пользователь запускает викторину и задает только один вопрос, а затем нажимает кнопку «Готово».

Теперь на странице обзора викторины мы должны показать все вопросы с их вариантами и ответом пользователя, был ли он правильным или нет. Поскольку в этом сценарии пользователь не проходит всю викторину, остальные 9 вопросов будут отображаться как неотвеченные.

Поэтому, когда пользователь нажимает на «Обзорную викторину», чтобы увидеть свои ответы вместе с правильным ответом на этот вопрос, мы должны получить все вопросы из файла XML и их правильный ответ.

Структура проекта в Eclipse IDE

Примечание. Мы только что добавили один новый контроллер ReviewController.

ReviewController.java

@WebServlet ('/ exc / review') открытый класс ReviewController расширяет HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO автоматически сгенерирован constructor stub} / ** * @see HttpServlet # doGet (запрос HttpServletRequest, ответ HttpServletResponse) * / protected void doGet (запрос HttpServletRequest, ответ HttpServletResponse) генерирует исключение ServletException, исключение IOException = сгенерированный автоматически метод IOException {// TOD request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exc.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exc.getDom () для (int i = 0i

Примечание. Я установил всю необходимую информацию в ArrayList QuizQuestion и установил этот ArrayList как атрибут в области запроса.

ArrayList reviewQuestionList = новый ArrayList () request.setAttribute ('reviewQuestions', reviewQuestionList)

На странице JSP нам нужно просто получить значения, хранящиеся в атрибуте reviewQuestions.
Я создал страницу JSP под названием excReview.jsp, на которой будет отображаться сводка викторины.

Отображение QuizQuestion вместе с параметрами

На странице JSP мы используем JSTL c: forEach для перебора списка QuizQuestion, установленного ReviewController.

  
$ {counter.count}. $ {question.question}

$ {counter.count}. $ {option}

Отображение правильного ответа

Обратите внимание, что в файле XML я сохранил параметры, начиная с индекса 0.

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

Правильный ответ: $ {question.correctOptionIndex + 1} 

Пометка вопроса без ответа

Пользователь не обязательно задавать все вопросы. Он может просто пропустить его, нажав на следующую кнопку. Так как же узнать, был ли дан ответ на вопрос?

Я внес одно изменение в конструктор экзамена, так что, когда мы создаем новый экзамен, для каждого вопроса мы также изначально устанавливаем ответ пользователя как -1. Итак, когда пользователь запускает викторину, у нас будет выбор пользователя для каждого вопроса, даже если пользователь просто нажимает кнопку завершения на любом вопросе между викториной.

php как напечатать массив

Но если пользователь действительно отвечает на вопрос, то -1 будет заменено выбором пользователя для этого вопроса.

публичный экзамен (String test, int totalNumberOfQuestions) выбрасывает SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) для (int i = 0i

Таким образом, если пользователь не отвечает на вопрос и переходит к следующему вопросу или просто нажимает кнопку завершения, первоначальный ответ -1 будет. На странице JSP мы можем сравнить, равен ли выбор пользователя -1 или нет. Если он равен -1, это означает, что пользователь не ответил на этот вопрос. И мы отметим этот вопрос как без ответа.

Без ответа 

Отображение ответа пользователя

Если пользователь действительно ответил на вопрос, первоначальный ответ -1 будет заменен ответом пользователя, и он будет заменен на 1,2,3 или 4, так как у нас есть 4 варианта для каждого вопроса.

Вы выбрали: $ {question.userSelected} 

Мы делаем тест c: if, чтобы убедиться, что пользователь действительно ответил на вопрос, а затем отображаем ответ пользователя.

Отметка ответа как правильного

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

   

Отметка ответа как неправильного

Простой c: если проводится тест для сравнения ответа пользователя с правильным вариантом вопроса. Если оба они не равны, это означает, что пользователь ответил на вопрос неправильно, и мы отображаем изображение с крестиком.

   

Нажмите кнопку загрузки, чтобы загрузить код.

[buttonleads form_title = ”Код загрузки” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = ”Код загрузки”]

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

Похожие сообщения: