Primjena internetskog kviza: Pregled kviza

U ovom smo postu dodali funkcionalnost pregleda kviza u našu internetsku aplikaciju za kviz. Korisnik može vidjeti točne odgovore na sva pitanja u kvizu.

Ovo je treći post u nizu izrade internetske kviz aplikacije pomoću JSP Servlet.

Ako niste pročitali prethodne postove, prođite kroz to jer će vam to olakšati praćenje ovog posta i njegovo potpuno razumijevanje.





1. dio -

2. dio - Kviz aplikacija - Implementacija odbrojavanja vremena



U ovom ćemo postu našoj aplikaciji za kviz dodati sljedeće funkcionalnosti

1. Davanje korisniku mogućnosti da pregleda svoje odgovore po završetku kviza

java pretvoriti iz dvostrukog u int

2. Označavanje korisnikovih odgovora točnim ili netočnim



3. Označavanje pitanja bez pokušaja kao neodgovorenih

Ispod je snimka stvorene stranice rezultata kviza.

Stranica rezultata kviza

Što još trebamo da bi funkcionalnost pregleda djelovala?

Korisnik može završiti kviz bilo kada, po završetku kviza imat će mogućnost pregleda njegovih odgovora. Ako korisnik ne odgovori na pitanje i preskoči ga klikom na sljedeći gumb, tada će to pitanje biti prikazano kao neodgovoreno na stranici za pregled ispita.

Da bismo korisniku pružili sažetak kviza, sve što moramo učiniti je spremiti odgovore korisnika, a kada završi kviz, usporediti ga sa stvarnim odgovorom na pitanje.

Ako se odgovor korisnika podudara s točnim odgovorom na pitanje, tada prikazujemo točan simbol else cross (x) simbol.

Online kviz aplikacija

Dodati ćemo novi kontroler nazvan ReviewController, koji će izdvojiti sve podatke i poslati ih na JSP stranicu kako bi se prikazali.

Napomena: Dohvaćamo pitanja iz XML datoteke kada korisnik klikne sljedeći ili prethodni gumb.

Pretpostavimo da korisnik započne kviz i pokuša samo jedno pitanje, a zatim klikne na gumb Završi.

Sada na stranici s pregledom kviza moramo prikazati sva pitanja s njihovim opcijama i odgovorom korisnika je li točan ili ne. Budući da u ovom scenariju korisnik ne ispunjava cijeli kviz, ostatak od 9 pitanja prikazat će se kao neodgovoreni.

Dakle, kada korisnik klikne na Review Quiz da vidi njegove odgovore zajedno s točnim odgovorom na to pitanje, moramo dohvatiti sva pitanja iz XML datoteke i njihov točan odgovor.

Struktura projekta u Eclipse IDE-u

Napomena: Upravo smo uključili jedan novi kontroler ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') javna klasa ReviewController proširuje HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO Automatski generirano stub konstruktora} / ** * @see HttpServlet # doGet (HttpServletRequest zahtjev, HttpServletResponse odgovor) * / zaštićen void doGet (HttpServletRequest zahtjev, HttpServletResponse odgovor) baca ServletException, IOException ispit = metoda IOException = ispit TOBODEX0 request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Dokument dom = exam.getDom () za (int i = 0i

Napomena: Sve potrebne podatke postavio sam u ArrayList QuizQuestion i postavio sam taj ArrayList kao atribut u opsegu zahtjeva.

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

Na JSP stranici moramo samo dohvatiti vrijednosti pohranjene u atributu reviewQuestions.
Stvorio sam JSP stranicu koja se zove examReview.jsp i koja će prikazati sažetak kviza.

Prikazivanje pitanja kviza zajedno s opcijama

Na JSP stranici koristimo JSTL c: forEach za itiranje popisa QuizQuestion koji je postavio ReviewController

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

$ {counter.count}. $ {option}

Prikazuje se točan odgovor

Imajte na umu da u XML datoteci imam pohranjene opcije počevši od indeksa 0.

Zbog toga smo dodali jedan dok smo korisniku pokazivali točan odgovor, jer je on intuitivan za korisnika.

Točan odgovor: $ {question.correctOptionIndex + 1} 

Označavanje pitanja bez odgovora

Nije obavezno da korisnik pokušava sva pitanja. Jednostavno ga može preskočiti klikom na sljedeći gumb. Pa kako saznati je li odgovoreno na pitanje ili ne?

Napravio sam jednu promjenu u konstruktoru ispita, tako da kada kreiramo novi ispit, za svako pitanje u početku postavljamo i odgovor korisnika kao -1. Dakle, kada korisnik započne kviz, imat ćemo korisnički odabir za svako pitanje, čak i ako korisnik samo pritisne gumb za završetak bilo kojeg pitanja između kviza.

stol kasandra vs obitelj stupaca

Ali ako korisnik zapravo odgovori na pitanje, -1 će biti zamijenjen korisnikovim odabirom za to pitanje.

javni ispit (test niza, int totalNumberOfQuestions) baca SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) za (int i = 0i

Dakle, ako korisnik ne odgovori na pitanje i preskoči na sljedeće pitanje ili samo klikne gumb za završetak, početni odgovor od -1 bit će tamo. Na JSP stranici možemo usporediti je li odabir korisnika -1 ili nije. Ako je -1, znači da korisnik nije odgovorio na to pitanje. I to ćemo pitanje označiti kao neodgovoreno.

Bez odgovora 

Prikazuje se odgovor korisnika

Ako je korisnik stvarno odgovorio na pitanje, početni odgovor od -1 zamijenit će se korisnikovim odgovorom, a zamijenit će se s 1,2,3 ili 4, jer za svako pitanje imamo 4 mogućnosti.

Odabrali ste: $ {question.userSelected} 

Izrađujemo test c: if kako bismo bili sigurni da je korisnik stvarno odgovorio na pitanje, a zatim prikazali odgovor korisnika.

Označavanje odgovora točnim

Ako se odabir i točan odgovor korisnika podudaraju, prikazujemo sliku koja prikazuje ispravnu oznaku.

   

Označavanje odgovora kao netočnog

Jednostavno c: ako se radi test radi usporedbe korisnikova odgovora s ispravnom opcijom pitanja. Ako oba nisu jednaka, znači da je korisnik netočno odgovorio na pitanje i prikazujemo sliku koja prikazuje križ.

   

Kliknite gumb za preuzimanje da biste preuzeli kod.

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

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.

Vezane objave: