Aplikacja do quizu online: Przegląd quizu



W tym poście dodaliśmy funkcję sprawdzania quizów do naszej Aplikacji Quiz Online. Użytkownik może zobaczyć poprawne odpowiedzi na wszystkie pytania quizu.

To trzeci post z serii tworzenia aplikacji do quizów online przy użyciu serwletu JSP.

Jeśli nie czytałeś poprzednich postów, przeczytaj je, ponieważ ułatwi ci to śledzenie tego posta i całkowite zrozumienie.





Część 1 -

Część 2 - Quiz Application - Implementing Countdown Timer



W tym poście zamierzamy dodać następujące funkcje do naszej aplikacji quizowej

1. Dając użytkownikowi możliwość przejrzenia swoich odpowiedzi po zakończeniu quizu

2. Oznaczanie odpowiedzi użytkownika jako poprawne lub niepoprawne



3. Oznaczanie pytań bez odpowiedzi jako bez odpowiedzi

Poniżej znajduje się migawka utworzonej strony wyników quizu.

Strona wyników testu

Czego jeszcze potrzebujemy, aby funkcja recenzji działała?

pytania do wywiadu z programem ładującym klasę java

Użytkownik może ukończyć quiz w dowolnym momencie, po zakończeniu quizu będzie miał możliwość przejrzenia swoich odpowiedzi. Jeśli użytkownik nie odpowie na pytanie i pominie je, klikając następny przycisk, to pytanie zostanie wyświetlone jako bez odpowiedzi na stronie przeglądu egzaminu.

Aby zapewnić użytkownikowi podsumowanie quizu, wystarczy, że zapiszemy odpowiedzi użytkownika, a gdy skończy quiz, porównajmy je z rzeczywistą odpowiedzią na pytanie.

Jeśli odpowiedź użytkownika jest zgodna z poprawną odpowiedzią na pytanie, wyświetlamy prawidłowy symbol else cross (x) symbol.

Aplikacja Quiz online

Dodamy nowy kontroler o nazwie ReviewController, który wyodrębni wszystkie dane i wyśle ​​je na stronę JSP w celu wyświetlenia.

Uwaga: pytania pobieramy z pliku XML, gdy użytkownik kliknie następny lub poprzedni przycisk.

Załóżmy, że użytkownik rozpoczyna quiz i próbuje tylko jednego pytania, a następnie klika przycisk Zakończ.

Teraz na stronie recenzji quizu musimy pokazać wszystkie pytania z opcjami i odpowiedzią użytkownika, czy była poprawna, czy nie. Ponieważ w tym scenariuszu użytkownik nie ukończy całego quizu, pozostałe 9 pytań zostanie wyświetlonych jako bez odpowiedzi.

Więc kiedy użytkownik kliknie Review Quiz, aby zobaczyć swoje odpowiedzi wraz z poprawną odpowiedzią na to pytanie, musimy pobrać wszystkie pytania z pliku XML i ich poprawną odpowiedź.

co robi math.abs w java

Struktura projektu w Eclipse IDE

Uwaga: właśnie dołączyliśmy jeden nowy kontroler ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') klasa publiczna ReviewController extends HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO wygenerowane automatycznie konstruktor stub} / ** * @see HttpServlet # doGet (żądanie HttpServletRequest, odpowiedź HttpServletResponse) * / protected void doGet (żądanie HttpServletRequest, odpowiedź HttpServletResponse) rzuca ServletException, IOException {// TODO auto-generowana metoda egzaminacyjna Exam request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () for (int i = 0i

Uwaga: Ustawiłem wszystkie wymagane informacje w ArrayList of QuizQuestion i ustawiłem tę ArrayList jako atrybut w zakresie żądania.

ArrayList reviewQuestionList = new ArrayList () request.setAttribute ('reviewQuestions', reviewQuestionList)

Na stronie JSP musimy po prostu pobrać wartości zapisane w atrybucie reviewQuestions.
Utworzyłem stronę JSP o nazwie examReview.jsp, na której będzie wyświetlane podsumowanie quizu.

Pokazuje QuizQuestion wraz z opcjami

Na stronie JSP używamy JSTL c: forEach do iteracji po liście QuizQuestion ustawionej przez ReviewController

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

$ {counter.count}. $ {opcja}

Pokazuję poprawną odpowiedź

Zauważ, że w pliku XML zapisałem opcje zaczynające się od indeksu 0.

Dlatego dodaliśmy jeden, pokazując użytkownikowi poprawną odpowiedź, ponieważ jest on intuicyjny dla użytkownika.

Prawidłowa odpowiedź: $ {question.correctOptionIndex + 1} 

Oznaczanie pytania bez odpowiedzi

Nie jest obowiązkowe, aby użytkownik odpowiadał na wszystkie pytania. Może go po prostu pominąć, klikając następny przycisk. Jak więc dowiedzieć się, czy udzielono odpowiedzi na pytanie, czy nie?

Dokonałem jednej zmiany w konstruktorze egzaminu, tak że kiedy tworzymy nowy egzamin, dla każdego pytania ustawiamy początkowo odpowiedź użytkownika na -1. Tak więc, gdy użytkownik rozpocznie quiz, będziemy mieć wybór użytkownika dla każdego pytania, nawet jeśli użytkownik kliknie przycisk zakończenia na dowolnym pytaniu między quizem.

Ale jeśli użytkownik faktycznie odpowie na pytanie, -1 zostanie zastąpione przez wybór użytkownika dla tego pytania.

Public Exam (String test, int totalNumberOfQuestions) rzuca SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) for (int i = 0i

Więc jeśli użytkownik nie odpowie na pytanie i przejdzie do następnego pytania lub po prostu kliknie przycisk Zakończ, pojawi się początkowa odpowiedź -1. Na stronie JSP możemy porównać, czy wybór użytkownika to -1 czy nie. Jeśli jest -1, oznacza to, że użytkownik nie odpowiedział na to pytanie. Oznaczymy to pytanie jako bez odpowiedzi.

Bez odpowiedzi 

Wyświetlanie odpowiedzi użytkownika

Jeśli użytkownik faktycznie odpowiedział na pytanie, początkowa odpowiedź -1 zostanie zastąpiona odpowiedzią użytkownika i zostanie zastąpiona przez 1, 2, 3 lub 4, ponieważ mamy 4 opcje dla każdego pytania.

Wybrałeś: $ {question.userSelected} 

Wykonujemy test c: if, aby upewnić się, że użytkownik faktycznie odpowiedział na pytanie, a następnie wyświetlić odpowiedź użytkownika.

Oznaczanie odpowiedzi jako poprawnej

Jeśli wybór użytkownika i poprawna odpowiedź na pytanie są zgodne, wyświetlamy obraz z prawidłowym oznaczeniem.

   

Oznaczanie odpowiedzi jako niepoprawnej

Prosty c: jeśli przeprowadzany jest test porównujący odpowiedź użytkownika z właściwą opcją pytania. Jeśli oba nie są równe, oznacza to, że użytkownik odpowiedział na pytanie nieprawidłowo i wyświetlamy obraz przedstawiający krzyżyk.

   

Kliknij przycisk pobierania, aby pobrać kod.

[buttonleads form_title = ”Pobierz kod” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = ”Pobierz kod”]

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.

Powiązane posty:

jak przekonwertować binarne na dziesiętne w java