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ân/tổ 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.
30 trang |
Chia sẻ: tuandn | Lượt xem: 2603 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Phân tích thiết kế hệ thống thông tin - Hệ thống thi trắc nghiệm và chức năng ôn thi trắc nghiệm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
học viện công nghệ bưu chính viễn thông
PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN
Hệ Thống Thi Trắc Nghiệm
Chức năng Ôn Thi Trắc Nghiệm
Nhóm 4 – D08CNTT4
Võ Thanh Nga
Phạm Bích Ngọc
Khuất Thị Nụ
Trần Việt Phương
11/2011
Thành viên nhóm 4 - D08CN4 :
1. Võ Thanh Nga
2. Phạm Bích Ngọc
3. Khuất Thị Nụ
4. Trần Việt Phương
Mục lục
I. Khảo sát yêu cầu :
1.1. Giới thiệu :
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ân/tổ 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.
1.2. Một số hình ảnh khảo sát các hệ thống làm bài ôn bằng phương pháp trắc nghiệm :
1.3. Yêu cầu chức năng :
Hệ thống cho phép sinh viên làm bài ôn thi trắc nghiệm
Sinh viên được chọn môn học, phần ôn tập
Sinh viên chỉ được chọn 1 trong 4 câu trả lời trong phần hướng dẫn trả lời
Sau khi sinh viên hoàn thành bài ôn, hệ thống đưa ra kết quả và đáp án.
II. Phân Tích Hệ Thống :
2.1. Biểu đồ use case :
2.2. Kịch bản phân tích
2.2.1. Kịch bản chính
1- Sinh viên chọn chức năng ôn thi trắc nghiệm ở giao diện chính.
2- Sinh viên chọn môn học cần ôn tập và phần ôn tập.
3- Hệ thống hiển thị các câu hỏi trong phần ôn mà sinh viên đã chọn ra mà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 quả được hiển thị ra màn hình cho SV xem lại.
2.2.2. Kịch bản ngoại lệ
a. Ngoại lệ 1:
Hệ thống báo lỗi khi SV chưa hoàn thành bài ôn, SV thoát khỏi hệ thống.
1- Sinh viên chọn chức năng ôn thi trắc nghiệm
2- Sinh viên chọn môn học cần ôn tập và phần ôn tập.
3- Các câu hỏi trong phần ôn mà sinh viên đã chọn được hiển thị ra mà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 một số câu hỏi.
6- Hệ thống kiểm tra bài ôn của sv, báo lỗi sinh viên chưa hoàn thành bài ôn.
7- SV thoát.
b. Ngoại lệ 2:
Hệ thống báo lỗi khi SV chưa hoàn thành bài ôn, SV tiếp tục làm bài.
1- Sinh viên chọn chức năng ôn thi trắc nghiệm
2- Sinh viên chọn môn học cần ôn tập và phần ôn tập.
3- Các câu hỏi trong phần ôn mà sinh viên đã chọn được hiển thị ra mà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 một số câu hỏi.
6- Hệ thống kiểm tra bài ôn của sv, báo lỗi sinh viên chưa hoàn thành bài ôn.
7- SV tiếp tục làm tiếp những câu còn thiếu.
8- Hệ thống kiểm tra số câu đúng, sai.
9- Đáp án, kết quả được hiển thị ra màn hình cho SV xem lại.
2.3. Biểu đồ lớp và đặ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 là chi tiết (thành phần) của lớp BaiOnThi.
2.3.2.1. Lớp CauHoiVaTraLoi :
Các thuộc tính của lớp này :
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 là thuộc tính khóa. So_hieu_cau_hoi để phân biệt CauHoiVaTraLoi này với CauHoiVaTraLoi khác.
Các thuộc tính còn lại là thuộc tính mô tả và cũng là thuộc tính suy diễn từ thuộc tính so_hieu_cau_hoi.
Lớp CauHoiVa TraLoi có các phương thức sau :
xem câu hỏi : SV xem nội dung câu hỏi và 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 của lớp này :
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ã bài ôn (ma_bai_on) là thuộc tính khóa.
Thuộc tính tên phần được suy diễn từ thuộc tính mã phần.
Thuộc tính tên môn được suy diễn từ thuộc tính mã môn.
Thuộc tính nội dung câu hỏi được suy diễn từ số hiệu câu hỏi.
Còn lại là các 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 đồ tuần tự
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 và kịch bản thiết kế :3.1.1.1. Kịch bản chính :
1. Sinh viên chọn chức năng ôn thi trên giao diện chính.
2. Hệ thống hiển thị các môn học & phần ôn có trong 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:
3. 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 1 và nhấn nút OK.
4. Hệ thống hiển thị Giao Diện bài ôn_các câu hỏi và các câu trả lời của phần ôn tập.
- BÀI ÔN TẬP MÔN PHÂN TÍCH THIẾT KẾ HTTT : JLabel
- Câu Hỏi 1: … :JLabel
- Câu Trả Lời: A. B. C. D. : JCombo Box
- Xem Đáp Án: JButton
- Thoát: JButton
Giao diện:
5. Sinh viên chọn các câu trả lời cho từng câu hỏi.
6. Kết thúc làm bài, sinh viên nhấn nút Xem đáp án .
7. Hệ thống kiểm tra sv đã làm hết các câu hỏi trong phần ôn tập chưa, hiển thị đáp án đúng của từng câu và kết quả bài ôn của sinh viên.
- Đáp án đúng: JLabel
- Icon: JLabel
- Kết quả bài ôn của bạn là: 20/30: JTextField
- 1A : JTextField
…
- 30A: JTextField
Giao diện:
3.1.1.2. Kịch bản ngoại lệ :a. Kịch bản ngoại lệ 1 : Sv nhấn nút Thoát khi hệ thống
báo lỗi chưa làm xong bài.
Sinh viên chọn chức năng ôn thi trên giao diện chính.
Hệ thống hiển thị các môn học & phần ôn có trong chương trình ôn
Sinh viên chọn môn học cần ôn. VD: Công nghệ phần mềm… ,chọn phần ôn. VD: Phần 1 và nhấn nút OK
Hệ thống hiển thị Giao Diện bài ôn_các câu hỏi và các câu trả lời của phần ôn tập.
5. Sinh viên chọn các câu trả lời cho từng câu hỏi.
6. Chưa kết thúc làm bài, sinh viên nhấn nút xem đáp án .
7. Hệ thống kiểm tra thấy sv chưa làm hết các câu hỏi trong phần ôn tập, hiển thị thông báo lỗi.
[JFrame]
jPannel1[JPanel]
jPannel2[JPanel]
icon: jLabel1[JLabel]
Bạn chưa hoàn thành các câu hỏi!: jLabel2[JLabel]
Nhấn enter để tiếp tục: jButton1[JButton]
Thoát: jButton2[JButton]
8. Sinh viên nhấn nút Thoát.
b. Kịch bản ngoại lệ 2: Sv nhấn nút Enter khi hệ thống báo lỗi chưa làm xong bài.
Sinh viên chọn chức năng ôn thi trên màn hình giao diện chính.
Hệ thống hiển thị các môn học & phần ôn có trong chương trình ôn
Sinh viên chọn môn học cần ôn. VD: Công nghệ phần mềm… ,chọn phần ôn. VD: Phần 1 và nhấn nút OK
Hệ thống hiển thị Giao Diện bài ôn_các câu hỏi và các câu trả lời của phần ôn tập.
6. Chưa kết thúc làm bài, sinh viên nhấn nút xem đáp án .
7. Hệ thống kiểm tra thấy sv chưa làm hết các câu hỏi trong phần ôn tập, hiển thị thông báo lỗi.
[JFrame]
jPannel1[JPanel]
jPannel2[JPanel]
icon: jLabel1[JLabel]
Bạn chưa hoàn thành các câu hỏi!: jLabel2[JLabel]
Nhấn enter để tiếp tục: jButton1[JButton]
Thoát: jButton2[JButton]
8. Sinh viên nhấn nút Enter.
Hệ thống hiển thị lại giao diện bài ôn cho sv tiếp tục làm.
Sinh viên tiếp tục chọn các câu trả lời cho các câu hỏi của bài ôn.
Kết thúc làm bài, sinh viên nhấn nút Xem đáp án.
Hệ thống kiểm tra bài ôn của siinh viên, hiển thị đáp án đúng của từng câu và kết quả bài ôn của sinh viên.
3.1.2. Biểu đồ trình tự :
3.2. Thiết kế cơ sở dữ liệu :
3.2.1. Tên bảng, tên trường, thuộc tính các trường :Các bảng :
- Bài Ôn (PhanOn)
- Phần Ôn (PhanOn)
- Môn Học (MonHoc)
- Câu Hỏi Và Trả Lời (CauHoiVaTraLoi)
3.2.2. Sơ đồ lớp :
3.2.3. Đặc tả chi tiết lớp :
Lớp Môn Học và lớp Phần Ôn là quan hệ 1-N: 1 môn học có nhiều phần ôn.
Lớp Phần Ôn và Bài Ôn là quan hệ 1-N: 1 phần ôn có nhiều bài ôn.
Lớp Bài Ôn và Lớp Câu Hỏi và Trả Lời là quan hệ 1-N: 1 bài ôn có nhiều câu hỏi và trả lời.
a. Lớp Bài Ôn có cá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 là khóa chính các thuộc tính còn lại là thuộc tính suy diễn từ ma_bai_on.
Ma_phan là khóa ngoại : Do PhanOn và BaiOn có quan hệ 1-N. Vì vậy, khóa chính của bảng 1 được chuyển sang làm khóa ngoại của bảng N.
b. Lớp Phần Ôn có các thuộc tính
Ma_phan
Ten_phan
Trong đó ma_phan là khóa chính, ten_phan là thuộc tính suy diễn từ ma_phan. Ma_mon là khóa ngoại : Do MonHoc và PhanOn có quan hệ 1-N. Vì vậy khóa chính của bảng MonHoc (là ma_mon) phải chuyển sang làm khóa ngoại của bảng PhanOn.
c. Lớp Môn Học có các thuộc tính sau
Ma_mon
Ten_mon
Trong đó ma_mon là khóa chính, ten_mon là thuộc tính suy diễn từ ma_mon
d. Lớp Câu Hỏi Và Trả Lời có cá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 là khóa chính các thuộc tính còn lại là thuộc tính suy diễn từ so_hieu_cau_hoi. Ma_bai_on là khóa ngoại : do BaiOn và CauHoiVaTraLoi có quan hệ 1 – N nên khóa chính của bảng BaiOn (là ma_bai_on) là khóa ngoại của bảng CauHoiVaTraLoi.
IV. Cài đặt :
4.1. Cài đặt giao diện :
Các giao diện chính trong chương trình :
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){
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() {
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;
}
}
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;
}
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(){}
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;
}
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;
}
}
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() {
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;
}
}