Online kvízová aplikace: Kvízová recenze

V tomto příspěvku jsme do naší aplikace Online kvíz přidali funkci kontroly kvízu. Uživatel může vidět správné odpovědi na všechny kvízové ​​otázky.

Toto je třetí příspěvek v sérii vytváření online kvízové ​​aplikace pomocí JSP Servlet.

Pokud jste nečetli předchozí příspěvky, projděte si jej prosím, protože vám to usnadní sledování tohoto příspěvku a jeho úplné pochopení.





Část 1 -

Část 2 - Kvízová aplikace - implementace odpočítávání



V tomto příspěvku přidáme do naší kvízové ​​aplikace následující funkce

1. Poskytnutí uživateli možnost zkontrolovat jeho odpovědi po dokončení kvízu

co je rmi v javě

2. Označení odpovědí uživatele jako správné nebo nesprávné



3. Označení nevyzkoušených otázek jako nezodpovězených

Níže je snímek vytvořené stránky s výsledky kvízu.

Stránka s výsledky kvízu

Co dalšího potřebujeme, aby fungovala funkce kontroly?

Uživatel může kvíz dokončit kdykoli, po dokončení kvízu bude mít možnost zkontrolovat své odpovědi. Pokud uživatel na otázku neodpoví a přeskočí ji kliknutím na další tlačítko, zobrazí se tato otázka na stránce kontroly zkoušky jako nezodpovězená.

Abychom uživateli poskytli souhrn kvízu, musíme pouze uložit jeho odpovědi a po jeho dokončení jej porovnat se skutečnou odpovědí na otázku.

Pokud se odpověď uživatele shoduje se správnou odpovědí na otázku, zobrazíme správný symbol jiný křížek (x).

Online kvíz aplikace

Přidáme nový řadič s názvem ReviewController, který extrahuje všechna data a odešle je na stránku JSP k zobrazení.

Poznámka: Když uživatel klikne na další nebo předchozí tlačítko, načítáme otázky ze souboru XML.

Předpokládejme, že uživatel zahájí kvíz a pokusí se pouze o jednu otázku a poté klikne na tlačítko Dokončit.

co je hashmap a hashtable v java

Nyní na stránce kvízu musíme ukázat všechny otázky s jejími možnostmi a odpovědí uživatele, zda byla správná nebo ne. Protože v tomto scénáři uživatel nedokončí celý kvíz, zbytek 9 otázek se zobrazí jako nezodpovězený.

Když tedy uživatel klikne na Review Quiz, aby viděl jeho odpovědi spolu se správnou odpovědí na tuto otázku, musíme načíst všechny otázky ze souboru XML a jeho správné odpovědi.

Struktura projektu v Eclipse IDE

Poznámka: Právě jsme přidali jeden nový řadič ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') veřejná třída ReviewController rozšiřuje HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO automaticky generováno konstruktor stub} / ** * @see HttpServlet # doGet (požadavek HttpServletRequest, odpověď HttpServletResponse) * / protected void doGet (požadavek HttpServletRequest, odpověď HttpServletResponse) vyvolá výjimku ServletException, IOException {// TODO automaticky vygenerovaná metoda zkouška) request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = nový ArrayList () Dokument dom = exam.getDom () pro (int i = 0i

Poznámka: Nastavil jsem všechny požadované informace v ArrayList of QuizQuestion a nastavil ArrayList jako atribut v rozsahu požadavku.

ArrayList reviewQuestionList = nový ArrayList () request.setAttribute ('reviewQuestions', reviewQuestionList)

Na stránce JSP musíme pouze načíst hodnoty uložené v atributu reviewQuestions.
Vytvořil jsem stránku JSP nazvanou examReview.jsp, která zobrazí souhrn kvízu.

Zobrazení QuizQuestion spolu s možnostmi

Na stránce JSP používáme JSTL c: forEach k iteraci seznamu QuizQuestion, který nastavil ReviewController

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

$ {counter.count}. $ {option}

Zobrazuje se správná odpověď

Všimněte si, že v souboru XML mám uložené možnosti počínaje indexem 0.

Proto jsme přidali jednu, zatímco jsme uživateli ukazovali správnou odpověď, protože je pro uživatele intuitivní.

Správná odpověď: $ {question.correctOptionIndex + 1} 

Označení otázky nezodpovězené

Uživatel není povinen zkoušet všechny otázky. Může to jednoduše přeskočit kliknutím na další tlačítko. Jak tedy zjistíme, zda byla otázka zodpovězena nebo ne?

Udělal jsem jednu změnu v konstruktoru zkoušky, takže když vytváříme novou zkoušku, pro každou otázku jsme také původně nastavili odpověď uživatele jako -1. Když tedy uživatel zahájí kvíz, budeme mít výběr uživatelů pro každou otázku, i když uživatel klikne na tlačítko Dokončit u jakékoli otázky mezi kvízem.

Pokud ale uživatel na otázku skutečně odpoví, pak -1 bude nahrazeno výběrem uživatele pro tuto otázku.

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

Takže pokud uživatel neodpoví na otázku a přeskočí na další otázku nebo jednoduše klikne na tlačítko pro dokončení, bude tam počáteční odpověď -1. Na stránce JSP můžeme porovnat, zda je výběr uživatele -1 nebo ne. Pokud je -1, znamená to, že uživatel na tuto otázku neodpověděl. A tuto otázku označíme jako nezodpovězenou.

Nezodpovězeno 

Zobrazuje se odpověď uživatele

Pokud uživatel skutečně odpověděl na otázku, původní odpověď -1 bude nahrazena odpovědí uživatele a bude nahrazena 1,2,3 nebo 4, protože pro každou otázku máme 4 možnosti.

Vybrali jste: $ {question.userSelected} 

Provádíme test c: if, abychom se ujistili, že uživatel skutečně odpověděl na otázku, a poté zobrazit jeho odpověď.

Označení odpovědi jako správné

Pokud se výběr uživatele a správná odpověď na otázku shodují, zobrazíme obrázek se správnou značkou.

třída pythonu __init__
   

Označení odpovědi jako nesprávné

Jednoduchý test c: pokud je proveden test k porovnání odpovědi uživatele se správnou volbou otázky. Pokud nejsou obě stejné, znamená to, že uživatel odpověděl na otázku nesprávně a my zobrazíme obrázek, který ukazuje křížovou značku.

   

Kliknutím na tlačítko stažení stáhněte kód.

[buttonleads form_title = ”Stáhnout kód” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = ”Stáhnout kód”]

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme.

Související příspěvky: