Ứng dụng câu đố trực tuyến: Đánh giá câu đố



Trong bài đăng này, chúng tôi đã thêm chức năng đánh giá bài kiểm tra vào Ứng dụng bài kiểm tra trực tuyến của chúng tôi. Người dùng có thể thấy câu trả lời chính xác cho tất cả các câu hỏi đố vui.

Đây là bài thứ ba trong loạt bài tạo ứng dụng trắc nghiệm trực tuyến bằng JSP Servlet.

Nếu bạn chưa đọc các bài viết trước, vui lòng lướt qua nó, vì điều đó sẽ giúp bạn theo dõi bài đăng này dễ dàng hơn và hiểu nó hoàn toàn.





Phần 1 -

Phần 2 - Ứng dụng Quiz - Triển khai Đồng hồ đếm ngược



Trong bài đăng này, chúng tôi sẽ thêm các chức năng sau vào ứng dụng bài kiểm tra của chúng tôi

1. Cung cấp cho người dùng một tùy chọn để xem lại câu trả lời của họ khi hoàn thành bài kiểm tra

2. Đánh dấu phản hồi của người dùng là đúng hay sai



3. Đánh dấu các câu hỏi chưa được trả lời là chưa được trả lời

Dưới đây là ảnh chụp nhanh của trang kết quả bài kiểm tra đã tạo.

Trang kết quả câu đố

Chúng tôi cần làm gì khác để chức năng đánh giá hoạt động?

Người dùng có thể hoàn thành bài kiểm tra bất cứ lúc nào, khi kết thúc bài kiểm tra, anh ta sẽ có tùy chọn xem lại câu trả lời của mình. Nếu người dùng không trả lời câu hỏi và bỏ qua câu hỏi đó bằng cách nhấp vào nút tiếp theo thì câu hỏi đó sẽ được hiển thị là chưa được trả lời trên trang xem xét bài kiểm tra.

Để cung cấp cho người dùng bản tóm tắt của câu hỏi, tất cả những gì chúng tôi phải làm là lưu câu trả lời của người dùng và khi anh ta hoàn thành câu hỏi, hãy so sánh nó với câu trả lời thực tế của câu hỏi.

Nếu câu trả lời của người dùng khớp với câu trả lời chính xác của câu hỏi, thì chúng tôi sẽ hiển thị đúng biểu tượng dấu gạch chéo (x).

Ứng dụng câu đố trực tuyến

Chúng tôi sẽ thêm một bộ điều khiển mới có tên là ReviewController, bộ điều khiển này sẽ trích xuất tất cả dữ liệu và gửi đến trang JSP để hiển thị.

Lưu ý: Chúng tôi đang tìm nạp các câu hỏi từ tệp XML khi người dùng nhấp vào nút tiếp theo hoặc nút trước đó.

Giả sử một người dùng bắt đầu một bài kiểm tra và chỉ thử một câu hỏi và sau đó nhấp vào nút Kết thúc.

Bây giờ, trên trang đánh giá bài kiểm tra, chúng tôi phải hiển thị tất cả các câu hỏi cùng với các tùy chọn của nó và phản hồi của người dùng cho dù nó có đúng hay không. Vì trong trường hợp này, người dùng không hoàn thành toàn bộ câu hỏi, phần còn lại của 9 câu hỏi sẽ được hiển thị là chưa được trả lời.

Vì vậy, khi người dùng nhấp vào Bài kiểm tra đánh giá để xem câu trả lời của mình cùng với câu trả lời chính xác cho câu hỏi đó, chúng tôi phải tìm nạp tất cả các câu hỏi từ tệp XML và câu trả lời chính xác của nó.

chương trình c ++ để sắp xếp một mảng theo thứ tự tăng dần

Cấu trúc dự án trong IDE Eclipse

Lưu ý: Chúng tôi vừa bao gồm một bộ điều khiển mới ReviewController.

ReviewController.java

@WebServlet ('/ exam / review') public class ReviewController mở rộng HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO Được tạo tự động hàm khởi tạo gốc} / ** * @see HttpServlet # doGet (yêu cầu HttpServletRequest, phản hồi HttpServletResponse) * / protected void doGet (yêu cầu HttpServletRequest, phản hồi HttpServletResponse) ném phản hồi ServletException tạo, IOException thi request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () for (int i = 0i

Lưu ý: Tôi đã đặt tất cả thông tin bắt buộc trong ArrayList of QuizQuestion và đặt ArrayList đó làm thuộc tính trong phạm vi yêu cầu.

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

Trong Trang JSP, chúng ta chỉ cần truy xuất các giá trị được lưu trữ trong thuộc tính reviewQuestions.
Tôi đã tạo một trang JSP có tên là examReview.jsp, trang này sẽ hiển thị tóm tắt câu đố.

Hiển thị QuizQuestion cùng với các tùy chọn

Trong trang JSP, chúng tôi đang sử dụng JSTL c: forEach để lặp lại danh sách QuizQuestion được thiết lập bởi ReviewController

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

$ {counter.count}. $ {option}

Hiển thị câu trả lời đúng

Lưu ý rằng trong tệp XML, tôi có các tùy chọn được lưu trữ bắt đầu từ chỉ mục 0.

ví dụ về lớp và đối tượng python

Đó là lý do tại sao chúng tôi thêm một câu trả lời trong khi hiển thị câu trả lời chính xác cho người dùng, vì điều đó trực quan cho người dùng.

Câu trả lời đúng: $ {question.correctOptionIndex + 1} 

Đánh dấu một câu hỏi chưa được trả lời

Người dùng không bắt buộc phải trả lời tất cả các câu hỏi. Anh ta có thể bỏ qua nó bằng cách nhấp vào nút tiếp theo. Vì vậy, làm thế nào để chúng ta tìm ra liệu một câu hỏi đã được trả lời hay chưa?

Tôi đã thực hiện một thay đổi trong phương thức khởi tạo Bài kiểm tra để khi chúng tôi tạo Bài kiểm tra mới, đối với mỗi câu hỏi, ban đầu chúng tôi cũng đặt phản hồi của người dùng là -1. Vì vậy, khi người dùng bắt đầu câu hỏi, chúng tôi sẽ có sự lựa chọn của người dùng cho mỗi câu hỏi ngay cả khi người dùng chỉ nhấp vào nút kết thúc của bất kỳ câu hỏi nào giữa các câu hỏi.

Nhưng nếu người dùng thực sự trả lời một câu hỏi thì -1 sẽ được thay thế bằng lựa chọn của người dùng cho câu hỏi đó.

Bài kiểm tra công khai (Kiểm tra chuỗi, int totalNumberOfQuestions) ném SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (test) cho (int i = 0i

Vì vậy, nếu người dùng không trả lời câu hỏi và chuyển sang câu hỏi tiếp theo hoặc chỉ nhấp vào nút kết thúc, phản hồi ban đầu là -1 sẽ ở đó. Trong trang JSP, chúng ta có thể so sánh lựa chọn của người dùng là -1 hay không. Nếu nó là -1, có nghĩa là người dùng đã không trả lời câu hỏi đó. Và chúng tôi sẽ đánh dấu câu hỏi đó là chưa được trả lời.

Chưa được trả lời 

Hiển thị phản hồi của người dùng

Nếu người dùng thực sự trả lời một câu hỏi, câu trả lời ban đầu của -1 sẽ được thay thế bằng câu trả lời của người dùng và nó sẽ được thay thế bằng 1,2,3 hoặc 4, vì chúng tôi có 4 tùy chọn cho mỗi câu hỏi.

Bạn đã chọn: $ {question.userSelected} 

Chúng tôi đang thực hiện kiểm tra c: if để đảm bảo người dùng thực sự đã trả lời một câu hỏi và sau đó hiển thị câu trả lời của người dùng.

Đánh dấu một câu trả lời là đúng

Nếu lựa chọn của người dùng và câu trả lời đúng cho câu hỏi khớp nhau, chúng tôi sẽ hiển thị hình ảnh hiển thị một dấu chính xác.

   

Đánh dấu một câu trả lời là không chính xác

Câu đơn giản c: nếu thử nghiệm được thực hiện để so sánh phản hồi của người dùng với phương án chính xác của câu hỏi. Nếu cả hai đều không bằng nhau, điều đó có nghĩa là người dùng đã trả lời câu hỏi sai và chúng tôi hiển thị hình ảnh có dấu gạch chéo.

   

Bấm vào nút tải xuống để tải mã.

[buttonleads form_title = ”Tải xuống mã” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = ”Tải xuống mã”]

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần bình luận và chúng tôi sẽ liên hệ lại với bạn.

Bài viết liên quan: