Prijava za spletni kviz: Pregled kviza



V tej objavi smo naši spletni aplikaciji za kviz dodali funkcionalnost za pregled kvizov. Uporabnik lahko vidi pravilne odgovore na vsa vprašanja v kvizu.

To je tretja objava v seriji ustvarjanja spletne kviz aplikacije z uporabo JSP Servlet.

Če prejšnjih objav še niste prebrali, ga preberite, saj boste tako lažje sledili tej objavi in ​​jo popolnoma razumeli.





1. del -

2. del - Kviz - Uporaba odštevalnika



V tej objavi bomo kvizu dodali naslednje funkcionalnosti

1. Dajte uporabniku možnost, da pregleda svoje odgovore po zaključku kviza

2. Označevanje uporabnikovih odgovorov kot pravilnih ali nepravilnih



3. Označevanje neodgovorjenih vprašanj kot neodgovorjenih

Spodaj je posnetek ustvarjene strani z rezultati kviza.

Stran z rezultati kviza

Kaj še potrebujemo, da funkcionalnost pregleda deluje?

Uporabnik lahko kviz zaključi kadar koli, po zaključku kviza bo imel možnost pregleda svojih odgovorov. Če uporabnik ne odgovori na vprašanje in ga preskoči s klikom na naslednji gumb, bo to vprašanje na strani za pregled izpita prikazano kot neodgovorjeno.

Da uporabniku zagotovimo povzetek kviza, moramo le shraniti uporabnikove odgovore in ga po zaključku kviza primerjati z dejanskim odgovorom na vprašanje.

Če se uporabnikov odgovor ujema s pravilnim odgovorom na vprašanje, potem prikažemo pravi simbol, sicer križ (x).

pretvori dvojno v int java

Uporaba spletnega kviza

Dodali bomo nov krmilnik z imenom ReviewController, ki bo izvlekel vse podatke in jih poslal na stran JSP za prikaz.

Opomba: Vprašanja pridobivamo iz datoteke XML, ko uporabnik klikne naslednji ali prejšnji gumb.

Recimo, da uporabnik začne kviz in poskusi samo eno vprašanje ter nato klikne gumb Končaj.

Zdaj moramo na strani za pregled kviza prikazati vsa vprašanja z njihovimi možnostmi in uporabnikovim odgovorom, ali je bil pravilen ali ne. Ker v tem primeru uporabnik ne izpolni celotnega kviza, bo preostalih 9 vprašanj prikazano kot neodgovorjeno.

Torej, ko uporabnik klikne na Kviz za pregled, da vidi svoje odgovore skupaj s pravilnim odgovorom na to vprašanje, moramo vsa vprašanja pridobiti iz datoteke XML in njenega pravilnega odgovora.

Struktura projekta v Eclipse IDE

Opomba: Pravkar smo vključili en nov krmilnik ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') javni razred ReviewController razširja HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO Samodejno ustvarjeno konstructor stub} / ** * @see HttpServlet # doGet (HttpServletRequest request, HttpServletResponse response) * / protected void doGet (HttpServletRequest request, HttpServletResponse response) vrže ServletException, IOException = izpit izpita {IOException = izpit izpita {1 request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () for (int i = 0i

Opomba: Vse zahtevane podatke sem nastavil v ArrayList QuizQuestion in ta ArrayList določil kot atribut v obsegu zahteve.

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

Na strani JSP moramo samo pridobiti vrednosti, shranjene v atributu reviewQuestions.
Ustvaril sem stran JSP, imenovano examReview.jsp, ki bo prikazala povzetek kviza.

Prikaz QuizQuestion skupaj z možnostmi

Na strani JSP uporabljamo JSTL c: forEach za ponovitev seznama QuizQuestion, ki ga je nastavil ReviewController

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

$ {counter.count}. $ {option}

Prikaz pravilnega odgovora

Upoštevajte, da imam v datoteki XML shranjene možnosti, ki se začnejo od indeksa 0.

Zato smo enega dodali, medtem ko smo uporabniku prikazovali pravilen odgovor, saj je ta za uporabnika intuitiven.

Pravilen odgovor: $ {question.correctOptionIndex + 1} 

Označevanje vprašanja brez odgovora

Uporabnik ni obvezen, da poskuša vsa vprašanja. Lahko ga preprosto preskoči s klikom na naslednji gumb. Torej, kako naj ugotovimo, ali je bilo vprašanje odgovorjeno ali ne?

V konstruktorju izpita sem naredil eno spremembo, tako da pri ustvarjanju novega izpita za vsako vprašanje na začetku nastavimo tudi uporabnikov odgovor kot -1. Torej, ko uporabnik začne kviz, bomo imeli uporabniško izbiro za vsako vprašanje, tudi če uporabnik samo klikne gumb za zaključek katerega koli vprašanja med kvizom.

Če pa uporabnik dejansko odgovori na vprašanje, bo -1 zamenjal uporabnikov izbor za to vprašanje.

javni izpit (test nizov, int totalNumberOfQuestions) vrže SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) za (int i = 0i

Torej, če uporabnik ne odgovori na vprašanje in preskoči na naslednje vprašanje ali samo klikne gumb za zaključek, bo tam začetni odgovor -1. Na strani JSP lahko primerjamo, ali je izbira uporabnika -1 ali ne. Če je -1, pomeni, da uporabnik ni odgovoril na to vprašanje. In to vprašanje bomo označili kot neodgovorjeno.

Brez odgovora 

Prikaz odziva uporabnika

Če je uporabnik dejansko odgovoril na vprašanje, bo začetni odgovor -1 nadomeščen z uporabnikovim odgovorom in nadomeščen z 1,2,3 ali 4, saj imamo za vsako vprašanje 4 možnosti.

Izbrali ste: $ {question.userSelected} 

Naredimo test c: if, da se prepričamo, ali je uporabnik dejansko odgovoril na vprašanje, in nato prikažemo uporabnikov odgovor.

Označevanje odgovora kot pravilnega

Če se uporabnikova izbira in pravilen odgovor za vprašanje ujemata, prikažemo sliko, ki prikazuje pravilno oznako.

   

Označevanje odgovora kot napačnega

Preprost c: če je narejen test za primerjavo uporabnikovega odziva s pravilno izbiro vprašanja. Če oba nista enaka, pomeni, da je uporabnik napačno odgovoril na vprašanje in prikaže se slika, ki prikazuje prečni znak.

   

Za prenos kode kliknite gumb za prenos.

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

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.

Sorodne objave: