Tiešsaistes viktorīnas pieteikums: viktorīnas apskats

Šajā amatā mēs esam pievienojuši viktorīnas pārskatīšanas funkcionalitāti mūsu tiešsaistes viktorīnas lietojumprogrammai. Lietotājs var redzēt pareizās atbildes uz visiem viktorīnas jautājumiem.

Šis ir trešais ziņojums tiešsaistes viktorīnas lietojumprogrammu izveidošanas sērijā, izmantojot JSP Servlet.

Ja jūs neesat lasījis iepriekšējās ziņas, lūdzu, izejiet to cauri, jo tas jums ļaus vieglāk sekot šim ierakstam un pilnībā to saprast.





1. daļa -

2. daļa - Viktorīnas lietojumprogramma - atpakaļskaitīšanas taimera ieviešana



Šajā ziņā mēs viktorīnas lietojumprogrammai pievienosim šādas funkcijas

1. Dodot lietotājam iespēju pārskatīt viņa atbildes par viktorīnas pabeigšanu

2. Atzīmēt lietotāja atbildes kā pareizas vai nepareizas



3. Neizskatīto jautājumu atzīmēšana par neatbildētiem

Zemāk ir izveidots viktorīnas rezultātu lapas momentuzņēmums.

Viktorīnas rezultātu lapa

Kas vēl mums vajadzīgs, lai pārskatīšanas funkcionalitāte darbotos?

Lietotājs var pabeigt viktorīnu jebkurā laikā, pabeidzot viktorīnu, viņam būs iespēja pārskatīt savas atbildes. Ja lietotājs neatbild uz jautājumu un izlaiž to, noklikšķinot uz nākamās pogas, eksāmena pārskata lapā šis jautājums tiks parādīts kā neatbildēts.

Lai sniegtu lietotājam viktorīnas kopsavilkumu, mums atliek tikai saglabāt lietotāju atbildes un, kad viņš pabeidz viktorīnu, salīdziniet to ar faktisko atbildi uz jautājumu.

Ja lietotāja atbilde sakrīt ar pareizo atbildi uz jautājumu, tiek parādīts pareizais simbols cits krusts (x) simbols.

Tiešsaistes viktorīnas programma

Mēs pievienosim jaunu kontrolieri ar nosaukumu ReviewController, kas iegūs visus datus un nosūtīs tos uz JSP lapu, lai tos parādītu.

Piezīme. Mēs iegūstam jautājumus no XML faila, kad lietotājs noklikšķina uz nākamās vai iepriekšējās pogas.

Pieņemsim, ka lietotājs sāk viktorīnu un mēģina tikai vienu jautājumu un pēc tam noklikšķina uz pogas Pabeigt.

Tagad viktorīnas pārskata lapā mums jāparāda visi jautājumi ar tā iespējām un lietotāja atbildi, vai tā bija pareiza vai nē. Tā kā šajā scenārijā lietotājs nepabeidz visu viktorīnu, pārējie 9 jautājumi tiks parādīti kā neatbildēti.

kā izveidot informācijas paneli enerģijas bi

Tātad, kad lietotājs noklikšķina uz Review Quiz, lai redzētu savas atbildes kopā ar pareizo atbildi uz šo jautājumu, mums ir jāatgūst visi jautājumi no XML faila un tā pareizā atbilde.

Projekta struktūra Eclipse IDE

Piezīme: Mēs tikko iekļāvām vienu jaunu kontrolieri ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') publiskās klases ReviewController paplašina HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO automātiski izveidots konstruktors stub} / ** * @ skatiet HttpServlet # doGet (HttpServletRequest pieprasījums, HttpServletResponse atbilde) * / aizsargāts void doGet (HttpServletRequest pieprasījums, HttpServletResponse atbilde) izmet ServletException, IOException {Exam TODO ExamOn request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Dokumenta dom = exam.getDom () domēnam (int i = 0i

Piezīme. Esmu iestatījis visu nepieciešamo informāciju QuizQuestion ArrayList un iestatījis šo ArrayList kā atribūtu pieprasījuma sfērā.

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

JSP lapā mums vienkārši jāatgūst atribūtā reviewQuestions saglabātās vērtības.
Esmu izveidojis JSP lapu ar nosaukumu examReview.jsp, kurā tiks parādīts viktorīnas kopsavilkums.

Parāda QuizQuestion kopā ar opcijām

JSP lapā mēs izmantojam JSTL c: forEach, lai atkārtotu QuizQuestion sarakstu, kuru iestatīja ReviewController

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

$ {counter.count}. $ {option}

Parāda pareizo atbildi

Ņemiet vērā, ka XML failā esmu saglabājis opcijas, sākot no 0 indeksa.

Tāpēc mēs to pievienojām, vienlaikus parādot lietotājam pareizo atbildi, jo tas lietotājam ir intuitīvi saprotams.

Pareiza atbilde: $ {question.correctOptionIndex + 1} 

Jautājuma atzīmēšana bez atbildes

Lietotājam nav obligāti jāizmēģina visi jautājumi. Viņš to var vienkārši izlaist, noklikšķinot uz nākamās pogas. Tātad, kā mēs uzzinām, vai uz jautājumu tika atbildēts vai nē?

Esmu veicis vienu izmaiņu eksāmena konstruktorā, lai, izveidojot jaunu eksāmenu, katram jautājumam mēs sākotnēji iestatītu arī lietotāja atbildi kā -1. Tātad, kad lietotājs sāk viktorīnu, mums būs jāizvēlas katrs jautājums pat tad, ja lietotājs vienkārši noklikšķina uz pogas Pabeigt jebkuru jautājumu starp viktorīnu.

Bet, ja lietotājs tiešām atbild uz jautājumu, tad -1 tiks aizstāts ar lietotāja izvēli šim jautājumam.

publiskais eksāmens (virknes tests, int totalNumberOfQuestions) rīko SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) domēnam (int i = 0i

Tātad, ja lietotājs neatbild uz jautājumu un pāriet uz nākamo jautājumu vai vienkārši noklikšķina uz pogas Pabeigt, sākotnējā atbilde -1 būs tur. JSP lapā mēs varam salīdzināt, vai lietotāja atlase ir -1 vai nav. Ja tas ir -1, tas nozīmē, ka lietotājs neatbildēja uz šo jautājumu. Un mēs atzīmēsim šo jautājumu kā neatbildētu.

Neatbildēts 

Tiek rādīta lietotāja atbilde

Ja lietotājs tiešām atbildēja uz jautājumu, sākotnējā atbilde -1 tiks aizstāta ar lietotāja atbildi un tā tiks aizstāta ar 1,2,3 vai 4, jo mums katram jautājumam ir četras iespējas.

Jūs izvēlējāties: $ {question.userSelected} 

Mēs veicam c: if testu, lai pārliecinātos, vai lietotājs tiešām atbildēja uz jautājumu, un pēc tam parādiet lietotāja atbildi.

Atbildes atzīmēšana kā pareiza

Ja lietotāja atlase un pareizā atbilde uz jautājumu sakrīt, mēs parādām attēlu, kurā redzama pareiza atzīme.

   

Atbildes atzīmēšana kā nepareiza

Vienkāršs c: ja tiek veikts tests, lai salīdzinātu lietotāja atbildi ar pareizo jautājuma opciju. Ja abi nav vienādi, tas nozīmē, ka lietotājs atbildēja uz jautājumu nepareizi, un mēs parādām attēlu, kurā redzama krustzīme.

   

Noklikšķiniet uz pogas Lejupielādēt, lai lejupielādētu kodu.

[buttonleads form_title = ”Lejupielādēt kodu” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = ”Lejupielādēt kodu”]

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.

Saistītās ziņas: