Online Quiz Application: Quiz Review



I dette innlegget har vi lagt til quiz-gjennomgangsfunksjonalitet i vår online quiz-applikasjon. Brukeren kan se de riktige svarene på alle quizspørsmålene.

Dette er det tredje innlegget i serien for å lage en online quiz-applikasjon ved hjelp av JSP Servlet.

Hvis du ikke har lest de forrige innleggene, kan du gå gjennom det, da det vil gjøre det lettere for deg å følge dette innlegget og forstå det fullstendig.





Del 1 -

forskjell mellom overbelastning og overstyring i c ++

Del 2 - Quiz Application - Implementering av nedtellingstimer



I dette innlegget skal vi legge til følgende funksjoner i quiz-applikasjonen vår

1. Gi brukeren muligheten til å se gjennom svarene sine når han er ferdig med quizen

2. Merk brukerens svar som riktige eller uriktige



3. Merk de uforsøkte spørsmålene som ubesvarte

Nedenfor er øyeblikksbildet av quizresultatsiden opprettet.

Quizresultatside

Hva annet trenger vi for å få gjennomgangsfunksjonaliteten til å fungere?

Brukeren kan fullføre quizen når som helst, når han er ferdig med quizen, har han muligheten til å gå gjennom svarene sine. Hvis brukeren ikke svarer på et spørsmål og hopper over det ved å klikke på neste knapp, vises det spørsmålet som ubesvart på siden for gjennomgang av eksamenen.

For å gi brukeren et sammendrag av quizen, er alt vi trenger å gjøre å lagre brukernes svar, og når han er ferdig med quizen, sammenligner du den med det faktiske svaret på spørsmålet.

Hvis brukerens svar samsvarer med det riktige svaret på spørsmålet, viser vi det riktige symbolet ellers kryss (x).

Online quiz-applikasjon

Vi vil legge til en ny kontroller kalt ReviewController, som vil trekke ut alle dataene og sende dem til en JSP-side for å vise.

Merk: Vi henter spørsmål fra XML-filen når brukeren klikker på neste eller forrige knapp.

Anta at en bruker starter en quiz og bare prøver et spørsmål og deretter klikker på Fullfør-knappen.

Nå, på quizanmeldelsessiden, må vi vise alle spørsmålene med alternativene og brukerens svar om det var riktig eller ikke. Siden brukeren i dette scenariet ikke fullfører hele quizen, vil resten av de 9 spørsmålene vises som ubesvarte.

Så når brukeren klikker på Review Quiz for å se svarene sammen med det riktige svaret for det spørsmålet, må vi hente alle spørsmålene fra XML-filen og dens korrekte svar.

Prosjektstruktur i formørkelse IDE

Merk: Vi har nettopp tatt med en ny kontroller ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') public class ReviewController utvider HttpServlet {privat statisk endelig lang serialVersionUID = 1L / ** * @ se HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO Auto-generert konstruktørstub} / ** * @see HttpServlet # doGet (HttpServletRequest-forespørsel, HttpServletResponse-svar) * / beskyttet ugyldig doGet (HttpServletRequest-forespørsel, HttpServletResponse-svar) kaster ServletException, IOException {// TODO-eksamen automatisk = metode) request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () for (int i = 0i

Merk: Jeg har satt all nødvendig informasjon i en ArrayList of QuizQuestion og satt den ArrayList som et attributt i forespørselens omfang.

hva er charat i java
ArrayList reviewQuestionList = ny ArrayList () request.setAttribute ('reviewQuestions', reviewQuestionList)

På JSP-siden må vi bare hente verdiene som er lagret i attributtet reviewQuestions.
Jeg har opprettet en JSP-side kalt examReview.jsp, som viser quiz-sammendraget.

Viser QuizQuestion sammen med alternativer

På JSP-siden bruker vi JSTL c: forEach for å iterere over listen over QuizQuestion som ble satt av ReviewController

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

$ {counter.count}. $ {alternativ}

Viser riktig svar

Merk at i XML-fil har jeg lagrede alternativer som starter fra indeks 0.

Derfor la vi til en mens vi viste riktig svar til brukeren, da det er intuitivt for brukeren.

java konverter dobbelt til int
Riktig svar: $ {question.correctOptionIndex + 1} 

Merk et spørsmål ubesvart

Det er ikke obligatorisk for brukeren å prøve alle spørsmålene. Han kan bare hoppe over det ved å klikke på neste knapp. Så hvordan finner vi ut om et spørsmål ble besvart eller ikke?

Jeg har gjort en endring i eksamenskonstruktøren, slik at når vi oppretter en ny eksamen, setter vi for hvert spørsmål også brukerens svar som -1 i utgangspunktet. Så når brukeren starter quizen, vil vi ha brukervalget for hvert spørsmål, selv om brukeren bare klikker på avslutningsknappen på et spørsmål mellom quizen.

Men hvis brukeren faktisk svarer på et spørsmål, blir -1 erstattet av brukerens valg for det spørsmålet.

offentlig eksamen (streng test, int totalNumberOfQuestions) kaster SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) for (int i = 0i

Så hvis brukeren ikke svarer på et spørsmål og hopper til neste spørsmål eller bare klikker på mål-knappen, vil det første svaret på -1 være der. På JSP-siden kan vi sammenligne om brukervalget er -1 eller ikke. Hvis det er -1, betyr det at brukeren ikke svarte på det spørsmålet. Og vi vil merke det spørsmålet som ubesvart.

Ubesvart 

Viser brukerrespons

Hvis brukeren faktisk svarte på et spørsmål, vil det første svaret på -1 bli erstattet med brukerens svar, og det vil bli erstattet med 1,2,3 eller 4, ettersom vi har 4 alternativer for hvert spørsmål.

Du valgte: $ {question.userSelected} 

Vi lager et c: hvis test for å sikre at brukeren faktisk svarte på et spørsmål og deretter viser brukerens svar.

Merk et svar som riktig

Hvis brukerens valg og riktig svar for spørsmålet samsvarer, viser vi et bilde som viser riktig merke.

   

Merk et svar som feil

En enkel c: hvis test blir laget for å sammenligne brukerens svar med riktig valg av spørsmålet. Hvis begge ikke er like, betyr det at brukeren svarte feil på spørsmålet, og vi viser et bilde som viser et kryssmerke.

   

Klikk på nedlastingsknappen for å laste ned koden.

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

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet, så kommer vi tilbake til deg.

Relaterte innlegg: