Academia.eduAcademia.edu
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG QUẢN LÍ NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM Thực Hiện: Nhóm KI-BACKTRACK Thành viên: K’Long MSSV: 17520707 Nguyễn Trọng Tài MSSV: 17521002 Lớp: IT003.I21. PMCL TP HỒ CHÍ MINH 2018 1. ĐỐI TƯỢNG NGƯỜI DÙNG – YÊU CẦU VÀ CHỨC NĂNG CỦA CHƯƠNG TRÌNH 1.1. ĐỐI TƯỢNG NGƯỜI DÙNG 1.1.1. Chương trình hướng đến đối tượng người dùng là những giáo viên và học sinh lớp 12 – Trung học Phổ Thông có nhu cầu tham khảo và ôn thi bộ môn Anh Văn, hỗ trợ cho việc ôn thi tốt nghiệp trung học phổ thông. 1.2. YÊU CẦU 1.2.1. Hệ Thống - Chương trình chỉ mới được thử nghiệm và hoạt động ổn định trên nền tảng hệ điều hành Windows vì vậy người dùng cần phải cài đặt chương trình trên nên tảng Windows (tất cả mọi phiên bản). Chương trình không có yêu cầu đặc biết về cấu hình phần cứng. 1.2.2. Người Dùng - Có khả năng sừ dụng máy tính (Hệ điều hành Windows cơ bản). 1.3. CHỨC NĂNG CỦA CHƯƠNG TRÌNH - Tùy thuộc vào đối tượng người dùng, chương trình sẽ cung cấp những chức năng khác nhau: (Thông qua tài khoản Đăng Nhập) - Với Giáo Viên chương trình cung cấp chức năng: o Tạo đề thi theo yêu cầu o Xem toàn bộ câu hỏi trong ngân hàng câu hỏi o Thêm câu hỏi o Xem đáp án của các câu hỏi o Cho thi và tính điểm cho bài thi - Với Học Sinh chương trình cung cấp các chức năng: o Tạo đề thi và Thi Thử o Xem điểm và Thời gian làm bài. 2 2. THIẾT KẾ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢI 2.1. CẤU TRÚC DỮ LIỆU Mỗi câu hỏi trong đề thi được tổ chức dưới dạng 1 node và có cấu trúc như sau: Các câu hỏi được liên kết với nhau bởi danh sách liên kết đơn và có cấu trúc như sau: Trong đó class Questions là một danh sách liên kết bao gồm một số hàm cơ bản - Tạo node (CreatNode) - Thêm đầu (AddFirst) 3 - Thêm cuối (AddLast) - Đếm số node (getLength) 2.2 MỘT SỐ THUẬT GIẢI CHÍNH 2.2.1 Xử lí dữ liệu trên file.txt Các dữ liệu cho dùng cho chương trình được lưu hoàn toàn trên file có phần mở rộng là .txt. Để có thể sử dụng được dữ liệu cần phải đọc dữ liệu từ file .txt. Dưới đây là thuật toán làm việc với dữ liệu trên file: Thuật giải trên đây cho phép đọc dữ liệu từ file vào và cùng với đó, nó sẽ lưu tất cả thành phần của 1 câu hỏi vào 1 node trong Danh sách liên kết. 4 2.2.2 Lấy ngẫu nhiên các câu hỏi để tạo đề thi Các câu hỏi được lưu toàn bộ trong class Questions. Để tạo ra được các câu hỏi dựa vào những câu có sẵn, cần phải chọn các câu hỏi ngẫu nhiên và đảm bảo điều kiện các câu hỏi sẽ không trùng nhau. Các câu hỏi được lấy ngẫu nhiên và sau đó được lưu trong lớp Test. Chọn các câu hỏi có ID khác nhau: Các ID (số câu hỏi) sẽ được lưu vào 1 mảng có tên Questions_Index và từ mảng này, chương trình sẽ tạo ra các câu hỏi ngẫu nhiên tướng ứng với ID của từng câu. 5 Lấy câu hỏi ngầu nhiên ứng với từng ID Bây giờ trong lớp Test đã có được các câu hỏi ngẫu nhiên để tạo đề thi. 2.2.3 Tạo 1 đề thi hoàn chỉnh Một đề thi hoàn chỉnh bao gồm phần hỏi và phần trả lời Phần hỏi đã được tạo qua thuật toán Lấy Ngẫu nhiên các câu hỏi Dưới đây là phần nhập câu trả lời: 6 Đây là code để tạo 1 đề thi hoàn chỉnh: Code kiểm 7