แอปพลิเคชันแบบทดสอบออนไลน์: รีวิวแบบทดสอบ



ในโพสต์นี้เราได้เพิ่มฟังก์ชันการตรวจสอบแบบทดสอบลงในแอปพลิเคชันแบบทดสอบออนไลน์ของเรา ผู้ใช้สามารถดูคำตอบที่ถูกต้องสำหรับคำถามแบบทดสอบทั้งหมด

นี่เป็นโพสต์ที่สามในชุดการสร้างแอปพลิเคชันแบบทดสอบออนไลน์โดยใช้ JSP Servlet

หากคุณยังไม่ได้อ่านโพสต์ก่อนหน้านี้โปรดอ่านให้จบเพราะจะช่วยให้คุณติดตามโพสต์นี้ได้ง่ายขึ้นและเข้าใจอย่างถ่องแท้





ส่วนที่ 1 -

ส่วนที่ 2 - แอปพลิเคชันแบบทดสอบ - การใช้งานตัวจับเวลาถอยหลัง



ในโพสต์นี้เราจะเพิ่มฟังก์ชันต่อไปนี้ในแอปพลิเคชันแบบทดสอบของเรา

1. ให้ผู้ใช้มีตัวเลือกในการตรวจสอบคำตอบของเขาในการจบแบบทดสอบ

2. ทำเครื่องหมายคำตอบของผู้ใช้ว่าถูกต้องหรือไม่ถูกต้อง



3. ทำเครื่องหมายคำถามที่ยังไม่ได้ตอบว่ายังไม่มีคำตอบ

ด้านล่างนี้คือภาพรวมของหน้าผลลัพธ์แบบทดสอบที่สร้างขึ้น

หน้าผลการทดสอบ

เราต้องการอะไรอีกบ้างเพื่อให้ฟังก์ชันการตรวจสอบทำงานได้

ผู้ใช้สามารถจบแบบทดสอบได้ตลอดเวลาเมื่อจบแบบทดสอบเขาจะมีตัวเลือกในการตรวจสอบคำตอบของเขา หากผู้ใช้ไม่ตอบคำถามและข้ามไปโดยคลิกที่ปุ่มถัดไปคำถามนั้นจะแสดงเป็นยังไม่มีคำตอบในหน้าตรวจสอบการตรวจสอบ

เพื่อให้ผู้ใช้สรุปคำถามสิ่งที่เราต้องทำคือบันทึกคำตอบของผู้ใช้และเมื่อเขาทำแบบทดสอบเสร็จแล้วให้เปรียบเทียบกับคำตอบจริงของคำถาม

หากคำตอบของผู้ใช้ตรงกับคำตอบที่ถูกต้องของคำถามเราจะแสดงสัญลักษณ์ else cross (x) ที่ถูกต้อง

แอปพลิเคชันแบบทดสอบออนไลน์

เราจะเพิ่มคอนโทรลเลอร์ใหม่ที่เรียกว่า ReviewController ซึ่งจะดึงข้อมูลทั้งหมดและส่งไปยังเพจ JSP เพื่อแสดง

หมายเหตุ: เรากำลังดึงคำถามจากไฟล์ XML เมื่อผู้ใช้คลิกที่ปุ่มถัดไปหรือปุ่มก่อนหน้า

สมมติว่าผู้ใช้เริ่มตอบคำถามและลองเพียงคำถามเดียวจากนั้นคลิกที่ปุ่ม Finish

ตอนนี้ในหน้าตรวจสอบคำถามเราต้องแสดงคำถามทั้งหมดพร้อมตัวเลือกและคำตอบของผู้ใช้ว่าถูกต้องหรือไม่ เนื่องจากในสถานการณ์นี้ผู้ใช้ตอบคำถามไม่ครบทั้งหมด 9 คำถามที่เหลือจะแสดงว่ายังไม่มีคำตอบ

ดังนั้นเมื่อผู้ใช้คลิกที่ตรวจสอบแบบทดสอบเพื่อดูคำตอบของเขาพร้อมกับคำตอบที่ถูกต้องสำหรับคำถามนั้นเราจะต้องดึงคำถามทั้งหมดจากไฟล์ XML และคำตอบที่ถูกต้อง

ผสานซอร์สโค้ด c ++ เรียงลำดับ

โครงสร้างโครงการใน Eclipse IDE

หมายเหตุ: เราได้รวม ReviewController ตัวควบคุมใหม่เพียงตัวเดียว

ReviewController.java

@WebServlet ('/ exam / review') คลาสสาธารณะ ReviewController ขยาย HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO สร้างอัตโนมัติ ตัวสร้างต้นขั้ว} / ** * @see HttpServlet # doGet (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse) * / โมฆะที่ได้รับการป้องกัน doGet (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse) พ่น ServletException, IOException {// TOD Exam ที่สร้างขึ้นโดยอัตโนมัติ request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () สำหรับ (int i = 0i

หมายเหตุ: ฉันได้ตั้งค่าข้อมูลที่จำเป็นทั้งหมดใน ArrayList ของ QuizQuestion และตั้ง ArrayList นั้นเป็นแอตทริบิวต์ในขอบเขตคำขอ

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

ในหน้า JSP เราต้องดึงค่าที่เก็บไว้ในแอตทริบิวต์ reviewQuestions
ฉันได้สร้างหน้า JSP ชื่อ examReview.jsp ซึ่งจะแสดงสรุปแบบทดสอบ

แสดง QuizQuestion พร้อมกับตัวเลือก

ในหน้า JSP เราใช้ JSTL c: forEach เพื่อวนซ้ำรายการ QuizQuestion ที่ตั้งค่าโดย ReviewController

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

$ {counter.count} $ {option}

แสดงคำตอบที่ถูกต้อง

โปรดทราบว่าในไฟล์ XML ฉันได้จัดเก็บอ็อพชันโดยเริ่มจากดัชนี 0

รหัส java เพื่อเชื่อมต่อกับ mysql

นั่นคือเหตุผลที่เราเพิ่มคำตอบในขณะที่แสดงคำตอบที่ถูกต้องให้กับผู้ใช้เนื่องจากเป็นเหตุผลที่ผู้ใช้เข้าใจง่าย

คำตอบที่ถูกต้อง: $ {question.correctOptionIndex + 1} 

ทำเครื่องหมายคำถามที่ยังไม่มีคำตอบ

ผู้ใช้ไม่จำเป็นต้องถามคำถามทั้งหมด เขาสามารถข้ามได้โดยคลิกที่ปุ่มถัดไป แล้วเราจะทราบได้อย่างไรว่าคำถามได้รับคำตอบหรือไม่?

ฉันได้ทำการเปลี่ยนแปลงหนึ่งอย่างในตัวสร้างการสอบดังนั้นเมื่อเราสร้างการสอบใหม่สำหรับแต่ละคำถามเราจึงตั้งค่าการตอบกลับของผู้ใช้เป็น -1 ในตอนแรกด้วย ดังนั้นเมื่อผู้ใช้เริ่มทำแบบทดสอบเราจะมีตัวเลือกผู้ใช้สำหรับแต่ละคำถามแม้ว่าผู้ใช้จะคลิกที่ปุ่มเสร็จสิ้นสำหรับคำถามใด ๆ ระหว่างแบบทดสอบก็ตาม

แต่ถ้าผู้ใช้ตอบคำถามจริง -1 จะถูกแทนที่ด้วยการเลือกของผู้ใช้สำหรับคำถามนั้น

การสอบสาธารณะ (การทดสอบสตริง int totalNumberOfQuestions) พ่น SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) สำหรับ (int i = 0i

ดังนั้นหากผู้ใช้ไม่ตอบคำถามและข้ามไปยังคำถามถัดไปหรือเพียงแค่คลิกที่ปุ่มเสร็จสิ้นคำตอบเริ่มต้นของ -1 จะอยู่ที่นั่น ในหน้า JSP เราสามารถเปรียบเทียบได้ว่าการเลือกผู้ใช้เป็น -1 หรือไม่ ถ้าเป็น -1 แสดงว่าผู้ใช้ไม่ได้ตอบคำถามนั้น และเราจะทำเครื่องหมายคำถามนั้นว่ายังไม่มีคำตอบ

ยังไม่ได้รับคำตอบ 

แสดงการตอบสนองของผู้ใช้

หากผู้ใช้ตอบคำถามจริงคำตอบเริ่มต้นของ -1 จะถูกแทนที่ด้วยคำตอบของผู้ใช้และจะแทนที่ด้วย 1,2,3 หรือ 4 เนื่องจากเรามี 4 ตัวเลือกสำหรับแต่ละคำถาม

คุณเลือก: $ {question.userSelected} 

เรากำลังทำการทดสอบ c: if เพื่อให้แน่ใจว่าผู้ใช้ตอบคำถามจริงจากนั้นจึงแสดงคำตอบของผู้ใช้

ทำเครื่องหมายคำตอบว่าถูกต้อง

หากการเลือกของผู้ใช้และคำตอบที่ถูกต้องสำหรับคำถามนั้นตรงกันเราจะแสดงภาพที่แสดงเครื่องหมายที่ถูกต้อง

   

การทำเครื่องหมายคำตอบว่าไม่ถูกต้อง

การทดสอบ c: if แบบง่ายๆเพื่อเปรียบเทียบการตอบสนองของผู้ใช้กับตัวเลือกที่ถูกต้องของคำถาม หากทั้งสองไม่เท่ากันแสดงว่าผู้ใช้ตอบคำถามไม่ถูกต้องและเราจะแสดงภาพที่มีเครื่องหมายกากบาท

   

คลิกที่ปุ่มดาวน์โหลดเพื่อดาวน์โหลดรหัส

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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป

กระทู้ที่เกี่ยวข้อง: