Mục lục
Danh sách các hình . 10
Chương 1. Mở đầu . 14
1.1 Yêu cầu thực tếvà lý do chọn đềtài .14
1.2 Mục đích, đối tượng và phạm vi nghiên cứu .14
Chương 2. Nghiên cứu lý thuyết trắc nghiệm . 16
2.1 Tổng quan vềtrắc nghiệm khách quan .16
2.1.1 Luận đềvà Trắc nghiệm khách quan .16
2.1.2 Những nguyên tắc chung của trắc nghiệm.19
2.1.3 Những trường hợp dùng trắc nghiệm.20
2.1.4 Trắc nghiệm chuẩn mực và Trắc nghiệm tiêu chí.21
2.1.4.1 Trắc nghiệm chuẩn mực.21
2.1.4.2 Trắc nghiệm tiêu chí .22
2.1.4.3 So sánh trắc nghiệm chuẩn mực và Trắc nghiệm tiêu chí .22
2.2 Tính tin cậy và tính giá trịcủa bài trắc nghiệm .24
2.2.1 Tính tin cậy (Reliability).24
2.2.2 Tính giá trị(Validity) .27
2.2.3 Mối liên hệgiữa tính tin cậy và tính giá trị.28
2.3 Quy hoạch một bài trắc nghiệm .28
2.3.1 Xác định mục tiêu học tập.28
2.3.1.1 Các khái niệm.28
2.3.1.2 Mục tiêu học tập là cơsởcho việc soạn bài trắc nghiệm .30
2.3.2 Phân tích nội dung môn học.32
2.3.3 Thiết kếdàn bài trắc nghiệm.33
2.3.4 Sốcâu hỏi trong bài trắc nghiệm .34
2.3.5 Mức độkhó của các câu trắc nghiệm.35
2.4 Các hình thức câu trắc nghiệm.36
2.4.1 Câu trắc nghiệm Đúng-Sai (true-false question).36
2.4.2 Câu trắc nghiệm đa lựa chọn (multiple choice question).37
2.4.3 Câu trắc nghiệm đối chiếu cặp đôi (matching question).39
2.4.4 Câu trắc nghiệm điền khuyết (filling question) .39
2.5 Phân tích câu trắc nghiệm .40
2.5.1 Độkhó của câu trắc nghiệm (difficulty index) .41
2.5.1.1 Định nghĩa độkhó của câu trắc nghiệm.41
2.5.1.2 Công thức tính độkhó.41
2.5.1.3 Độkhó vừa phải câu trắc nghiệm .41
2.5.2 Độphân cách của câu trắc nghiệm (discrimination index).42
2.5.2.1 Định nghĩa độphân cách của câu trắc nghiệm.42
2.5.2.2 Các phương pháp tính độphân cách .43
2.5.2.3 Kết luận từ độphân cách.46
2.6 Độtin cậy của bài trắc nghiệm.46
2.6.1 Định nghĩa độtin cậy .46
2.6.2 Các phương pháp tính độtin cậy của bài trắc nghiệm .47
2.6.2.1 Trắc nghiệm hai lần (test - retest) .47
2.6.2.2 Các dạng trắc nghiệm tương đương (equivalent forms) .48
2.6.2.3 Phương pháp phân đôi bài trắc nghiệm (split halves method).48
2.6.2.4 Công thức Kuder – Richardson.50
2.6.3 Kết luận từ độtin cậy .53
Chương 3. Phân tích . 54
3.1 Phân tích hiện trạng.54
3.2 Xác định yêu cầu .54
3.2.1 Yêu cầu chức năng .54
3.2.2 Yêu cầu phi chức năng .55
3.2.2.1 Yêu cầu hệthống.55
3.2.2.2 Yêu cầu vềchất lượng.55
3.2.3 Phương án thực hiện phần mềm.56
3.3 Sơ đồsửdụng.57
3.4 Sơ đồkiến trúc tổng thể(mức phân tích).60
3.5 Sơ đồlớp .61
3.5.1 Sơ đồcác lớp đối tượng (mức phân tích).61
Danh sách các lớp đối tượng .62
Chương 4. Thiết kế. 63
4.1 Sơ đồkiến trúc tổng thể(mức thiết kế).63
4.1.1 Danh sách các lớp đối tượng của phần mềm .65
4.2 Thiết kếdữliệu .68
4.2.1 Sơ đồlogic dữliệu .68
4.3 Sơ đồtruyền động (sơ đồhoạt động chi tiết) một sốxửlý quan trọng .70
4.3.1 Nhập câu hỏi .70
4.3.2 Kết xuất câu hỏi .71
4.3.3 Trộn đềthi .72
Chương 5. Triển khai, thực nghiệm và kiểm tra . 73
5.1 Kỹthuật Automation (tự động hóa) .73
5.1.1 Sơnét vềAutomation.73
5.1.2 Automation với Microsoft Office 2003 .75
5.1.2.1 Automation với Microsoft Office Word 2003 .75
5.1.2.2 Automation với Microsoft Excel Word 2003 .77
5.2 Thực hiện.79
5.2.1 Cách tổchức trong lập trình.79
5.2.2 Các công thức được sửdụng .79
5.2.3 Qui tắc đặt tên các đối tượng .79
5.2.4 Qui tắc đặt tên cho các điều khiển trong các màn hình .80
5.2.5 Quy tắc đặt tên biến.80
5.3 Thực nghiệm và kiểm tra .81
Chương 6. Kết luận. 85
6.1 Những kết quả đạt được .85
6.2 So sánh với một sốchương trình liên quan.86
6.3 Các hướng phát triển .88
6.4 Nhận xét .88
Tài liệu tham khảo . 90
Phụlục A. Danh sách các mẫu nhập . 91
A.1 Mẫu nhập câu hỏi trắc nghiệm .91
A.2 Mẫu đềthi: .92
A.3 Mẫu bảng trảlời .92
A.4 Mẫu đáp án .94
A.5 Mẫu nhập đánh giá .94
Hồsơphân tích hệthống. 95
A.1 Sơ đồluồng dữliệu .95
A.1.1 Quản lý tác giả.96
A.1.1.1 Thêm tác giả.96
A.1.1.2 Cập nhật tác giả.96
A.1.1.3 Xóa tác giả.97
A.1.2 Quản lý khối thi.98
A.1.2.1 Thêm khối thi .98
Cập nhật khối thi .99
A.1.2.2 Xóa khối thi.99
A.1.3 Quản lý môn thi.100
A.1.3.1 Thêm môn thi .100
A.1.3.1 Cập nhật môn thi .101
A.1.3.2 Xóa môn thi.102
A.1.4 Quản lý nội dung môn học .103
A.1.4.1 Thêm nội dung môn học .103
A.1.4.2 Cập nhật nội dung môn học .103
A.1.4.3 Xóa nội dung môn học .104
A.1.5 Quản lý mục tiêu môn học .105
A.1.5.1 Thêm mục tiêu môn học.105
A.1.5.2 Cập nhật mục tiêu môn học.105
A.1.5.3 Xóa mục tiêu môn học .106
A.1.6 Nhập câu hỏi.107
A.1.7 Tìm kiếm câu hỏi.107
A.1.8 Cập nhật câu hỏi .108
A.1.9 Soạn đềthi .109
A.1.10 Đánh giá đềthi và các câu trắc nghiệm.110
A.2 Mô tảchi tiết các lớp đối tượng chính .110
A.2.1 Lớp Câu trắc nghiệm.110
A.2.2 Lớp Câu trắc nghiệm đa lựa chọn .111
A.2.3 Lớp Câu trắc nghiệm đúng sai .111
A.2.4 Lớp Phương án trảlời .112
A.2.5 Lớp Đềthi .112
A.2.6 Lớp Dàn bài trắc nghiệm.112
A.2.7 Lớp Yêu cầu chi tiết .112
Phụlục B. Hồsơthiết kế. 113
B.1 Chi tiết các bảng dữliệu .113
B.1.1 Bảng KHOI.113
B.1.2 Bảng MON_HOC .114
B.1.3 Bảng KHOI_MONHOC.114
B.1.4 Bảng NOI_DUNG_MON_HOC .114
B.1.5 Bảng NOI_DUNG_CON .115
B.1.6 Bảng MUC_TIEU_MON_HOC.115
B.1.7 Bảng MUC_TIEU_CON .115
B.1.8 Bảng TAC_GIA.117
B.1.9 Bảng CAU_HOI_DA_LUA_CHON.117
B.1.10 Bảng DANH_SACH_LUA_CHON.119
B.1.11 Bảng CAU_HOI_DUNG_SAI .119
B.2 Thiết kếchi tiết các lớp đối tượng.122
B.2.1 Thiết kếlớp đối tượng giao tiếp người dùng.122
B.2.1.1 Lớp MH_Chinh .122
B.2.1.2 Lớp MH_TacGia .123
B.2.1.3 Lớp MH_Khoi .127
B.2.1.4 Lớp MH_MonHoc.131
B.2.1.5 Lớp MH_NhapDanhSachMonHocThuocKhoi .135
B.2.1.6 Lớp MH_NhapDanhSachKhoiChuaMonHoc .137
B.2.1.7 Lớp MH_NoiDungMonHoc .139
B.2.1.8 Lớp MH_MucTieuMonHoc .144
B.2.1.9 Lớp MH_ThemCauHoi .149
B.2.1.10 Lớp MH_ChinhSuaCauHoi.154
B.2.1.11 Lớp MH_TimKiemCauHoi .159
B.2.1.12 Lớp MH_TuyChonPhatSinhCapNhat .163
B.2.1.13 Lớp MH_TaoDeThi.167
B.2.1.14 Lớp MH_TronDe.173
B.2.1.15 Lớp MH_DanhGiaDeThi .176
B.2.2 Thiết kếlớp đối tượng xửlý nghiệp vụ.177
B.2.2.1 Lớp CauTN.177
B.2.2.2 Lớp CauTN DaLuaChon .180
B.2.2.3 Lớp CauTNDungSai.183
B.2.2.4 Lớp PhuongAnTraLoi .185
B.2.2.5 Lớp YeuCau .185
B.2.2.6 Lớp TieuChuanTimKiem .186
B.2.2.7 Lớp XL_CauHoi.187
B.2.2.8 Lớp XL_Khoi .191
B.2.2.9 Lớp XL_MonHoc .192
B.2.2.10 Lớp XL_MucTieuMonHoc .195
B.2.2.11 Lớp XL_NoiDungMonHoc .199
B.2.2.12 Lớp XL_TacGia .202
Quản lý kho dữliệu đềthi trắc nghiệm tuyển sinh đại học
9
B.2.2.13 Lớp ThongTinDanhGia .203
B.2.2.14 Lớp DisOrderTest.204
B.2.2.15 Lớp ExcelRender.206
B.2.2.16 Lớp WordParser .209
B.2.2.17 Lớp TestParser.210
B.2.2.18 Lớp CauTNDaLuaChonParser .213
B.2.2.19 Lớp CauTNDungSaiParser.214
B.2.2.20 Lớp WordRender.216
B.2.2.21 Lớp TestRender .219
B.2.2.22 Lớp CauTNDaLuaChonRender.219
B.2.2.23 Lớp CauTNDungSaiRender .220
B.2.3 Thiết kếlớp đối tượng xửlý lưu trữ.220
B.2.3.1 Lớp LT_Bang .220
B.2.3.2 Lớp LT_Khoi.222
B.2.3.3 Lớp LT_MonHoc .223
B.2.3.4 xLớp LT_TacGia.224
B.2.3.5 Lớp LT_NoiDungMonHoc .225
B.2.3.6 Lớp LT_MucTieuMonHoc.227
B.2.3.7 Lớp LT_CauTNDaLuaChon .228
B.2.3.8 Lớp LT_CauTNDungSai.231
u trắc nghiệm đa
lựa chọn
25 YeuCau Lớp đối tượng yêu cầu đề thi
26 PhuongAnTraLoi Lớp đối tượng phương án trả lời
27 DisOrderTest Lớp đối tượng xử lý việc xáo trộn câu
hỏi để tạo đề thi
28 ExcelRender Lớp đối tượng xử lý việc đọc và kết
xuất trên tập tin Excel
29 WordParser Lớp đối tượng xử lý việc đọc toàn bộ
tập tin Word
30 TestParser Lớp đối tượng xử lý việc đọc nội dung
câu trắc nghiệm tổng quát trên tập tin
Word
31 CauTNDaLuaChonPars
er
lý nghiệp
vụ
Lớp đối tượng xử lý việc đọc nội dung
câu trắc nghiệm đa lựa chọn trên tập tin
Word
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
67
32 CauTNDungSaiParser Lớp đối tượng xử lý việc đọc nội dung
câu trắc nghiệm đúng sai trên tập tin
Word
33 WordRender Lớp đối tượng xử lý việc kết xuất ra tập
tin Word.
34 TestRender Lớp đối tượng xử lý việc kết xuất câu
trắc nghiệm tổng quát ra tập tin Word.
35 CauTNDaLuaChonRen
der
Lớp đối tượng xử lý việc kết xuất câu
trắc nghiệm đa lựa chọn ra tập tin
Word.
36 CauTNDungSaiRender
Lớp đối tượng xử lý việc kết xuất câu
trắc nghiệm đúng sai ra tập tin Word.
37 LT_Khoi Lớp đối tượng xử lý việc lưu trữ khối
38 LT_MonHoc Lớp đối tượng xử lý việc lưu trữ môn
học
39 LT_TacGia Lớp đối tượng xử lý việc lưu trữ tác giả
40 LT_NoiDungMonHoc Lớp đối tượng xử lý việc lưu trữ nội
dung môn học
41 LT_MucTieuMonHoc Lớp đối tượng xử lý việc lưu trữ mục
tiêu môn học
42 LT_DanBaiTracNghie
m
Lớp đối tượng xử lý việc lưu trữ dàn bài
trắc nghiệm
43 LT_CauTNDungSai Lớp đối tượng xử lý việc lưu trữ câu
trắc nghiệm đúng sai
44 LT_CauTNDaLuaChon Lớp đối tượng xử lý việc lưu trữ câu
trắc nghiệm đa lựa chọn
45 LT_ThongTinCSDL
Lớp đối
tượng xử
lý lưu trữ
Lớp đối tượng xử lý việc lưu trữ thông
tin cơ sở dữ liệu
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
68
46 LT_Bang Lớp đối tượng xử lý việc lưu trữ tất cả
các thông tin
4.2 Thiết kế dữ liệu
4.2.1 Sơ đồ logic dữ liệu
CAU_HOI_DA_LUA_CHON
MaCH : S(17)
NoiDungXML : S
NoiDungText : S
DapAn : N
DoKho : R
DoPhanCach : R
MaTGBS : N
MaMH : N
MaNDMH : N
MaNDC : N
MaMTMH : N
MaMTC : N
SoLanXuatHien : N
CAU_HOI_DUNG_SAI
MaCH : S(17)
NoiDungXML : S
NoiDungText : S
DapAn : N
DoKho : R
DoPhanCach : R
MaTGBS : N
MaMH : N
MaNDMH : N
MaNDC : N
MaMTMH : N
MaMTC : N
SoLanXuatHien : N
TAC_GIA
MaTG : N
TenTG : S(40)
BangCap : S(30)
DonViCongTac : S(30)
DiaChi : S(80)
DienThoai : S(15)
GhiChu : S)50_
DANH_SACH_LUA_CHON
MaCH : S(17)
MaLuaChon : N
NoiDungXML : S
NoiDungText : S
MUC_TIEU_MON_HOC
MaMTMH : N
TenMTMH : S(30)
GhiChu : S(50)
MUC_TIEU_CON
MaMTMH : N
MaMTC : N
TenMTC : S(30)
GhiChu : S(50)
MON_HOC
MaMH : N
TenMH : S(15)
KHOI
MaKhoi : N
TenKhoi : S(6)
GhiChu : S(50)
KHOI_MONHOC
MaKhoi : N
MaMH : N
NOI_DUNG_MON_HOC
MaMH : N
MaNDMH : N
TenNDMH : S(30)
GhiChu : S(50)
NOI_DUNG_CON
MaMH : N
MaNDMH : N
MaNDC : N
TenNDC : S(30)
GhiChu : S(50)
Hình 10. Sơ đồ logic dữ liệu
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
69
Danh sách các bảng dữ liệu :
STT Tên Ý nghĩa Ghi chú
1 KHOI Lưu trữ khối thi
2 MON_HOC Lưu trữ môn học
3 KHOI_MONHOC Lưu trữ các môn học thuộc
khối
4 NOI_DUNG_MON_HOC Lưu trữ nội dung môn học
thuộc môn học
5 NOI_DUNG_CON Lưu trữ nội dung con thuộc
nội dung môn học
6 MUC_TIEU_MON_HOC Lưu trữ mục tiêu nhận thức
môn học
7 MUC_TIEU_CON Lưu trữ mục tiêu con thuộc
mục tiêu môn học
8 TAC_GIA Lưu trữ tác giả biên soạn câu
trắc nghiệm
9 CAU_HOI_DA_LUA_CHON Lưu trữ câu hỏi trắc nghiệm
loại đa lựa chọn
10 DANH_SACH_LUA_CHON Lưu trữ danh sách các lựa
chọn của câu trắc nghiệm đa
lựa chọn
11 CAU_HOI_DUNG_SAI Lưu trữ câu hỏi trắc nghiệm
loại đúng sai
Bảng 17. Danh sách các bảng dữ liệu
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
70
4.3 Sơ đồ truyền động (sơ đồ hoạt động chi tiết) một số xử lý
quan trọng
4.3.1 Nhập câu hỏi
Hình 11. Sơ đồ truyền động xử lý nhập câu hỏi
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
71
4.3.2 Kết xuất câu hỏi
Hình 12. Sơ đồ truyền động xử lý kết xuất câu hỏi
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
72
4.3.3 Trộn đề thi
Hình 13. Sơ đồ truyền động xử lý trộn đề thi
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
73
Chương 5. Triển khai, thực nghiệm và kiểm tra
5.1 Kỹ thuật Automation (tự động hóa)
5.1.1 Sơ nét về Automation
Automation (trước đây được biết đến với tên gọi là OLE Automation) là một cơ chế
cho phép một ứng dụng A thao tác với các đối tượng được cài đặt trong ứng dụng
B, hoặc phơi bày các đối tượng của ứng dụng A để các ứng dụng khác có thể truy
xuất và thao tác được các đối tượng này. Nói cách khác, Automation là một cơ chế
cho phép điều khiển ứng dụng B từ ứng dụng A. Có 2 loại automation :
- Automation cục bộ (Local Automation): các đối tượng và chức năng của
ứng dụng A được phơi bày nằm trên cùng một máy với ứng dụng B.
- Automation từ xa (Remote Automation): các đối tượng và chức năng của
ứng dụng A được phơi bày nằm trên một máy khác với máy chứa ứng dụng
B, khi đó ứng dụng B phải truy cập đến ứng dụng A qua hệ thống mạng.
Các khái niệm :
- Automation server : là các ứng dụng (thuộc kiểu COM server) phơi bày
(expose) các chức năng của nó thông qua giao diện COM (COM interface)
cho các ứng dụng khác. Các ứng dụng sử dụng các chức năng đó gọi là các
Automation client.
- Automation client : là các ứng dụng sử dụng, thao tác các đối tượng, chức
năng được phơi bày của Automation server. Có 2 loại Automation client :
o Client động : là các client lấy thông tin về các thuộc tính và phương
thức của Automation Server trong lúc chạy chương trình (run time).
o Client tĩnh : là các client lấy thông tin về các hàm và phương thức của
Automation server trong lúc biên dịch (compile time).
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
74
Hình 14. Mô hình sử dụng Automation
Việc phơi bày các đối tượng của server giúp cho các client có thể thực hiện tự động
hóa các chức năng bằng cách truy xuất trực tiếp vào các đối tượng và chức năng đã
được công bố của automation server. Công bố các đối tượng như vậy sẽ rất có lợi
khi một ứng dụng muốn cung cấp các chức năng của nó cho các ứng dụng khác.
Chẳng hạn như một ứng dụng xử lý văn bản có thể cung cấp chức năng bắt lỗi chính
tả cho các ứng dụng khác sử dụng. Với cơ chế này, các lâp trình viên, các nhà phát
triển phần mềm dễ dàng xây dựng những ứng dụng mới dựa trên những chức năng
được cung cấp sẵn bởi các automation server.
Automation thể hiện rõ các khía cạnh kỹ thuật trong lập trình hướng đối tượng ở
mức ứng dụng như : tính dùng lại (reusability), tính đóng gói (encapsulation).
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
75
Rất nhiều ứng dụng thương mại, chẳng hạn như Microfsoft Office (bao gồm toàn bộ
các sản phẩm như Word, Excel, PowerPoint, Access, ...) hay Microsoft Visual C++,
cho phép điền khiển tự động hóa nhiều chức năng của chúng. Thí dụ ta có thể sử
dụng các macro VBScript để điều khiển tự động hóa việc build, chỉnh sửa code, hay
debug ...
5.1.2 Automation với Microsoft Office 2003
Mỗi ứng dụng của bộ Microsoft Office 2003 đều có các đặc điểm cho phép chúng ta
tạo các giải pháp riêng. Chẳng hạn, Microsoft Office Excel cung cấp các công cụ
toán học, công cụ phân tích và công cụ báo cáo .... trong khi đó Microsoft Office
Word cho phép tạo và quản lý các tài liệu, theo dõi phiên bản các tài liệu giữa nhiều
nhóm người sử dụng, tạo các form và template ...
Các ứng dụng Office khác cũng đều có khả năng mạnh mẽ như vậy. Ta có thể tích
hợp các đặc điểm của các ứng dụng Office vào trong chính ứng dụng của chúng ta.
Automation là một kỹ thuật quan trọng trong việc tích hợp các đặc điểm của Office
vào trong ứng dụng.
5.1.2.1 Automation với Microsoft Office Word 2003
Các đối tượng Microsoft Office Word 2003 được sắp xếp theo thứ tự phân cấp, và 2
lớp chính ở vị trí cao nhất trong cây phân cấp là lớp Application(lớp ứng dụng) và
lớp Document (lớp tài liệu). Hai lớp này rất quan trọng bởi vì hầu hết mọi thao tác
khi xử lý thì lúc nào chúng ta cũng xử lý trên ứng dụng Word hay xử lý trên các tài
liệu Word.
Mô hình đối tượng Word tượng tư như giao diện sử dụng của chương trình. Đối
tượng Application đại diện cho toàn bộ ứng dụng, mỗi đối tượng Document đại diện
cho một tài liệu Word đang được xử lý, đối tượng Paragraph tương ứng với mỗi
đoạn trong tài liệu, và các lớp khác cũng tương tự như vậy. Mỗi đối tượng này đề có
các phương thức và thuộc tính cho phép thao tác và giao tiếp với chúng.
Mô hình các đối tượng chính của Word
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
76
Hình 15. Mô hình đối tượng Word
¾ Application : đại diện cho ứng dụng Word, là cha của tất cả mọi loại đối
tượng. Ta có thể sử dụng hàm và các thuộc tính của nó điều khiển chương
trình Word.
¾ Document : là đối tượng chính của việc lập trình với Word. Khi mở hay tạo
mới một tài liệu Word, thì một đối tượng Document cũng được tạo tương
ứng và được thêm vào tập hợp Documents trong Word. Tài liệu đang được
mở gọi là tài liệu hiện hành và được truy xuất thông qua thuộc tính
ActiveDocumnt của đối tượng Application.
¾ Selection : đại diện cho một vùng dữ liệu đang được chọn. Khi thực hiện các
thao tác soạn thảo trên Word, chẳng hạn như tô đậm văn bản, ta chọn hay
đánh dấu đoạn văn bản và áp dụng định dạng. Đối tượng Selection luôn tồn
tại trong tài liệu. Nếu không có gì được chọn thì nó đại diện cho vị trí của
con trỏ hiện tại .
¾ Range : đại diện cho các vùng kề nhau trong tài liệu, được xác định bằng vị
trí ký tự đầu tiên và vị trí ký tự kết thúc. Ta có thể có nhiều đối tượng Range
trong cùng 1 tài liệu. Đối tượng Range có các đặc điểm sau :
o Nó có thể chỉ là vị trí con trỏ hiện tại, hay là một phạm vi văn bản,
hay là toàn bộ văn bản.
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
77
o Nó bao gồm các ký tự không được “hiển thị” như khoảng cách, tab,
ký tự đánh dấu paragraph
o Nó có thể là vùng văn bản đang được chọn, hay có thể là vùng văn
bản khác với vùng văn bản đang được chọn.
o Không được lưu trữ với tài liệu và chỉ tồn tại khi chạy mã lập trình.
¾ Bookmark : đối tượng Bookmark tương tự như đối tượng Range ở chỗ nó
đại diện cho một vùng dữ liệu kề nhau, với vị trí đầu và vị trí cuối. Ta sử
dụng Bookmark để đánh dấu một vị trí trong tài liệu, hay như là một đối
tượng chứa văn bản trong tài liệu. Bookmark có thể chỉ là vị trí con trỏ hiện
tại hoặc là toàn bộ tài liệu. Bạn có thể có nhiều Bookmark trong 1 tài liệu.
Bookmark có những đặc điểm sau làm cho nó khác biệt với đối tượng Range
:
o Ta có thể đặt tên cho Bookmark
o Bookmark được lưu với tài liệu, vì thế nó không mất đi ngay cả khi
không chạy mã lập trình hoặc đã đóng tài liệu.
o Mặc định, Bookmark được ẩn, nhưng có thể làm cho hiển thị bằng
cách thiết lập thuộc tính ShowBookMarks của đối tượng View thành
giá trị True.(Đối tượng View là thành viên của đối tượng Application
và Document)
5.1.2.2 Automation với Microsoft Excel Word 2003
Để phát triển ứng dụng sử dụng Microsoft Office Excel 2003, chúng ta phải tương
tác với các đối tượng trong mô hình đối tượng của Excel. Trong hầu hết các phần, ta
sẽ thấy rằng mô hình đối tượng này tương ứng với giao diện sử dụng, điều này cũng
giống với việc sử dụng mô hình đối tượng trong Microsoft Office Word 203.
Các lớp đối tượng chính :
¾ Application : Đối tượng Application đại diện cho ứng dụng Excel. Đối
tượng Application cung cấp rất nhiều thông tin về : ứng dụng đang chạy, các
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
78
tùy chọn được áp dụng vào thể hiện đó, các đối tượng hiệnt tại đang được
người sử dụng mở ...
¾ WorkBook : Đối tượng Workbook đại diện một workbook trong ứng dụng
Excel. Nhiều biến, thuộc tính thành viên của lớp Application cũng chính là
biến, thuộc tính của lớp Workbook. Như vậy, có thể sử dụng thuộc tính để
tương tác với một workbook được chỉ định hoặc với workbook hiện hành.
¾ Worksheet : Tương ứng với sheet trong 1 Workbook. Mặc dù lớp
Worksheet cung cấp một lượng lớn các hàm, biến, thuộc tính nhưng hầu hết
đều tương tự như các hàm, biến, thành phần của 2 lớp Application và
Workbook.
¾ Range : Đối tượng Range là đối tượng mà bạn sẽ sử dụng nhiều nhất trong
ứng dụng Excel. Trước khi thao tác với các vùng trong Excel, bạn phải chỉ
định chúng như là một đối tượng Range và sử dụng với các phương thức,
thuộc tính của đối tượng Range này. Một đối tượng Range có thể là một ô,
một dòng, một cột hay là một tập hợp các ô (có thể kề nhau hay không kề
nhau), hay thậm chí là một nhóm các ô trên các sheet khác nhau.
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
79
5.2 Thực hiện
5.2.1 Cách tổ chức trong lập trình
Kiến trúc phần mềm được xây dựng theo cơ chế 3 tầng :
- Tầng giao tiếp với người sử dụng : Tương ứng với tầng này là thư mục
ManHinh
- Tầng giao tiếp với bộ nhớ phụ : Tương ứng với tầng này là các thư mục
LuuTru
- Tầng xử lý : là tầng trung gian giao tiếp giữa 2 tầng trên, thực hiện các xử lý
quan trọng như : đọc câu hỏi từ tập tin Word, kết xuất câu hỏi, xáo trộn câu
hỏi, kết xuất đề thi ...
5.2.2 Các công thức được sử dụng
- Công thức tính độ khó câu trắc nghiệm :
- Công thức tính độ phân cách câu trắc nghiệm : sử dụng công thức tương
quan điểm nhị phân
- Công thức tính độ tin cậy của bài trắc nghiệm
5.2.3 Qui tắc đặt tên các đối tượng
STT Tên đối tượng Cách đặt tên Ví dụ
r = kk – 1
)
pq
- 1(
2σ
∑
D =
]Y)( - Y][NX)( - X[N 2222 ∑∑∑∑
YX ∑∑∑ - XYN
Độ khó câu i =
Số người trả lời đúng câu i
Tổng số người làm bài trắc nghiệm
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
80
1 Các đối tượng màn hình MH_ MH_Chinh, MH_TacGia
2 Các đối tượng xử lý XL_ XL_TacGia, XL_Mon
3 Các đối tượng xử lý khác Đặt tên tự do
theo ý nghĩa
CauTN,CauTNDaLuaChon
4 Các đối tượng lưu trữ LT_ LT_TacGia, LT_Mon
Bảng 18. Qui tắc đặt tên các đối tượng
5.2.4 Qui tắc đặt tên cho các điều khiển trong các màn hình
Mỗi cửa sổ có thể có nhiều điều khiển. Những điều khiển này có tên mặc định,
nhưng nên đặt lại tên để có nhiều mô tả và làm cho ứng dụng của bạn dễ quản lý.
Sau đây chúng em xin được trình bày đề nghị những tiền tố cho các điều khiển trên
màn hình trong đề tài của mình.
STT Tên điều khiển Cách đặt tên Ví dụ
1 Button btn_ btnDongY, btnThoat
2 CheckBox check checkHienThi
3 Grid grid_ gridTacGia, gridMonHoc
4 Label lb_ lbTacGia, lbMonHoc
5 TextBox txt_ txtTacGia, txtMonHoc
Bảng 19. Qui tắc đặt tên các điều khiển trên màn hình
5.2.5 Quy tắc đặt tên biến
Dưới đây là những mô tả ký hiệu cho các biến thuộc kiểu dữ liệu cơ bản
STT Tên kiểu dữ liệu Cách đặt tên Ví dụ
1 Số nguyên i_ iDiem, iDem
2 Boolean b_ bVisible, bXuatMaCauHoi
3 Số thực f_ fDoKho, fDoPhanCach
4 Chuỗi s_ sTacGia, sMonHoc
Bảng 20. Quy tắc đặt tên biến
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
81
5.3 Thực nghiệm và kiểm tra
• Dữ liệu thử nghiệm là một bài trắc nghiệm gồm 10 câu
• Kiểm tra trên 10 thí sinh
• Các bài làm của thí sinh hoàn toàn độc lập với nhau
• Dưới đây là đáp án và bài làm của các thí sinh:
Câu hỏi 1 2 3 4 5 6 7 8 9 10
Đáp án A B D B A C C A D B
Thí sinh 1 A B D B A C C B D B
Thí sinh 2 A B D B A C C A D B
Thí sinh 3 A B D A A C B A D B
Thí sinh 4 A B D C B B C A B B
Thí sinh 5 C B D B A B B B C A
Thí sinh 6 A C D B A C A D A B
Thí sinh 7 A C D C B C B B C A
Thí sinh 8 B B C A B D A A D C
Thí sinh 9 D B C B A A A B A B
Thí sinh 10 A B A B B D A B D B
Bảng 21. Bài làm của các thí sinh
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
82
• Tính độ khó và độ phân cách câu trắc nghiệm 1:
Lập bảng tính toán giá trị cần thiết:
Thí sinh Tổng điểm (Y) Điểm câu trắc nghiệm 1(X) X2 Y2 XY
1 9 1 1 81 9
2 10 1 1 100 10
3 8 1 1 64 8
4 6 1 1 36 6
5 4 0 0 16 0
6 6 1 1 36 6
7 3 1 1 9 3
8 3 0 0 9 0
9 4 0 0 16 0
10 5 1 1 25 5
Tổng 58 7 7 392 47
Bảng 22. Điểm bài làm và điểm câu trắc nghiệm 1
Tính độ khó câu trắc nghiệm 1[ 2.5.1.2 ]:
Tính độ phân cách câu trắc nghiệm 1[ 2.5.2.2.2 ]:
Độ khó câu 1 =
Số người trả lời đúng câu i
Tổng số người làm bài trắc nghiệm
=
N
X∑ =
10
7
= 0.7
D =
]Y)( - Y][NX)( - X[N 2222 ∑∑∑∑
=
]58 - 392 x ][107 - 7 x 10[ 22
10 x 47 – 7 x 58
= 0.59
YXXYN ∑∑−∑
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
83
• Tính toán tương tự cho các câu trắc nghiệm còn lại ta được độ khó và độ
phân cách của các câu trắc nghiệm như sau:
Câu trắc nghiệm Độ khó Độ phân cách
1 0.7 0.59
2 0.8 0.28
3 0.7 0.5
4 0.6 0.28
5 0.6 0.54
6 0.5 0.59
7 0.3 0.7
8 0.4 0.33
9 0.5 0.51
10 0.7 0.68
Bảng 23. Độ khó và độ phân cách của các câu trắc nghiệm
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
84
Tính độ tin cậy của bài trắc nghiệm[ 2.6.2.4 ]
Câu Độ khó (p) q = 1 - p pq
1 0.7 0.3 0.21
2 0.8 0.2 0.16
3 0.7 0.3 0.21
4 0.6 0.4 0.24
5 0.6 0.4 0.24
6 0.5 0.5 0.24
7 0.3 0.7 0.21
8 0.4 0.6 0.24
9 0.5 0.5 0.25
10 0.7 0.3 0.21
Tổng 2.22
Bảng 24. Tính pq
2σ =
N 2Y∑ - ( Y∑ )2
N(N - 1)
=
10 x 392- 582
10 x 9
= 6.18
r = kk – 1
)
pq
- 1(
2σ
∑
= 10
9
)
18.6
2.22
- 1( = 0.71
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
85
Chương 6. Kết luận
6.1 Những kết quả đạt được
¾ Về chức năng quản lý câu trắc nghiệm : có thể quản lý tốt số lượng lớn các
câu trắc nghiệm thuộc hầu hết các môn học (Toán, Lý, Hóa, Anh văn ...) và
các lĩnh vực khác nhau (giáo dục, xã hội, tâm lý, kinh tế ...)
¾ Về chức năng soạn thảo câu trắc nghiệm, kết xuất câu trắc nghiệm :
o Người sử dụng soạn câu trắc nghiệm trực tiếp trên tập tin Word vì thế
có thể soạn với định dạng bất kỳ, nội dung bất kỳ : có thể sử dụng
được tất cả các loại ký hiệu toán học, hóa học, vật lý, hình vẽ ... mà
Microsoft Word có hỗ trợ.
o Người sử dụng có thể kết xuất câu trắc nghiệm ra trên tập tin Word
với cấu trúc, định dạng và nội dung tương tự với cấu trúc, định dạng,
nội dung đã được soạn thảo ban đầu.
¾ Về chức năng soạn dàn bài trắc nghiệm (soạn đề thi) :
o Hộ trợ người sử dụng lập dàn bài trắc nghiệm theo đúng yêu cầu cần
có của một dàn bài trắc nghiệm : phân loại theo khối thi, môn thi, nội
dung môn học, các mục tiêu của môn học, loại câu hỏi, độ khó, độ
phân cách ...
o Chức năng được xây dựng với hệ thống phân cấp quen thuộc, gần gũi
và dễ dàng sử dụng.
¾ Về chức năng kết xuất đề thi :
o Hỗ trợ tốt trong việc xáo trộn đề (xáo trộn thứ tự câu hỏi, xáo trộn thứ
tự các phương án trả lời trong câu hỏi) với tỉ lệ trùng cho phép giữa
các đề được chỉ định bởi người sử dụng
o Hỗ trợ tốt việc xáo trộn dạng câu hỏi phức hợp (dạng câu hỏi : Câu A
và C đúng), một chức năng mà hiện nay, hầu như chưa có chương
trình nào có thể xử lý được.
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
86
o Người sử dụng có thể chỉ định số đề thi sẽ được phát sinh, định dạng
đánh số thứ tự câu hỏi, đánh số các phương án trả lời ....
o Kết xuất tốt ra file Word các đề thi, bảng trả lời cho thí sinh, bảng đáp
án tương ứng với các đề thi ...
o Khả năng tùy biến định dạng cao vì tập tin được kết xuất theo
Template (.dot) của Microsoft Word, khi người sử dụng có nhu cầu
thay đổi chỉ cần thay đổi tập tin Template (.dot) tương ứng
¾ Về chức năng đánh giá :
o Hỗ trợ việc kết xuất bảng đáp án và bảng nhập kết quả làm bài của thí
sinh ra tập tin Excel
o Người sử dụng nhập kết quả làm bài vào bảng nhập kết quả và sử
dụng chương trình để chấm điểm bài làm và đánh giá các độ đo của
các câu trắc nghiệm đã được chọn trong đề thi
6.2 So sánh với một số chương trình liên quan
Hiện nay, ở Việt Nam, có rất ít hoặc hầu như không có bất cứ chương trình nào hỗ
trợ quản lý các câu trắc nghiệm. Theo sự tìm hiểu của chúng em thì chính thức, có
một nhóm phát triển của Trung tâm phát triển Công nghệ Thông tin của Trường Đại
học Sư phạm Thành phố Hồ Chí Minh là đã và đang phát triển một hệ thông tương
tự, tên gọi là TQS (Test Question System). Chúng em xin được so sánh và đánh giá
hệ thống đã xây dựng với hệ thống này.
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
87
Chức năng, đặc điểm TQS Chương trình của nhóm đã phát triển
Hỗ trợ 2 dạng câu
trắc nghiệm đa lựa
chọn và câu trắc
nghiệm đúng sai
Có Có
Quản lý, phân loại
theo nội dung
1 cấp nội dung
2 cấp nội dung ( đúng
theo các tài liệu lý thuyết
trắc nghiệm)
Quản lý các mục tiêu
của câu trắc nghiệm
Không Có
Hình thức nhập câu
hỏi vào ngân hàng dữ
liệu
- Hỗ trợ nhập trên
chương trình (chỉ nhập
được các nội dung đơn
giản)
Có Không
- Hỗ trợ nhập từ file
Word
Có, nhưng xử lý còn đơn
giản, không thể nhập
được các đối tượng phức
tạp như công thức toán
học, hóa học, hình ảnh ...
tích hợp ngay trong câu
trắc nghiệm.
Hỗ trợ tốt việc soạn thảo
câu hỏi với nội dung bất
kỳ
- Hỗ trợ nhập phương án
trả lời dạng phức hợp
(là dạng câu hỏi : Câu
A, B đều đúng hoặc
Câu A, C đều sai)
Không hổ trợ Hỗ trợ và đã xử lý, cập
nhật lại phương án trả lời
phức hợp sau khi đã xáo
trộn các phương án trả lời
trong quá trình trộn đề
Hỗ trợ kết xuất ra file
Word
Không hỗ trợ Hỗ trợ kết xuất đầy đủ
với các template mà
người dùng có thể tùy
biến trước hoặc sau khi
kết xuất
Hỗ trợ việc soạn dàn
bài trắc nghiệm
Không hỗ trợ Hỗ trợ soạn dạng bài trắc
nghiệm với cây phân cấp,
dễ quản lý, thân thiện với
người sử dụng.
Hỗ trợ chấm điểm bài
thi
Có. Người sử dụng nhập
bài làm thí sinh bằng cách
Có. Người sử dụng nhập
bài làm của thí sinh vào
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
88
sử dụng chuột chọn kết
quả bài làm thí sinh trên
màn hình
tập tin Excel, chấm điểm
ngay trên tập tin Excel.
Có thể điều chỉnh lại
module đọc tập tin để
thích hợp với output của
các máy chấm điểm tự
động.
Hỗ trợ đánh giá câu
trắc nghiệm
Có (áp dụng công thức
Pearson )
Có (áp dụng công thức
Pearson )
Bảng 25. Bảng so sánh chức năng của đề tài với chương trình đã được phát triển
6.3 Các hướng phát triển
Trong phạm vi một luận văn Đại học, luận văn cơ bản đã đạt được các yêu cầu đặt
ra. Tuy nhiên, các kết quả đạt được vẫn còn thiếu so với hiện trạng thực tế do hạn
chế về thời gian. Trong thời gian tới, nếu có điều kiện, luận văn sẽ cố gắng phát
triển các chức năng sau :
- Hỗ trợ đầy đủ các hình thức trắc nghiệm khác như : Câu trắc nghiệm ghép
cặp, câu trắc nghiệm điền khuyết.
- Kết xuất các bảng đáp án, bảng trả lời tự động phù hợp với máy chấm điểm
tự động hoặc các phần mềm chấm điểm.
6.4 Nhận xét
Luận văn đã xây dựng thành công một chương trình quản lý hệ thống ngân hàng câu
hỏi trắc nghiệm. Việc xây dựng chương trình được thực hiện theo qui trình công
nghệ phần mềm hướng đối tượng, theo mô hình ba lớp. Chúng tôi đã kết hợp được
các công việc liên quan đến vấn đề thi trắc nghiệm như soạn đề thi trắc nghiệm,
chọn lọc câu hỏi, đánh giá, cập nhật lại hệ thống câu hỏi với mục đích làm cho hệ
thống ngân hàng câu hỏi ngày càng tốt hơn, đáp ứng được yêu chất lượng về đề thi,
cũng như yêu cầu phân loại thí sinh của các kỳ thi tuyển. Bên cạnh đó chúng tôi
cũng cố gắng chuẩn hóa tối đa các thao tác trong chương trình so với các thao tác
trong các chương trình ứng dụng quen thuộc trên máy tính như Microsoft Excel,
Microsoft Visio, Microsoft Access, .... đặc biệt, cho phép người dùng soạn thảo các
Xây dựng phần mềm quản lý ngân hàng câu hỏi trắc nghiệm tuyển sinh đại học
89
câu trắc nghiệm bằng chính chương trình Microsoft Word 2003, một chương
trình rất thân thiện và quen thuộc đối với tất cả những người sử dụng máy tính.
Chính vì sử dụng Microsoft Word làm trình soạn thảo câu trắc nghiệm, mà người sử
dụng có thể nhập nội dung của file Word với nội dung bất kỳ, định dạng bất kỳ :
có thể chèn các công thức toán học, công thức hóa học, hình ảnh, biểu tượng, ký
hiệu chuyên ngành ... mà không sợ bị mất định dạng hoặc không hiển thị được khi
kết xuất ra đề thi. Đây là điều mà hầu hết các chương trình về trắc nghiệm chưa làm
được.
Chương trình có khả năng mở rộng thành một hệ thống lớn hỗ trợ nhiều hình thức
câu hỏi trắc nghiệm khác nhau từ nhiều nguồn câu hỏi. Có thể sử dụng được cho bất
cứ nhu