Chức năng ôn thi trắc nghiệm theo yêu cầu, hay nói một cách khác thì đây là hệ thống hỗ trợ kiểm tra đánh giá trình độ của học sinh sinh viên bằng phương pháp trắc nghiệm khách quan và có tính chất tùy biến theo yêu cầu của người sử dụng. Đây là hệ thống dành cho học sinh, phụ huynh, giáo viên và các đơn vị giáo dục, các cá nhântổ chức như một công cụ hữu ích trong việc kiểm tra đánh giá chất lượng cũng như kết quả học tập của các học viên theo ngành học của mình một cách hiệu quả, chuyên nghiệp và hiện đại với chi phí rất thấp.
I Khảo sát yêu cầu : 1.1 Giới thiệu : Chức ôn thi trắc nghiệm theo yêu cầu, hay nói cách khác hệ thống hỗ trợ kiểm tra đánh giá trình độ học sinh sinh viên phương pháp trắc nghiệm khách quan có tính chất tùy biến theo yêu cầu người sử dụng Đây hệ thống dành cho học sinh, phụ huynh, giáo viên đơn vị giáo dục, cá nhân/tổ chức công cụ hữu ích việc kiểm tra đánh giá chất lượng kết học tập học viên theo ngành học cách hiệu quả, chuyên nghiệp đại với chi phí thấp 1.2 Một số hình ảnh khảo sát hệ thống làm ôn phương pháp trắc nghiệm : 1.3 Yêu cầu chức : Hệ thống cho phép sinh viên làm ôn thi trắc nghiệm Sinh viên chọn môn học, phần ôn tập Sinh viên chọn câu trả lời phần hướng dẫn trả lời Sau sinh viên hoàn thành ôn, hệ thống đưa kết đáp án II Phân Tích Hệ Thống : 2.1 Biểu đồ use case : 2.2 Kịch phân tích 2.2.1 Kịch 1- Sinh viên chọn chức ôn thi trắc nghiệm giao diện 2- Sinh viên chọn môn học cần ôn tập phần ôn tập 3- Hệ thống hiển thị câu hỏi phần ôn mà sinh viên chọn hình 4- Sinh viên xem thông tin câu hỏi: số hiệu câu, nội dung câu hỏi, hướng dẫn trả lời 5- Sinh viên trả lời câu hỏi 6- Hệ thống kiểm tra số câu đúng, sai 7- Đáp án, kết hiển thị hình cho SV xem lại 2.2.2 Kịch ngoại lệ a Ngoại lệ 1: Hệ thống báo lỗi SV chưa hoàn thành ôn, SV thoát khỏi hệ thống 1- Sinh viên chọn chức ôn thi trắc nghiệm 2- Sinh viên chọn môn học cần ôn tập phần ôn tập 3- Các câu hỏi phần ôn mà sinh viên chọn hiển thị hình 4- Sinh viên xem thông tin câu hỏi: số hiệu câu, nội dung câu hỏi, hướng dẫn trả lời 5- Sinh viên trả lời số câu hỏi 6- Hệ thống kiểm tra ôn sv, báo lỗi sinh viên chưa hoàn thành ôn 7- SV thoát b Ngoại lệ 2: Hệ thống báo lỗi SV chưa hoàn thành ôn, SV tiếp tục làm 1- Sinh viên chọn chức ôn thi trắc nghiệm 2- Sinh viên chọn môn học cần ôn tập phần ôn tập 3- Các câu hỏi phần ôn mà sinh viên chọn hiển thị hình 4- Sinh viên xem thông tin câu hỏi: số hiệu câu, nội dung câu hỏi, hướng dẫn trả lời 5- Sinh viên trả lời số câu hỏi 6- Hệ thống kiểm tra ôn sv, báo lỗi sinh viên chưa hoàn thành ôn 7- SV tiếp tục làm tiếp câu thiếu 8- Hệ thống kiểm tra số câu đúng, sai 9- Đáp án, kết hiển thị hình cho SV xem lại 2.3 Biểu đồ lớp đặc tả chi tiết lớp 2.3.1 Biểu đồ lớp 2.3.2 Đặc tả chi tiết lớp Lớp CauHoiVaTraLoi chi tiết (thành phần) lớp BaiOnThi 2.3.2.1 Lớp CauHoiVaTraLoi : Các thuộc tính lớp : - ma_mon - ma_phan - ten_mon - ten_phan - so_hieu_cau_hoi - noi_dung_cau_hoi - huong_dan_tra_loi - tra_loi_cau - tong_cau_sai - tong_cau_dung Trong so_hieu_cau_hoi thuộc tính khóa So_hieu_cau_hoi để phân biệt CauHoiVaTraLoi với CauHoiVaTraLoi khác Các thuộc tính lại thuộc tính mô tả thuộc tính suy diễn từ thuộc tính so_hieu_cau_hoi Lớp CauHoiVa TraLoi có phương thức sau : - xem câu hỏi : SV xem nội dung câu hỏi hướng dẫn trả lời câu hỏi - xem đáp án câu hỏi : SV xem đáp án cho câu hỏi 2.3.2.2 Lớp BaiOnThi: a Các thuộc tính lớp : - ma_bai_on - ma_phan - ten_phan - ma_mon - ten_mon - so_hieu_cau_hoi - noi_dung_cau_hoi - tra_loi_cau - tong_cau_sai - tong_cau_dung Thuộc tính mã ôn (ma_bai_on) thuộc tính khóa Thuộc tính tên phần suy diễn từ thuộc tính mã phần Thuộc tính tên môn suy diễn từ thuộc tính mã môn Thuộc tính nội dung câu hỏi suy diễn từ số hiệu câu hỏi Còn lại thuộc tính mô tả b Các phương thức : - Chọn môn : sinh viên chọn môn học để ôn tập - Chọn phần : sinh viên tiến hành chọn phần ôn tập - Trả lời câu hỏi : sinh viên trả lời câu hỏi phần ôn 2.4 Biểu đồ 2.5 Biểu đồ cộng tác 2.6 Biểu đồ trạng thái : Biểu đồ trạng thái cho lớp Bài ôn (BaiOn): 2.6.1 Trạng thái làm bài: 2.6.2 Trạng thái đánh giá: 2.7 Biểu đồ hành động III Thiết kế Hệ Thống : 3.1 Thiết Kế Giao Diện : 3.1.1 Thiết kế giao diện kịch thiết kế : 3.1.1.1 Kịch : Sinh viên chọn chức ôn thi giao diện Hệ thống hiển thị môn học & phần ôn có chương trình ôn: - Môn Học (JLabel): Phân tích thiết kế HTTT, Công nghệ phần mềm,… : JCombo Box - Phần ôn (JLabel): Phần 1: Chương 1+2+3, Phần 2: Chương 4+5,…: JCombo Box - OK: JButton Giao diện: 10 17 3.2.2 Sơ đồ lớp : 18 3.2.3 Đặc tả chi tiết lớp : Lớp Môn Học lớp Phần Ôn quan hệ 1-N: môn học có nhiều phần ôn Lớp Phần Ôn Bài Ôn quan hệ 1-N: phần ôn có nhiều ôn Lớp Bài Ôn Lớp Câu Hỏi Trả Lời quan hệ 1-N: ôn có nhiều câu hỏi trả lời a Lớp Bài Ôn có thuộc tính: • Ma_bai_on • So_hieu_cau_hoi • Noi_dung_cau_hoi • Tra_loi_cau_hoi • Tong_cau_sai • Tong_cau_dung Trong ma_bai_on khóa thuộc tính lại thuộc tính suy diễn từ ma_bai_on Ma_phan khóa ngoại : Do PhanOn BaiOn có quan hệ 1-N Vì vậy, khóa bảng chuyển sang làm khóa ngoại bảng N b Lớp Phần Ôn có thuộc tính • Ma_phan • Ten_phan 19 Trong ma_phan khóa chính, ten_phan thuộc tính suy diễn từ ma_phan Ma_mon khóa ngoại : Do MonHoc PhanOn có quan hệ 1-N Vì khóa bảng MonHoc (là ma_mon) phải chuyển sang làm khóa ngoại bảng PhanOn c Lớp Môn Học có thuộc tính sau • Ma_mon • Ten_mon Trong ma_mon khóa chính, ten_mon thuộc tính suy diễn từ ma_mon d Lớp Câu Hỏi Và Trả Lời có thuộc tính sau: • So_hieu_cau_hoi • Noi_dung_cau_hoi • Huong_dan _tra_loi • Dap_an_dung Trong so_hieu_cau_hoi khóa thuộc tính lại thuộc tính suy diễn từ so_hieu_cau_hoi Ma_bai_on khóa ngoại : BaiOn CauHoiVaTraLoi có quan hệ – N nên khóa bảng BaiOn (là ma_bai_on) khóa ngoại bảng CauHoiVaTraLoi IV Cài đặt : 4.1 Cài đặt giao diện : Các giao diện chương trình : 20 21 22 4.2 Cài đặt lớp thực thể : 4.2.1 Lớp BaiOn : /* * To change this template, choose Tools | Templates * and open the template in the editor */ package viduInput; /** * * @author Sapphire */ public class BaiOn { private int ma_bai_on; private int so_hieu_cau_hoi; private String noi_dung_cau_hoi; private String tra_loi_cau_hoi; private int tong_cau_sai; private int tong_cau_dung; private int ma_phan; public BaiOn(){} public BaiOn (int ma_bai_on, int so_hieu_cau_hoi, String noi_dung_cau_hoi, String tra_loi_cau_hoi, int tong_cau_sai, int tong_cau_dung, int ma_phan){ 23 this.ma_bai_on = ma_bai_on; this.so_hieu_cau_hoi = so_hieu_cau_hoi; this.noi_dung_cau_hoi = noi_dung_cau_hoi; this.tra_loi_cau_hoi = tra_loi_cau_hoi; this.tong_cau_sai = tong_cau_sai; this.tong_cau_dung = tong_cau_dung; this.ma_phan = ma_phan; } public boolean kiemTraBaiOn(int ma_bai_on){ return true; } public String traLoiCauHoi(String noi_dung_cau_hoi, String huong_dan_tra_loi){ String traloi = null; return traloi; } public int getMa_bai_on() { return ma_bai_on; } public void setMa_bai_on(int ma_bai_on) { this.ma_bai_on = ma_bai_on; } public int getMa_phan() { return ma_phan; } public void setMa_phan(int ma_phan) { this.ma_phan = ma_phan; } public String getNoi_dung_cau_hoi() { 24 return noi_dung_cau_hoi; } public void setNoi_dung_cau_hoi(String noi_dung_cau_hoi) { this.noi_dung_cau_hoi = noi_dung_cau_hoi; } public int getSo_hieu_cau_hoi() { return so_hieu_cau_hoi; } public void setSo_hieu_cau_hoi(int so_hieu_cau_hoi) { this.so_hieu_cau_hoi = so_hieu_cau_hoi; } public int getTong_cau_dung() { return tong_cau_dung; } public void setTong_cau_dung(int tong_cau_dung) { this.tong_cau_dung = tong_cau_dung; } public int getTong_cau_sai() { return tong_cau_sai; } public void setTong_cau_sai(int tong_cau_sai) { this.tong_cau_sai = tong_cau_sai; } public String getTra_loi_cau_hoi() { return tra_loi_cau_hoi; } public void setTra_loi_cau_hoi(String tra_loi_cau_hoi) { this.tra_loi_cau_hoi = tra_loi_cau_hoi; 25 } } 4.2.2 Lớp MonHoc : /* * To change this template, choose Tools | Templates * and open the template in the editor */ package viduInput; /** * * @author Sapphire */ public class MonHoc { private int ma_mon; private String ten_mon; //ham khoi tao khong tham so public MonHoc() {} //ham khoi tao co day du tham so public MonHoc (int ma_mon, String ten_mon){ this.ma_mon = ma_mon; this.ten_mon = ten_mon; } public void chonMon(String ten_mon){ } public int getMa_mon() { return ma_mon; } 26 public void setMa_mon(int ma_mon) { this.ma_mon = ma_mon; } public String getTen_mon() { return ten_mon; } public void setTen_mon(String ten_mon) { this.ten_mon = ten_mon; } } 4.2.3 Lớp CauHoiVaTraLoi : /* * To change this template, choose Tools | Templates * and open the template in the editor */ package viduInput; /** * * @author Sapphire */ public class CauHoiVaTraLoi { private int so_hieu_cau_hoi; private String noi_dung_cau_hoi; private String huong_dan_tra_loi; private String dap_an_dung; private int diem; private int ma_bai_on; public CauHoiVaTraLoi(){} 27 public CauHoiVaTraLoi(int so_hieu_cau_hoi, String noi_dung_cau_hoi, String huong_dan_tra_loi, String dap_an_dung, int diem, int ma_bai_on){ this.so_hieu_cau_hoi = so_hieu_cau_hoi; this.noi_dung_cau_hoi = noi_dung_cau_hoi; this.huong_dan_tra_loi = huong_dan_tra_loi; this.dap_an_dung = dap_an_dung; this.diem = diem; this.ma_bai_on = ma_bai_on; } public String xemNoiDungCauHoi(int so_hieu_cau_hoi){ String ndch = null; return ndch; } public String xemHuongDanTraLoi (int so_hieu_cau_hoi){ String hdtl = null; return hdtl; } public String xemDapAn(int so_hieu_cau_hoi){ String da = null; return da; } public String getDap_an_dung() { return dap_an_dung; } public void setDap_an_dung(String dap_an_dung) { this.dap_an_dung = dap_an_dung; } public int getDiem() { return diem; } 28 public void setDiem(int diem) { this.diem = diem; } public String getHuong_dan_tra_loi() { return huong_dan_tra_loi; } public void setHuong_dan_tra_loi(String huong_dan_tra_loi) { this.huong_dan_tra_loi = huong_dan_tra_loi; } public int getMa_bai_on() { return ma_bai_on; } public void setMa_bai_on(int ma_bai_on) { this.ma_bai_on = ma_bai_on; } public String getNoi_dung_cau_hoi() { return noi_dung_cau_hoi; } public void setNoi_dung_cau_hoi(String noi_dung_cau_hoi) { this.noi_dung_cau_hoi = noi_dung_cau_hoi; } public int getSo_hieu_cau_hoi() { return so_hieu_cau_hoi; } public void setSo_hieu_cau_hoi(int so_hieu_cau_hoi) { this.so_hieu_cau_hoi = so_hieu_cau_hoi; } 29 } 4.3.4 Lớp PhanOn : /* * To change this template, choose Tools | Templates * and open the template in the editor */ package viduInput; /** * * @author Sapphire */ public class PhanOn { private int ma_phan; private String ten_phan; private int ma_mon; //ham khoi tao khong tham so public PhanOn(){} //ham khoi tao co day du tham so public PhanOn(int ma_phan, String ten_phan, int ma_mon){ this.ma_phan = ma_phan; this.ten_phan = ten_phan; this.ma_mon = ma_mon; } public String chonPhan(String ten_phan){ String phanchon = null; return phanchon; } public int getMa_mon() { 30 return ma_mon; } public void setMa_mon(int ma_mon) { this.ma_mon = ma_mon; } public int getMa_phan() { return ma_phan; } public void setMa_phan(int ma_phan) { this.ma_phan = ma_phan; } public String getTen_phan() { return ten_phan; } public void setTen_phan(String ten_phan) { this.ten_phan = ten_phan; } } 31 ... Thi t kế Hệ Thống : 3.1 Thi t Kế Giao Diện : 3.1.1 Thi t kế giao diện kịch thi t kế : 3.1.1.1 Kịch : Sinh viên chọn chức ôn thi giao diện Hệ thống hiển thị môn học & phần ôn có chương trình ôn: ... án II Phân Tích Hệ Thống : 2.1 Biểu đồ use case : 2.2 Kịch phân tích 2.2.1 Kịch 1- Sinh viên chọn chức ôn thi trắc nghiệm giao diện 2- Sinh viên chọn môn học cần ôn tập phần ôn tập 3- Hệ thống. .. Sinh viên chọn môn học cần ôn: Công nghệ phần mềm… ,chọn phần ôn: Phần nhấn nút OK Hệ thống hiển thị Giao Diện ôn_ các câu hỏi câu trả lời phần ôn tập - BÀI ÔN TẬP MÔN PHÂN TÍCH THI T KẾ HTTT : JLabel