Tải bản đầy đủ (.doc) (31 trang)

PHÂN TÍCH THIẾT kế hệ THỐNG THÔNG TIN thi trắc nghiệm chức năng ôn thi trắc nghiệm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 31 trang )

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 :


2


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


3


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

4


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.
5



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.

6


2.4. Biểu đồ tuần tự

2.5. Biểu đồ cộng tác


7


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á:

8


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.

9


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:

10


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:

11


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:

12


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.
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
3. 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
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.
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.

13









8.


[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]
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.
1. Sinh viên chọn chức năng ôn thi trên màn hình 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
3. 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
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.
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.

14











[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.
9. Hệ thống hiển thị lại giao diện bài ôn cho sv tiếp tục làm.
10.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.
11.Kết thúc làm bài, sinh viên nhấn nút Xem đáp án.
12.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ự :

15


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)


16


17


3.2.2. Sơ đồ lớp :

18


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
19


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 :

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



×