Cham diem tu dong bieu mau thi trac nghiem

123
TRƯỜNG ĐẠI HC KHOA HC TNHIÊN KHOA CÔNG NGHTHÔNG TIN BMÔN CÔNG NGHPHN MM NGUYN QUC BO - NGUYN PHÚ CƯỜNG PHN MM THIT KVÀ CHM ĐIM TĐỘNG BIU MU THI TRC NGHIM KHÓA LUN CNHÂN TIN HC TP. HCM, 2005

Transcript of Cham diem tu dong bieu mau thi trac nghiem

Page 1: Cham diem tu dong bieu mau thi trac nghiem

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ PHẦN MỀM

NGUYỄN QUỐC BẢO - NGUYỄN PHÚ CƯỜNG

PHẦN MỀM THIẾT KẾ VÀ CHẤM ĐIỂM TỰ ĐỘNG BIỂU MẪU THI TRẮC NGHIỆM

KHÓA LUẬN CỬ NHÂN TIN HỌC

TP. HCM, 2005

Page 2: Cham diem tu dong bieu mau thi trac nghiem

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ PHẦN MỀM

NGUYỄN QUỐC BẢO - 0112172 NGUYỄN PHÚ CƯỜNG - 0112177

PHẦN MỀM THIẾT KẾ VÀ CHẤM ĐIỂM TỰ ĐỘNG BIỂU MẪU THI TRẮC NGHIỆM

KHÓA LUẬN CỬ NHÂN TIN HỌC

GIÁO VIÊN HƯỚNG DẪN

Th.s TRẦN ĐỨC DUẨN

NIÊN KHÓA 2001 - 2005

Page 3: Cham diem tu dong bieu mau thi trac nghiem

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... .......................................................................................................................................

Page 4: Cham diem tu dong bieu mau thi trac nghiem

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... .......................................................................................................................................

Page 5: Cham diem tu dong bieu mau thi trac nghiem

LỜI CẢM ƠN

Chúng em xin cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa

Học Tự Nhiên TPHCM đã tạo rất nhiều điều kiện thuận lợi cho chúng em thực hiện

đề tài này.

Chúng em cũng xin được gửi lời cảm ơn chân thành nhất đến thầy Trần Đức

Duẩn, người đã luôn tận tình chỉ bảo và hướng dẫn nhóm chúng em trong suốt thời

gian nghiên cứu vừa qua.

Bên cạnh đó, chúng em cũng rất cảm ơn các Thầy Cô trong Khoa đã tận tình

giảng dạy và trang bị cho chúng em thật nhiều kiến thức bổ ích trong các năm học

vừa qua, góp phần rất lớn vào việc nghiên cứu thành công luận văn này.

Ngoài ra cũng xin được gửi lời cảm ơn đến hai bạn Phạm Thị Minh Chung

(0112054) và Nguyễn Ngọc Duy Quang (0112194) trong việc đã hỗ trợ các trang

thiết bị cần thiết cho quá trình thực hiện đề tài.

Cuối cùng, chúng em xin gửi lòng biết ơn sâu sắc đến cha mẹ chúng em, các

bậc sinh thành đã có công nuôi dưỡng và dạy dỗ cho chúng em đến ngày hôm nay,

những người đã luôn hết lòng tận tụy chăm sóc, ủng hộ và động viên chúng em

trong lúc khó khăn cũng như trong suốt thời gian học tập và nghiên cứu.

Dù đã cố gắng hoàn thành thật tốt luận văn trong phạm vi yêu cầu, nhưng

chúng em biết có những thiếu sót chắc chắn không thể tránh khỏi. Chúng em mong

sẽ nhận được sự thông cảm và tận tình chỉ bảo của quý Thầy Cô và các bạn.

TP.Hồ Chí Minh, tháng 7 năm 2005

Nhóm sinh viên thực hiện:

Nguyễn Phú Cường - Nguyễn Quốc Bảo

Page 6: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 1 -

MỤC LỤC

MỤC LỤC..................................................................................................................1

DANH MỤC CÁC HÌNH .........................................................................................5

DANH MỤC CÁC BẢNG ........................................................................................7

LỜI MỞ ĐẦU............................................................................................................9

Chương 1: TỔNG QUAN.......................................................................................11

1.1 Yêu cầu thực tế và lý do thực hiện đề tài: .......................................................11 1.2 Mục tiêu của đề tài:.........................................................................................12 1.3 Giải pháp hiện có: ...........................................................................................12 1.4 Hướng tiếp cận của luận văn ..........................................................................13 1.5 Nội dung thực hiện của đề tài: ........................................................................14

Chương 2: CƠ SỞ LÝ THUYẾT...........................................................................16

2.1 Lý thuyết cho phần thiết kế biễu mẫu thi trắc nghiệm: ...................................17 2.1.1 Phân tích các thành phần trên biểu mẫu trắc nghiệm: ..............................17 2.1.2 Tổ chức dữ liệu để biểu diễn và lưu trữ biểu mẫu....................................22

2.2 Lý thuyết cho phần chấm điểm tự động: .........................................................24 2.2.1 Tóm tắt quá trình thực hiện của phần chấm điểm tự động .......................24 2.2.2 Sơ Lược Các Lý Thuyết Về Xử Lý Ảnh Và Nhận Dạng .........................27

2.2.2.1 Xử lý ảnh:...........................................................................................27 2.2.2.1.1 Các thao tác xử lý ảnh cơ bản: ...................................................27 2.2.2.1.2 Tô màu bằng thuật toán dựa theo dòng quét cải tiến ................28

2.2.2.2 Nhận dạng: .........................................................................................32 2.2.2.2.1 Nhận dạng bốn góc của bài thi bằng thuật toán Hough Transform..................................................................................................32 2.2.2.2.2 Kiểm tra vùng tô ........................................................................39 2.2.2.2.3 Mạng nơ ron và ứng dụng vào nhận dạng chữ viết tay in..........42

Chương 3: THIẾT KẾ CHƯƠNG TRÌNH...........................................................45

3.1 PHÂN TÍCH: ...................................................................................................45 3.2 XÁC ĐỊNH YÊU CẦU:....................................................................................46 3.3 XÂY DỰNG MÔ HÌNH USE-CASE:...............................................................47

3.3.1 Xác định Actor và Use-Case: ...................................................................47 3.3.2 Mô hình Use-case: ....................................................................................47 3.3.3 Đặc tả Use-case: .......................................................................................48

3.3.3.1 THIETKEBIEUMAU:.......................................................................48 3.3.3.1.1 TAOMOI:...................................................................................49 3.3.3.1.2 SUABIEUMAU:........................................................................49 3.3.3.1.3 CHONDOITUONG: ..................................................................50

Page 7: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 2 -

3.3.3.1.4 THEMDOITUONGCOBAN: ....................................................50 3.3.3.1.4 THEMDOITUONGDOHOA:....................................................50 3.3.3.1.5 XOADOITUONG:.....................................................................51 3.3.3.1.6 CAPNHATDOITUONG:...........................................................51

3.3.3.2 SOANDAPAN:..................................................................................52 3.3.3.2.1 THEMDAPAN: .........................................................................53 3.3.3.2.2 CAPNHATDAPAN:..................................................................53 3.3.3.2.3 XOADAPAN: ............................................................................54

3.3.3.3 CHAMDIEM: ....................................................................................54 3.3.3.4 QUANLYKYTHI: .............................................................................55

3.3.3.4.1 THEMKYTHI:...........................................................................56 3.3.3.4.2 CAPNHATKYTHI: ...................................................................56 3.3.3.4.3 XOAKYTHI: .............................................................................57

3.3.3.5 QUANLYTHISINH:..........................................................................57 3.3.3.5.1 THEMTHISINH: .......................................................................58 3.3.3.5.2 CAPNHATTHISINH:................................................................58 3.3.3.5.3 XOATHISINH:..........................................................................59

3.3.3.6 QUANLYMONHOC:........................................................................60 3.3.3.6.1 THEMMONHOC: .....................................................................60 3.3.3.6.2 CAPNHATMONHOC:..............................................................61 3.3.3.6.3 XOAMONHOC: ........................................................................61

3.3.3.7 QUANLYBAILAM:..........................................................................62 3.3.3.6.1 THEMMONHOC: .....................................................................63 3.3.3.6.2 CAPNHATMONHOC:..............................................................63 3.3.3.6.3 XOAMONHOC: ........................................................................63

3.4 SƠ ĐỒ LỚP:....................................................................................................64 3.4.1 Sơ đồ: ........................................................................................................64 3.4.2 Mô tả một số lớp chính:............................................................................67

3.4.2.1 Lớp Entity: .........................................................................................67 3.4.2.2 Lớp Text:............................................................................................68 3.4.2.3 Lớp TextCell: .....................................................................................69 3.4.2.4 Lớp TextField: ...................................................................................70 3.4.2.5 Lớp ChoiceElement: ..........................................................................71 3.4.2.6 Lớp Choice:........................................................................................72 3.4.2.7 Lớp AnswerCell: ................................................................................72 3.4.2.8 Lớp AnswerSheet:..............................................................................74 3.4.2.9 Lớp Line:............................................................................................75 3.4.2.10 Lớp Rect:..........................................................................................76 3.4.2.11 Lớp Ellipse: ......................................................................................77 3.4.2.12 Lớp ImageObj: .................................................................................78 3.4.2.13 Lớp Page: .........................................................................................78 3.4.2.14 Lớp Key: ..........................................................................................79 3.4.2.15 Lớp AnswerKey:..............................................................................80

Page 8: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 3 -

3.4.2.16 Lớp Rate:..........................................................................................81 3.4.2.17 Lớp Estimation:................................................................................81 3.4.2.18 Lớp Sentence:...................................................................................82 3.4.2.19 Lớp Answer:.....................................................................................83 3.4.2.20 Lớp Recognition: .............................................................................83

3.5 Thiết kế cơ sở dữ liệu: .....................................................................................84 3.5.1 Sơ đồ: ........................................................................................................84 3.5.2 Mô tả các bảng:.........................................................................................85

3.5.2.1 MauThi:..............................................................................................85 3.5.2.2 KyThi: ................................................................................................89 3.5.2.3 MonThi: .............................................................................................89 3.5.2.4 DeThi: ................................................................................................90 3.5.2.5 BaiLam:..............................................................................................91 3.5.2.6 ThiSinh:..............................................................................................92

3.6 Thiết kế giao diện một số màn hình chính: .....................................................92 3.6.1 Màn hình thiết kế biểu mẫu: .....................................................................92 3.6.2 Màn hình chấm điểm: ...............................................................................93

3.7 Cài đặt: ............................................................................................................94

Chương 4: THỰC NGHIỆM, ĐÁNH GIÁ VÀ TỔNG KẾT..............................95

4.1 Thực nghiệm:...................................................................................................95 4.2 Kết quả.............................................................................................................95

4.2.1 Phần thiết kế các biểu mẫu: ......................................................................95 4.2.2 Phần chấm điểm tự động: .......................................................................100

4.3 Đánh giá ........................................................................................................101 4.4 Kết luận .........................................................................................................102 4.5 Hướng phát triển:..........................................................................................102

PHỤ LỤC...............................................................................................................104

PL.1 Các thao tác xử lý ảnh cơ bản:...................................................................104 PL.1.1 Làm xám ảnh:......................................................................................104 PL.1.2 Chuyển sang ảnh nhị phân ...................................................................106 PL.1.3 Xoay ảnh. .............................................................................................108 PL.1.4 Biến đổi tỉ lệ ảnh (Scale)......................................................................110

PL.2 Lý thuyết về mạng nơron ............................................................................111 PL.2.1 Đặt vấn đề ............................................................................................111 PL.2.2 Định nghĩa............................................................................................111 PL.2.3 Sơ lược cấu tạo của mạng nơron..........................................................111 PL.2.4 Quá trình ánh xạ và quá trình học của mạng nơ ron ............................112

PL.2.4.1 Quá trình ánh xạ ............................................................................112 PL.2.4.2 Quá trình học .................................................................................113 PL.2.4.3 Lan truyền ngược sai số ................................................................114

PL.2.5 Hàm truyền...........................................................................................115 PL.2.6 Khởi tạo trọng ......................................................................................116

Page 9: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 4 -

PL.2.7 Vấn đề quá khớp ..................................................................................116

TÀI LIỆU THAM KHẢO ....................................................................................118

Page 10: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 5 -

DANH MỤC CÁC HÌNH Hình 2-1: Mô hình chung cho toàn bộ phần mềm ...............................................16

Hình 2-2 : Mẫu bài thi TOEFL..............................................................................18

Hình 2-3: Mẫu thi của kỳ thi sát hạch Nhật Bản .................................................19

Hình 2-4: Phần văn bản trong đề thi mẫu ............................................................20

Hình 2-5: Phần ghi tên thí sinh trong đề thi mẫu ................................................21

Hình 2-6: Phần ghi mã số thí sinh trong đề thi mẫu............................................21

Hình 2-7: Phần lựa chọn giới tính trong đề thi mẫu............................................21

Hình 2-8: Phần trả lời câu hỏi của thí sinh trong đề thi mẫu .............................22

Hình 2-9: Sơ đồ tóm tắt quá trình chấm thi .........................................................27

Hình 2-10: quá trình thực hiện của thuật toán tô màu dựa theo đường biên ...29

Hình 2-11..................................................................................................................30

Hình 2-12..................................................................................................................31

Hình 2-13..................................................................................................................31

Hình 2-14..................................................................................................................32

Hình 2-15..................................................................................................................35

Hình 2-16..................................................................................................................36

Hình 2-17..................................................................................................................37

Hình 2-18..................................................................................................................37

Hình 2-19: khi chưa được tô ..................................................................................39

Hình 2-20: các dạng sau khi đã tô .........................................................................39

Hình 2-21: ảnh cần kiểm tra tô được phân thành 3 vùng ...................................40

Hình 2-22: cấu tạo của mạng nơ ron được áp dụng cho đề tài ...........................43

Hình 3-1: Mô hình Use-Case ..................................................................................48

Hình 3-2: Sơ đồ lớp xử lý chính .............................................................................65

Hình 3-3: Sơ đồ lớp truy cập cơ sở dữ liệu:..........................................................65

Hinh 3-4: CellStyle: Char.......................................................................................69

Hinh 3-5: CellStyle: Number..................................................................................69

Hinh 3-6: CellStyle: All...........................................................................................69

Hinh 3-7: AnswerStyles - Vertical .........................................................................73

Hinh 3-8: AnswerStyle - Vertical...........................................................................73

Page 11: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 6 -

Hình 3-9: Mô hình cơ sở dữ liệu ............................................................................85

Hình 3-10: Màn hình thiết kế biểu mẫu................................................................93

Hình 3-11 : Màn hình chấm điểm tự động............................................................94

Hình 4.1: mẫu thi Institutional TOEFL thực tế ...................................................96

Hình 4-2: mẫu TOEFL được thiết kết bởi chương trình ....................................97

Hình 4-3: Mẫu của kỳ thi sát hạch chuẩn kỹ sư Nhật Bản. ................................98

Hình 4-4: Mẫu đề thi Mạng không dây và an ninh mạng ...................................99

Hình PL-1: ảnh trước khi được làm xám ...........................................................105

Hình PL-2: ảnh sau khi được làm xám ...............................................................105

Hình PL-3: ảnh xám trước khi được chuyển thành ảnh nhị phân...................107

Hình PL-4: ảnh sau khi chuyển thành ảnh nhị phân với ngưỡng là 128.........107

Hình PL-5: Bài thi trong file ảnh bị lệch. ...........................................................108

Hình PL-6: Bài thi sau khi xoay sẽ không còn bị lệch. ......................................109

Hình PL-7: ảnh trước khi biến đổi tỉ lệ...............................................................110

Hình PL-8: ảnh sau khi biến đổi tỉ lệ còn 60% so với ảnh ban đầu .................110

Page 12: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 7 -

DANH MỤC CÁC BẢNG Bảng 3-1: Danh sách các lớp trong sơ đồ lớp .......................................................67

Bảng 3-2: Danh sách thuộc tính lớp Entity...........................................................67

Bảng 3-3: Danh sách phương thức lớp Entity ......................................................68

Bảng 3-4: Danh sách thuộc tính lớp Text .............................................................68

Bảng 3-5: Danh sách phương thức lớp Text.........................................................69

Bảng 3-6: Danh sách thuộc tính lớp TextCell.......................................................69

Bảng 3-7: Danh sách phương thức lớp TextCell ..................................................70

Bảng 3-8: Danh sách thuộc tính lớp TextField.....................................................70

Bảng 3-9: Danh sách phương thức lớp TextField ................................................71

Bảng 3-10: Danh sách thuộc tính lớp ChoiceElement .........................................71

Bảng 3-11: Danh sách phương thức lớp ChoiceElement.....................................72

Bảng 3-12: Danh sách thuộc tính lớp Choice .......................................................72

Bảng 3-13: Danh sách phương thức lớp Choice...................................................72

Bảng 3-14: Danh sách thuộc tính lớp AnswerCell ...............................................73

Bảng 3-15: Danh sách phương thức lớp AnswerCell...........................................74

Bảng 3-16: Danh sách thuộc tính lớp AnswerSheet.............................................74

Bảng 3-17: Danh sách phương thức lớp AnswerSheet ........................................75

Bảng 3-18: Danh sách thuộc tính lớp Line ...........................................................75

Bảng 3-19: Danh sách phương thức lớp Line.......................................................76

Bảng 3-20: Danh sách thuộc tính lớp Rect ...........................................................76

Bảng 3-21: Danh sách phương thức lớp Rect.......................................................77

Bảng 3-22: Danh sách thuộc tính lớp Ellipse........................................................77

Bảng 3-23: Danh sách phương thức lớp Ellipse ...................................................78

Bảng 3-24: Danh sách thuộc tính lớp ImageObj..................................................78

Bảng 3-25: Danh sách phương thức lớp ImageObj .............................................78

Bảng 3-26: Danh sách thuộc tính lớp Page ...........................................................79

Bảng 3-27: Danh sách phương thức lớp Page ......................................................79

Bảng 3-28: Danh sách thuộc tính lớp Key ............................................................79

Bảng 3-29: Danh sách phương thức lớp Key........................................................80

Bảng 3-30: Danh sách thuộc tính lớp AnswerKey ...............................................80

Page 13: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 8 -

Bảng 3-31: Danh sách phương thức lớp AnswerKey...........................................80

Bảng 3-32: Danh sách thuộc tính lớp Rate ...........................................................81

Bảng 3-33: Danh sách phương thức lớp Rate.......................................................81

Bảng 3-34: Danh sách thuộc tính lớp Estimation.................................................82

Bảng 3-35: Danh sách phương thức lớp Estimation............................................82

Bảng 3-36: Danh sách thuộc tính lớp Sentence ....................................................82

Bảng 3-37: Danh sách phương thức lớp Sentence................................................83

Bảng 3-38: Danh sách thuộc tính lớp Answer ......................................................83

Bảng 3-39: Danh sách phương thức lớp Answer..................................................83

Bảng 3-40: Danh sách thuộc tính lớp Recognition...............................................84

Bảng 3-41: Danh sách phương thức lớp Recognition ..........................................84

Bảng 3-42: Danh sách các trường trong bảng MauThi.......................................85

Bảng 3-43: Danh sách các trường trong bảng KyThi..........................................89

Bảng 3-44: Danh sách các trường trong bảng MonThi.......................................90

Bảng 3-45: Danh sách các trường trong bảng DeThi ..........................................90

Bảng 3-46: Danh sách các trường trong bảng BaiLam .......................................91

Bảng 3-47: Danh sách các trường trong bảng ThiSinh .......................................92

Bảng 4-1 : So sánh chấm bằng tay và chấm bằng máy......................................101

Page 14: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 9 -

LỜI MỞ ĐẦU

Hiện nay thi trắc nghiệm là một hình thức thi rất phổ biến tại các nước trên

thế giới. Nhờ vào đặc điểm luôn có sự rõ ràng của đáp án mà những tranh cãi nhọc

nhằn trong việc tính điểm được giảm đi rất nhiều. Điều này dẫn đến việc nâng cao

tính chính xác, khách quan trong việc đưa ra kết quả bài thi. Bên cạnh đó thời gian

để chấm từng bài thi trắc nghiệm là tương đối nhanh, cho nên sẽ làm tăng tính hiệu

quả trong việc tổ chức thi cử. Hình thức thi trắc nghiệm thường được áp dụng cho

các môn học thuộc lĩnh vực khoa học tự nhiên, các môn ngoại ngữ, tức những dạng

kiến thức không đòi hỏi ở khả năng tự luận.

Do đó, nền giáo dục của nước ta hiện nay đã ý định chuyển những môn thi

có thể sang hình thức trắc nghiệm vào năm 2007, 2008. Đối với Khoa Công Nghệ

Thông Tin cùng những Khoa khác của trường Đại Học Khoa Học Tự Nhiên TP.

HCM cũng vậy, việc chuyển đổi những môn thi thích hợp sang thi trắc nghiệm là

một quy luật tất yếu, nhằm có thể đánh giá chính xác hơn kiến thức của sinh viên

(tuy rằng đã có một số môn được áp dụng sang thi trắc nghiệm - chẳng hạn như

tiếng Anh, Hợp Ngữ...).

Mặc dù đã được ghi nhận nhiều về những ích lợi như vậy, thế nhưng, hình

thức thi này đến nay vẫn chưa thể được áp dụng rộng rãi tại Việt Nam. Các giải

pháp – bao gồm bộ thiết bị chuyên dụng và phần mềm đi kèm – thường có giá thành

khá cao, chỉ thích hợp cho các kỳ thi lớn và quan trọng. Ngoài ra, còn phải kể đến

sự cứng nhắc trong định dạng của các mẫu bài thi. Điều này có nghĩa rằng mẫu thi

phải cố định, đối với mỗi thiết bị chấm chỉ dùng được cho các mẫu có sẵn của riêng

thiết bị đó mà thôi.

Từ những bất cập như trên, giải pháp được luận văn lựa chọn là tận dụng các

thiết bị thường thấy trong điều kiện Việt Nam để áp dụng vào việc thi trắc nghiệm.

Đó chính là những chiếc máy tính cá nhân, máy scan đang được sử dụng rộng rãi

hàng ngày trong từng công sở, trường học, thậm chí ngay cả các hộ gia đình. Chúng

sẽ đóng vai trò như những thiết bị đầu vào và xử lý cho quá trình chấm thi. Khi sử

Page 15: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 10 -

dụng các thiết bị này, hình thức thi trắc nghiệm sẽ giảm được giá thành, cũng như

tăng thêm tính khả dụng, khi có thể áp dụng tại hầu hết mọi nơi tại Việt Nam.

Luận văn này gồm 4 chương có nội dung như sau:

o Chương 1. Tổng quan: giới thiệu bối cảnh, lý do thực hiện đề tài cũng

như các giải pháp hiện thời có liên quan, từ đó rút ra hướng tiếp cận của

luận văn để thực hiện đề tài.

o Chương 2. Cơ sở lý thuyết: trình bày sơ lược về các lý thuyết của xử lý

ảnh, của mạng nơron, cũng như ứng dụng của chúng trong đề tài.

o Chương 3. Thiết kế phần mềm: tài liệu phân tích và thiết kế chương

trình.

o Chương 4. Thực nghiệm, đánh giá và tổng kết: nêu đánh giá về toàn bộ

đề tài, trình bày những kết quả đã đạt được cũng như các hạn chế của đề

tài, từ đó đề xuất những hướng nghiên cứu trong tương lai.

Page 16: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 11 -

Chương 1: TỔNG QUAN

1.1 Yêu cầu thực tế và lý do thực hiện đề tài:

Trong những năm gần đây, việc thi cử luôn là một chủ đề thời sự rất được

quan tâm. Chuyện gian lận quay cóp trong các kỳ thi, kết quả điểm thi không chính

xác, thường theo ý kiến chủ quan của người chấm thi dẫn đến việc khiếu kiện, đáp

án kỳ thi tuyển sinh không nhất quán, rõ ràng, v.v..., hầu như năm nào cũng xảy ra,

gây nhiều bức xúc. Do đó, nhu cầu cần có một phương pháp thi – chủ yếu áp dụng

với các môn khoa học tự nhiên - cho kết quả chính xác hơn được đặt ra.

Trong bối cảnh đó, thi trắc nghiệm - dạng thi mà mỗi bài thi có một đáp án rõ

ràng kèm theo – là một giải pháp được nhắc đến. Đối với một kỳ thi trắc nghiệm

được tổ chức và quản lý tốt, minh bạch, kết quả thi của thí sinh sẽ khách quan,

không còn phụ thuộc nhiều vào người chấm bài nữa. Ngoài ra, việc chấm thi sẽ mau

lẹ.

Tuy nhiên, câu hỏi lại được đặt ra rằng: khi phương pháp thi trắc nghiệm có

những ưu điểm như vậy nhưng tại sao vẫn chưa được phổ biến ở Việt Nam. Bộ

Giáo Dục Việt Nam đã từng có ý định chuyển các môn thi thích hợp trong kỳ thi

tuyển sinh đại học sang hình thức thi trắc nghiệm, thế rồi đã phải dời lại cho đến tận

năm 2008, cột mốc mà đến giờ hiện vẫn còn chưa chắc chắn. Ngay như Khoa Công

Nghệ Thông Tin của trường Khoa Học Tự Nhiên của chúng ta, tuy đã áp dụng ở

một số môn như Tiếng Anh, Hợp Ngữ..., thi trắc nghiệm vẫn còn tương đối xa lạ.

Sau khi phân tích đi tìm các nguyên nhân, ta nhận thấy rằng dù đã từng áp

dụng thi trắc nghiệm ở một số môn tại nhiều nơi, thế nhưng nước ta vẫn còn thực

hiện cách thức chấm bài thủ công, nguyên nhân chính là do ở kinh phí. Và vì chấm

như vậy, cho nên kết quả được đưa ra rất chậm và đôi lúc còn chưa khách quan (do

người chấm nhầm lẫn trong lúc chấm ...), không đảm bảo được tính chính xác như

bản chất của hình thức thi trắc nghiệm. Trong khi đó, để có thể chấm tự động, đòi

Page 17: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 12 -

hỏi phải có thiết bị chuyên dụng với giá thành tương đối cao (vì thường có giải pháp

phần mềm riêng đi kèm). Muốn vậy, kỳ thi phải lớn và thu lệ phí đầu vào cao. Điều

này là không khả thi trong điều kiện của Việt Nam. Tiếp nữa, các mẫu bài thi có sẵn

cho các thiết bị chuyên dụng đó thường cố định, không khả chuyển, việc tạo ra các

mẫu mới là có nhưng khá khó khăn, phức tạp và tốn kém. Do vậy, đòi hỏi cần có

một giải pháp giải quyết toàn diện các bất cập đó là một đòi hỏi chính đáng.

1.2 Mục tiêu của đề tài:

Mục tiêu của đề tài là nhằm đưa ra một giải pháp cho phép tổ chức thi trắc

nghiệm, sao cho giá thành rẻ, có thể áp dụng ngay vào các trường học, chẳng hạn

như Khoa Công Nghệ Thông Tin của chúng ta. Ngoài ra, giải pháp còn phải cho

phép khả năng tạo lập, chỉnh sửa các biểu mẫu thi để phù hợp với nhu cầu trong

từng môn thi của mỗi kỳ thi.

1.3 Giải pháp hiện có:

Tại Việt Nam cũng như trên thế giới, các dụng cụ chuyên dụng dùng cho việc

thi trắc nghiệm đã có từ khá lâu, mà phổ biến nhất là máy chấm carbon dùng cho

các kỳ thi TOEFL hay IELTS. Đây là một thiết bị cho phép chấm bài hàng loạt

nhưng yêu cầu bài thi phải theo mẫu cố định ứng với máy chấm bài và đòi hỏi phải

có thiết bị in ấn chuyên biệt đi kèm. Bài thi sau khi được in ấn và xử lý bởi thiết bị

in ấn chuyên dụng sẽ có hình dạng nhất định theo quy định sẵn của máy chấm, có

các đánh dấu carbon trên nhiều vị trí của bài thi. Máy chấm carbon nhờ vào những

thành phần chuyên dụng đo nồng độ carbon, sẽ xác định đựơc các vị trí đánh dấu.

Từ đó tính toán ra được các vị trí để lấy thông tin thí sinh cũng như xác định kết quả

bài thi. Tuy nhiên, để cho kết quả được chính xác, thí sinh khi làm bài trên các mẫu

thi này, cần phải dùng bút chì carbon.

Như ta đã thấy, các thiết bị này còn có khuyết điểm lớn là giá thành cao, do

phải đi kèm với nhiều thiết bị chuyên biệt khác, và độ khả chuyển kém. Ứng với

mỗi bài thi sẽ là một cặp máy chấm và máy in riêng biệt. Điều này không phù hợp

Page 18: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 13 -

với thực tế của Việt Nam ta khi mà thu nhập bình quân so với các nước khác còn

kém rất xa.

Ưu điểm và khuyết điểm của giải pháp dùng máy chấm carbon:

Ưu điểm: chấm rất nhanh và rất chính xác, thích hợp cho các kỳ thi lớn và

rất lớn.

Khuyết điểm: chỉ dùng cho một mẫu bài thi cụ thể đối với từng thiết bị chấm

và in chuyên biệt. Do thiết bị không phổ biến nên giá thành cao.

1.4 Hướng tiếp cận của luận văn

Giải pháp được đưa ra là sử dụng các thiết bị phổ biến sẵn có trong điều kiện

Việt Nam hiện nay như máy tính cá nhân, máy in và máy scan để giảm giá thành.

Trong giải pháp này, máy tính cá nhân sẽ đóng vai trò trung tâm, thực hiện việc

thiết kế các biểu mẫu, sau đó dùng máy in để in chúng ra. Máy tính cũng đồng thời

đóng vai trò thực hiện việc chấm điểm các bài thi thông qua thiết bị scan. Thiết bị

scan này có thể là máy scan thường thấy. Tuy nhiên trong thực tế, do số lượng bài

thi nhiều, cần được chấm điểm toàn bộ, nên thiết bị scan được khuyến khích là các

máy scan có chức năng cho phép scan hàng loạt. Ngoài ra, vì không dùng thiết bị in

ấn chuyên biệt, nên việc in màu cho bài thi là không khả thi. Giải pháp đưa ra sẽ là

dùng máy in đen trắng in hàng loạt, hoặc tiết kiệm chi phí hơn bằng cách in bản

mẫu và dùng máy photocopy để sao chép ra.

Vì dùng máy scan, nên việc bắt buộc bài thi đầu vào để chấm điểm phải đặt

chính xác vị trí quy định là điều không khả thi. Bài thi sẽ được chấm chính xác khi

scan lệch không quá 5 độ. Từ các vị trí đánh dấu góc của bài thi được nhận dạng,

máy tính sẽ tính ra được các vị trí khác cần thiết trong bài nhờ vào các thông tin

trong bản mẫu thiết kế - hay còn gọi là mẫu chấm bài.

Tuy nhiên, do giải pháp này không dùng các thiết bị chuyên dụng để chấm bài,

nên các bài thi đầu vào cho máy tính sẽ không được chuẩn, từ đó việc chấm bài sẽ

tốn khá nhiều thời gian cho việc chuẩn hoá lại bài thi (thông qua nhận dạng) cũng

Page 19: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 14 -

như kết quả chấm sẽ có lúc không được chính xác hoàn toàn như khi thực hiện bằng

thiết bị chuyên dụng.

Các ưu điểm và khuyết điểm của giải pháp mà luận văn đã chọn:

Ưu điểm: giá thành cho thiết bị sẽ rẻ hơn, do đã có sẵn. Các mẫu bài thi

cũng khả chuyển hơn, được thiết kế tuỳ theo nhu cầu của người dùng, có

khả năng ứng dụng tại bất kỳ nơi nào miễn có các thiết bị thông thường

như máy in, máy scan và máy tính cá nhân.

Khuyết điểm: chấm điểm chậm hơn các máy chuyên dụng, và không được

chính xác bằng. Không khả thi với các kỳ thi quá lớn vì chi phí cho việc

quét tất cả các bài thi là rất cao.

Phần mềm cần thực hiện 2 nhiệm vụ chính: thiết kế các biểu mẫu và chấm

điểm tự động bài thi.

Dựa vào các mẫu đề thi trắc nghiệm có sẵn (TOEFL, TOEIC, IELTS...), ta

nhận thấy những công việc chính yếu trong việc thiết kế một bài thi trắc nghiệm bao

gồm: chỉnh sửa trình bày bài thi; lưu và đọc lại các mẫu đã tạo; soạn đáp án; thực

hiện in mẫu. Giải pháp dùng công nghệ XML được cân nhắc chọn lựa.

Trong khi đó, đối với công việc chấm thi, ta cần thực hiện: chỉnh sửa ảnh bài

thi đầu vào theo một chuẩn quy định; thực hiện các xử lý trên từng vùng của ảnh để

phân tích thông tin như kiểm tra tô, nhận dạng chữ viết tay; so với đáp án có sẵn để

cho ra kết quả; lưu kết quả vào database.

1.5 Nội dung thực hiện của đề tài:

Các công việc chính của đề tài bao gồm:

Thu thập và tìm hiểu về các mẫu bài thi trắc nghiệm thông dụng như

TOEFL, IELTS... từ đó đưa ra các phần thường được dùng đi dùng lại trong

bài thi.

Page 20: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 15 -

Phân tích, thiết kế và thực thi viết mã lệnh cho các thành phần của chương

trình tạo biễu mẫu bài thi trắc nghiệm.

Phân tích, xây dựng và tổ chức cơ sở dữ liệu để lưu trữ thông tin của mẫu bài

thi cũng như các đáp án đi kèm với mẫu bài thi đó.

Tìm hiểu các lý thuyết về xử lý ảnh, về nhận dạng giúp chuẩn hoá và đưa ra

kết quả cho các bài thi.

Tìm hiểu và ứng dụng mạng nơron trong việc nhận dạng chữ viết tay in từ

các bài thi.

Chương tiếp theo sẽ bàn về các lý thuyết được ứng dụng trong việc xây dựng

chương trình.

Page 21: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 16 -

Chương 2: CƠ SỞ LÝ THUYẾT

Với hướng tiếp cận cho luận văn như đã được trình bày ở chương trước, ta

nhận thấy phần mềm cần được chia ra làm 2 phần: phần thiết kế, tạo lập các biểu

mẫu thi trắc nghiệm và phần chấm điểm tự động các bài thi trắc nghiệm.

Hình 2-1: Mô hình chung cho toàn bộ phần mềm

Sau đây, ta sẽ đi sâu vào nghiên cứu các lý thuyết ứng dụng cho từng phần.

Page 22: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 17 -

2.1 Lý thuyết cho phần thiết kế biễu mẫu thi trắc nghiệm:

2.1.1 Phân tích các thành phần trên biểu mẫu trắc nghiệm:

Sau đây là một số mẫu thi trắc nghiệm mà chúng em đã thu thập được:

- Mẫu bài thi của kỳ thi TOEFL:

Page 23: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 18 -

Hình 2-2 : Mẫu bài thi TOEFL

Page 24: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 19 -

- Mẫu thi của kỳ thi sát hạch kỹ sư chất lượng Nhật Bản:

Hình 2-3: Mẫu thi của kỳ thi sát hạch Nhật Bản

Page 25: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 20 -

Sau khi quan sát các biểu mẫu thi trắc nghiệm của một số kỳ thi chúng em có

nhận xét rằng một biểu mẫu thường gồm có những thành phần sau:

a) Phần thông tin thí sinh:

Phần này dành cho thí sinh ghi thông của mình, nó bao gồm các đối

tượng sau:

i) Text: dùng để viết tiêu đề hay văn bản

Hình 2-4: Phần văn bản trong đề thi mẫu

ii) TextField: dùng để ghi tên, ngày sinh hay mã số thí sinh…

Page 26: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 21 -

Hình 2-5: Phần ghi tên thí sinh trong đề thi mẫu

Hình 2-6: Phần ghi mã số thí

sinh trong đề thi mẫu

iii) Choice: phần lựa chọn

Hình 2-7: Phần lựa chọn giới tính trong đề thi mẫu

Page 27: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 22 -

b) Phần trả lời câu hỏi:

Đây là nơi thí sinh đánh dấu câu trả lời của mình. Nó có dạng như hình

sau:

Hình 2-8: Phần trả lời câu hỏi của thí sinh trong đề thi mẫu

c) Các phần khác:

Qua hình minh họa trên ta nhận thấy trên các biểu mẫu có thêm đường

viền đen. Các đối tượng này đóng vai trò là lề của biểu mẫu, điều này giúp ích

rất nhiều cho quá trình chấm điểm được chính xác hơn.

Ngoài những thành phần nêu trên chúng ta còn thấy trên đề còn có một số đối

tượng đồ hoạ như: đường thẳng, hình chữ nhật, hình tròn…

2.1.2 Tổ chức dữ liệu để biểu diễn và lưu trữ biểu mẫu.

Thiết kế biểu mẫu là một phần của hệ thống, nó không chỉ có nhiệm vụ tạo ra

những mẫu bài thi trắc nghiệm mà còn có nhiệm vụ cung cấp thông tin về mẫu bài

thi đó cho quá trình nhận dạng sau này. Do đó việc tổ chức lưu trữ như thế nào cũng

Page 28: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 23 -

là vấn đề hết sức quan trọng. Ngày nay công nghệ XML đang phát triển rất mạnh và

đang được áp dụng rất rộng rãi. Ngoài việc giúp cho định nghĩa một đối tượng có

cấu trúc được rõ ràng, nó còn có khả năng chuyển đổi sang các hệ thống khác một

cách dễ dàng. Và đó cũng là lý do mà chương trình chọn cách lưu trữ có sử dụng

XML. [5]

Mỗi biểu mẫu được xem là một “Document” gồm nhiều trang “Page”. Mỗi

trang lại gồm các đối tượng khác. Dựa theo phân tích các đối tượng như trên thì ta

có thể lưu trữ biểu mẫu theo cấu trúc như sau (chi tiết sẽ được đề cập sau).

<Document>

<Page>

<Text/>

<Text/>

<TextField/>

<AnswerSheet/>

<AnswerSheet/>

<Line/>

<Rect/>

<Ellipse/>

</Page>

<Page>

</Page>

</Document>

Page 29: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 24 -

2.2 Lý thuyết cho phần chấm điểm tự động:

2.2.1 Tóm tắt quá trình thực hiện của phần chấm điểm tự động

Chương trình khi chấm điểm sẽ thực hiện một quá trình được tóm tắt như sau:

Đầu tiên, bài thi sau khi được làm xong, sẽ được quét đưa vào máy tính

xử lý. Ảnh lúc này là ảnh màu chiếm nhiều thông tin không cần thiết

cho việc chấm điểm, do đó trước khi chấm cần được làm xám và

chuyển thành ảnh nhị phân (tức ảnh trắng đen) để loại bỏ bớt các

thông tin dư thừa. Vì các máy scan hầu hết đều không có vị trí canh

chuẩn, nên ảnh bài thi đầu vào cho việc chấm điểm có thể sẽ bị lệch,

nghĩa là các vị trí cần chấm trong ảnh không chính xác so với mẫu

chấm bài, dẫn đến bài chấm sẽ bị sai.

Dựa vào các đánh dấu có sẵn ở 4 góc của bài thi được xác định bằng

thuật toán Hough Transform, máy sẽ tính được góc lệch của bài thi.

(Tuy nhiên, do ban đầu việc scan bị lệch nên phần rìa của bài thi sẽ bị

vùng đen. Nên để nhận dạng 4 góc đựơc chính xác, trước đó chương

trình cần chuyển vùng rìa đen sang trắng, tức loại bỏ vùng đen đó bằng

thuật toán tô màu. Để cải tiến tốc độ, thuật toán tô màu dựa theo

dòng quét cải tiến được sử dụng).

Sau khi tính được góc lệch của ảnh bài thi so với mẫu chấm bài,

chương trình sẽ áp dụng phép xoay ảnh, một trong các lý thuyết xử lý

ảnh, để chuyển bài thi về trạng thái đúng, tức ảnh bài thi không bị lệch

nữa. Lúc này, các vị trí đánh dấu của bài thi đã thay đổi, đều bị xoay

một góc như ảnh bài thi, chương trình sẽ thực hiện các phép tính xoay

để xác định lại vị trí hiện tại của các đánh dấu ở 4 góc. Tiếp đó, chương

trình sẽ thực hiện cắt bỏ các phần thừa ngoài vùng đánh dấu của bài thi,

chỉ lấy toàn bộ phần bên trong vùng đánh dấu. Kết quả ta đã có đựơc

một ảnh bài thi hoàn chỉnh có các vị trí chấm được xác định theo mẫu

Page 30: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 25 -

chấm bài chuẩn. Các bước trên là các giai đoạn làm chuẩn ảnh đầu vào

để việc chấm thi được chính xác.

Công việc tiếp theo là chấm điểm ảnh bài thi đã được chuẩn hoá theo

mẫu chấm tương ứng. Dựa vào các thông tin về các vị trí cần thiết (cho

việc rút trích thông tin thí sinh cũng như chấm điểm cho bài thi) từ bản

mẫu bài thi trong phần thiết kế, ta sẽ lấy ra các vùng ảnh cần được xử

lý (crop).

Tuỳ theo thông tin từ mẫu chấm, ta sẽ biết được vùng ảnh lấy ra cần

thực hiện hoặc việc xem xét có tô hay không, hoặc phức tạp hơn là

nhận dạng chữ viết tay in có trong vùng ảnh đó. Đối với trường hợp xét

một vùng ảnh là có được tô hay không thì công việc chỉ đơn giản là

xét xem mật độ điểm đen trong vùng ảnh đó có lớn hay nhỏ hơn một

ngưỡng nào đó do ta quy định sẵn từ trước. Tuy nhiên, đối với trường

hợp vùng ảnh chứa chữ viết tay in, công việc tương đối phức tạp hơn,

đòi hỏi phải áp dụng lý thuyết về mạng nơron để nhận dạng ký tự

được chứa trong vùng ảnh đang xét. Do mạng nơron có số đầu vào xác

định cụ thể, nên vùng ảnh cần nhận dạng phải được biến đổi tỉ lệ

(scale) lại cho phù hợp với đầu vào của mạng. Chi tiết về việc ứng

dụng mạng nơ ron sẽ được bàn rõ ở phần “Mạng nơ ron và ứng dụng

vào nhận dạng chữ viết tay in”.

Sau khi chấm xong, thông tin của bài làm vừa có sẽ được so với đáp án

để cho ra kết quả, đưa vào danh sách các bài thi đã chấm. Người dùng

có thể lưu lại danh sách kết quả này vào cơ sở dữ liệu để tiện việc xem

xét lại về sau.

Sau đây là sơ đồ mô tả tóm tắt quá trình chấm thi:

Page 31: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 26 -

Page 32: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 27 -

Hình 2-9: Sơ đồ tóm tắt quá trình chấm thi

2.2.2 Sơ Lược Các Lý Thuyết Về Xử Lý Ảnh Và Nhận Dạng

2.2.2.1 Xử lý ảnh:

2.2.2.1.1 Các thao tác xử lý ảnh cơ bản:

Trong phần chấm điểm tự động này, các thao tác xử lý ảnh được ứng dụng

bao gồm: làm xám ảnh (greyscale), chuyển ảnh sang ảnh nhị phân (threshold), xoay

ảnh, biển đổi tỉ lệ ảnh.

Ta nhận thấy, đối với đề tài nhận dạng bài thi trắc nghiệm cụ thể như yêu

cầu, màu sắc trong ảnh của bài thi là không cần thiết. Do đó, thực hiện việc chuyển

Page 33: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 28 -

đổi từ ảnh màu sang ảnh xám rồi sang ảnh nhị phân là nhằm đơn giản hoá, loại bỏ

các thông tin dư thừa và chuẩn hoá đầu vào của chương trình, giúp quá trình xử lý

của chương trình được gọn nhẹ và nhanh hơn.

Tiếp đến, do bài thi của thí sinh khi được quét vào máy để chấm sẽ xảy ra

trường hợp bài thi bị đặt nghiêng trong máy scan, dẫn đến bài thi trong ảnh đầu vào

không được vuông góc như trong bản thiết kế mà sẽ bị nghiêng một góc bất kỳ.

Việc ứng dụng xoay ảnh ở đây nhằm xoay bài thi lại cho vuông góc như trong mẫu

thiết kế.

Cuối cùng, vì chương trình cho phép các file ảnh đầu vào có kích thước bất

kỳ, nên việc biến đổi tỉ lệ ảnh là cần thiết nhằm giúp chuyển các vùng cần nhận

dạng hay xử lý về một chuẩn chung, cụ thể là về một kích thước chung (chẳng hạn

vùng viết chữ tay cần nhận dạng sẽ được scale lại thành ảnh có kích thước 16x16 để

phù hợp với đầu vào của mạng nơrôn ứng dụng cho việc nhận dạng chữ viết tay -

xem ở phần nhận dạng chữ viết tay).

Chi tiết về các thao tác này được bàn rõ ở phần phụ lục.

2.2.2.1.2 Tô màu bằng thuật toán dựa theo dòng quét cải tiến

Các định nghĩa:

Một vùng tô bao gồm đường biên và vùng bên trong. Đường biên là

một đường khép kín, ví dụ như đa giác.

Tô màu là thao tác tìm các điểm sáng “nằm bên trong” một vùng tô.

Tô dựa theo dòng quét (scan line) là tô màu theo dòng điểm sáng trên

màn hình.

Cách thực hiện:

Thuật toán tô màu dựa theo đường biên: [2]

Đường biên trong thuật toán này được mô tả bằng một giá trị duy nhất

là màu của tất cả các điểm thuộc về đường biên.

Bắt đầu từ điểm nằm bên trong vùng tô, ta sẽ kiểm tra các điểm lân cận của

nó đã được tô màu hay có phải là điểm biên hay không, nếu không phải là

Page 34: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 29 -

điểm đã tô và không phải là điểm biên, ta sẽ tô màu nó. Quá trình này được

lặp đi lặp lại cho đến khi nào không còn tô được điểm nào nữa thì dừng.

Bằng cách này, toàn bộ các điểm thuộc vùng tô được kiểm tra và sẽ được tô

hết.

Hình 2-10: quá trình thực hiện của thuật toán tô màu dựa theo đường biên

Tuy nhiên, do thuật toán này khi cài đặt có tính đệ quy, thường dẫn

đến tràn bộ nhớ đối với vùng tô khá lớn. Cho nên, để cải tiến, ta sẽ tiến hành

loang dần và lần lượt tô từng đoạn giao theo dòng quét ngang thay vì tô theo

các điểm lân cận (chẳng hạn 4 điểm lân cận). Đó chính là thuật toán tô màu

dựa theo dòng quét cải tiến được trình bày ngay sau đây.

Thuật toán tô màu theo dòng quét cải tiến:

Giới thiệu ý tưởng:

Lưu lại thông tin của điểm bắt đầu mỗi đoạn giao nhau của dòng quét

ngang thay vì phải lưu hết tất cả các điểm lân cận chưa được tô xung quanh

điểm hiện hành. Việc tô màu được thực hiện loang theo các dòng quét từ

điểm bắt đầu hướng lên biên trên, sau khi tô xong, lại theo hướng xuống biên

dưới. Ứng với mỗi dòng quét ngang, ta sẽ loang và tìm pixel trái nhất để lưu

lại.

Chi tiết thuật toán:

Từ một điểm bất kỳ nằm trong vùng cần tô:

Page 35: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 30 -

B1: ta tìm điểm bên trái nhất trong vùng cần tô của dòng kề trên và dòng kề

dưới điểm đang xét tính từ vị trí của điểm đang xét (miễn các dòng kề trên và

dòng kề dưới này vẫn nằm trong vùng cần tô). Các điểm trái nhất đó, ta đưa

vào một danh sách chờ theo thứ tự định sẵn (chẳng hạn điểm nằm trên trước

rồi điểm nằm dưới sau) miễn các điểm đó không trùng với các điểm đã có

trong danh sách chờ.

B2: Ta lại tiếp tục xét cho điểm kề bên phải của điểm đang xét. Nếu đã đến

đường biên thì nhảy sang B3, còn ko thì quay lại B1.

B3: Ta lấy phần tử được đưa vào sau cùng của danh sách chờ rồi lại quay trở

về B1 làm tương tự như trên. Nếu danh sách chờ hết phần tử thì đã tô xong

vùng cần tô, thuật toán kết thúc.

Ví dụ minh hoạ:

Trong hình 2.10 sau, đoạn giao đầu tiên chứa điểm bắt đầu (tô màu

trắng) sẽ được tô trước). Sau đó các vị trí 1, 2 ứng với các đoạn giao của các

dòng quét kế tiếp sẽ được lưu lại.

Hình 2-11

Bước tiếp theo (hình 2.11), điểm ứng với vị trí 2 sẽ được lấy ra và tiến

hành tô màu bằng cách loang từ điểm này ra theo chiều ngang, sau đó pixel

ứng vị trí 3 của dòng quét kế tiếp sẽ được lưu lại.

Page 36: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 31 -

Hình 2-12

Sau khi dòng quét ứng với điểm 3 đã được xử lý tương tự như trên

xong, stack lưu các vị trí của các điểm “hạt giống” cho các dòng quét kế tiếp

như trong hình 2.12.

Hình 2-13

Hình 2.13 minh hoạ khi thuật toán đã tô được toàn bộ một phần vùng

phía trên bên phải của vùng tô. Khi pixel ứng với vị trí 5 được xử lý xong, ta

có phần còn lại phía trên bên trái sẽ được tô. Sau đó pixel ứng với vị trí 4 sẽ

được xử lý, các dòng quét phía dưới sẽ được tô tiếp theo.

Page 37: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 32 -

Hình 2-14

Ý nghĩa:

Thuật toán tô màu dựa theo dòng quét cải tiến được dùng để tô màu 4 góc

của ảnh bài thi khi mới vừa được đưa vào chấm. Vì ảnh của bài thi ban đầu có phần

rìa xung quanh mày đen, mà nếu cứ để như vậy rồi nhận dạng các ký hiệu định sẵn

ở bốn góc sẽ dẫn đến nhận dạng sai vị trí các ký hiệu đó.

Vì vậy, ta phải dùng thuật toán tô màu để tô trắng các vùng đen ở bốn góc

giúp việc nhận dạng đựơc chính xác. Để giúp giảm bớt thời gian thực hiện của

chương trình, trong tình huống cụ thể này, ta đã áp dụng thuật toán tô màu quét

dòng cải tiến giúp việc tô màu được nhanh hơn, không tốn nhiều tài nguyên.

2.2.2.2 Nhận dạng:

2.2.2.2.1 Nhận dạng bốn góc của bài thi bằng thuật toán Hough

Transform

Thuật toán Hough Transform cơ bản [3] :

Dẫn nhập:

Page 38: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 33 -

Xét trường hợp cần nhận dạng các đường thẳng bất kỳ trong một ảnh nhị phân

(với các hình ảnh trên hình được quy định có màu đen):

- Ta biết rằng với mỗi điểm đen bất kỳ trong không gian ảnh sẽ có vô số các

đường thẳng đi qua điểm đó.

- Ta lại biết rằng mọi đường thẳng đều có thể biểu diễn được bằng phương

trình sau:

y = mx + b

với m và b là 2 số thực bất kỳ, trong đó m xác định góc của đường thẳng so

với trục hoành và b xác định vị trí đường thẳng cắt với trục tung.

Do đó, với một cặp điểm đen (x1,y1) xác định bất kỳ, ta sẽ có thể tìm ra được

vô số cặp (m,b) ứng với các đường thẳng có thể đi qua điểm (x1,y1) đó, sao cho m

và b thoả điều kiện sau:

b = y1 – mx1

Thuật toán Hough Transform cơ bản được thực hiện dựa trên ý tưởng

như sau:

Mỗi cặp điểm (x,y) trong ảnh sẽ xác định trong không gian (m,b) một đường

thẳng duy nhất tương ứng với cặp điểm (x,y) đó. Đường thẳng này giúp xác định

các cặp điểm (m,b) mà giá trị của chúng giúp tạo nên các đường thẳng trong ảnh mà

đi qua được cặp điểm (x,y). Với nhiều cặp điểm (x,y) sẽ xác định nhiều đường

thẳng tương ứng trong không gian (m,b). Như vậy, trong không gian (m,b), nếu tại

điểm (m,b) nào mà có số đường thẳng đi qua vị trí đó trong không gian (m,b) lớn

hơn một giá trị cụ thể (tuỳ theo quy định chiều dài của đường thẳng lớn hơn bao

nhiêu thì là được cho là đường thẳng), thì cặp giá trị (m,b) của điểm đó chính là 2

giá trị xác định nên một trong những đường thẳng cần được tìm thấy trong ảnh.

Các bước thực hiện:

Page 39: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 34 -

Cho mảng 2 chiều (m,b). Giá trị tại một vị trí trong mảng cho biết số lần

đường thẳng được tạo bởi cặp giá trị (m,b) tương ứng với vị trí đó xuất hiện trong

ảnh.

B1: quét qua tất cả các điểm cần xét trong ảnh.

B2: với mỗi điểm được xét, ta sẽ tính các cặp giá trị (m,b) thoả các đừơng

thẳng đi qua điểm đó. Từ đó, ta tăng giá trị tại các vị trí (m,b) tương ứng trong

mảng 2 chiều mô tả không gian (m,b) đó lên 1 đơn vị.

B3: sau đó xét tất cả các phần tử trong mảng 2 chiều mô tả không gian (m,b)

đó, nếu tại phần tử nào mà có giá trị lớn hơn chiều dài quy định cần thiết để tạo nên

một đường thẳng thì ta sẽ nhận dạng được một đường thẳng y = mx + b trong đó

m,b xác định nhờ vào vị trí của phần tử đó.

Cải tiến cho thuật toán Hough Transform cơ bản áp dụng cho việc nhận

dạng các đường thẳng:

Trong phần trên, ta thấy m, b trong công thức b = y – mx không bị giới hạn.

Điều này có nghĩa rằng, khi m đến lên vô cực thì b cũng tương ứng đến vô cực. Do

đó, việc sử dụng mảng 2 chiều (là có giới hạn) để mô tả không gian (m,b) (không có

giới hạn), điều này là không tưởng trong việc lập trình. Ngoài ra, theo quy định, chỉ

số của mảng không được âm.

Do đó, ta cần một công thức thay thế cho công thức biễu diễn đường thẳng:

y = mx + b

sao cho việc xác định các tham số (như m và b chẳng hạn) nằm trong một

khoảng giới hạn xác định.

Và công thức đó là:

x*cosA + y*sinA = B

Page 40: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 35 -

Hình 2-15

trong đó:

- A là số độ của góc đuợc tạo bởi đường thẳng và trục hoành, giá trị kiểu số

thực.

- B là khoảng cách từ đường thẳng đó đến gốc toạ độ (áp dụng trong đề tài

là góc trên trái của ảnh), kiểu số thực.

Công thức này cũng có thể biễu diễn mọi đường thẳng bất kỳ trong không

gian 2 chiều như công thức y = mx + b nhưng 2 tham số A và B của nó có giới hạn

trong ảnh 2 chiều:

- A nằm trong khoảng từ -89 độ -> 90 độ.

- Vì thuật toán được áp dụng cho ảnh 2 chiều, nên B được giới hạn từ 0 ->

chiều dài đường chéo của ảnh.

Để dùng mảng 2 chiều mô tả không gian (A,B) tương tự như không gian

(m,b), bắt buộc A và B phải đựơc làm tròn đến một đơn vị nào đó, dẫn đến sai số

trong việc xác định chính xác đường thẳng. Tuỳ theo độ chính xác đựơc yêu cầu mà

A sẽ đựơc tính làm tròn tới 1 đơn vị hay nữa đơn vị, thậm chí thấp hơn nữa.

Ví dụ, đối với đường thẳng mà tham số A chỉ cần chính xác ở 1 đơn vị, thì

mảng 2 chiều ta cần tạo sẽ có chiều dài chiều A là 180. Nhưng nếu tham số A cần

chính xác đến nữa đơn vị (0,5) thì mảng 2 chiều cần tạo sẽ phải có chiều dài là

180/0,5=360. Tương tự, với độ chính xác n thì chiều dài chiều A sẽ là 180/n.

Ngoài ra, do mảng có chỉ số không được âm, nên thay vì A có giá trị từ -89

đến 90 độ, ta chuyển sang giá trị tương ứng từ 0 -> 179 (với 0 thực chất tương ứng

cho -89, 90 tương ứng cho 179...)

Page 41: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 36 -

Như vậy, ta sẽ áp dụng thuật toán Hough Transform để nhận dạng đường

thẳng tương tự như phần đã trình bày ở trên, chỉ thay công thức:

y = mx + b

bằng

x*cosA + y*sinA = B

cũng như thay các tham số m, b bằng A và B.

Ví dụ minh họa:

Hình 2-16

Ta có 5 điểm 1, 2, 3, 4, 5 với vị trí trong không gian x, y như trên.

Page 42: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 37 -

Hình 2-17

Trong không gian (A,B), tập hợp các đường thẳng đi qua mỗi điểm sẽ

hình thành nên một đường hình sin tương ứng.

Hình 2-18

Ta thấy, giao điểm có tên là dòng 1 chính là giao điểm của 3 đường sin của 3

điểm 1, 3, 5. Cho nên, giao điểm dòng 1 chính là nơi mang giá trị cặp (A,B) hình

thành nên đường thẳng đi qua 3 điểm 1, 3 và 5 trong không gian (x,y).

Tương tự, giao điểm tên dòng 2 chính là nơi mang cặp giá trị (A,B) tạo nên

đường thẳng đi qua 3 điểm 2, 3, 4 trong không gian (x,y).

Page 43: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 38 -

Áp dụng cho đề tài, ý nghĩa:

Thuật toán Hough Transform trong đề tài được áp dụng cho các vùng ảnh

trích ra từ bốn góc của bài thi (bốn vùng ảnh này được lấy ra bằng thuật toán cắt ảnh

- crop). Thuật toán giúp nhận dạng 4 vị trí đánh dấu ở 4 góc của bài thi, từ đó xác

định vùng chấm thi phù hợp với mẫu chấm thi.

Page 44: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 39 -

2.2.2.2.2 Kiểm tra vùng tô

Định nghĩa:

Vùng tô là phần được giới hạn trong một ô tròn (các ô tròn này có rất nhiều

trên bài làm của thí sinh). Tùy theo cách làm bài của từng thí sinh mà mỗi ô tròn có

được tô hay không. Công việc kiểm tra vùng tô là xét xem trong một ô tròn nào đó

có được tô đen hay không. Tùy theo quy định của người lập trình mà số phần trăm

được tô đen trong vùng tô là bao nhiêu thì ô tròn được xem là đã tô.

Hình 2-19: khi chưa được tô

Hình 2-20: các dạng sau khi đã tô

Cách thực hiện:

Do vùng tô cần xét chỉ là một vòng tròn nhỏ trong ảnh bitmap, và khi xem

xét một ảnh bitmap thì ảnh đó luôn là hình chữ nhật. Cho nên đầu vào của vùng tô

cần kiểm tra là một hình vuông (được lấy ra từ ảnh bài thi) có đường tròn nội tiếp

chính là ô tròn đang xét.

Khi đó, ta có 2 cách để kiểm tra vùng tô xem có được tô hay chưa:

Cách thứ nhất:

Page 45: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 40 -

Ta sẽ quét tòan bộ vùng ảnh vuông đầu vào từ trái qua phải và từ trên

xuống dưới, xét xem số pixel đen chiếm bao nhiêu phần trăm trong tổng số

pixel của vùng ảnh đầu vào. Theo quy định như trong đề tài này, nếu số pixel

đen này chiếm hơn 60%, thì vùng tô đó đã đựơc tô đen, còn ngược lại là

chưa được tô.

Cách kiểm tra này độ chính xác không cao, vì xét cả những phần nằm

ngoài vùng tô. Tuy nhiên, do cài đặt dễ dàng và xử lý ít phức tạp (chỉ quét

một lần và theo thứ tự), tốc độ thực hiện nhanh hơn nên được áp dụng trong

đề tài.

Cách thứ hai:

Ta sẽ quét từ tâm hình vuông (còn là tâm của vòng tròn) dần lan ra

đến cạnh của hình vuông theo các đường tròn đồng tâm là tâm hình vuông.

Ta sẽ phân các vòng tròn thành 3 loại:

các vòng tròn nhỏ bên trong (ta quy định là các vòng tròn có

đường kính bằng nữa cạnh hình vuông trở xuống) gọi là T1.

các vòng tròn lớn bên trong (ta quy định là các vòng tròn có đuờng

kính lớn hơn nữa cạnh hình vuông đến bằng cạnh hình vuông) gọi là T2.

các vòng tròn bên ngòai (có đường kính lớn hơn cả cạnh hình

vuông) gọi là T3.

Hình 2-21: ảnh cần kiểm tra tô được phân thành 3 vùng

Page 46: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 41 -

Trong một điều kiện tối ưu, vùng ảnh vuông đầu vào sẽ có vòng tròn

cần xét tô nội tiếp với ảnh vuông đó. Nhưng trong thực tế thì vòng tròn tô

trong vùng ảnh vuông đầu vào sẽ bị lệch, do đó các vòng tròn nhỏ T1 sẽ có

khả năng nằm trong vùng cần tô nhiều hơn là T2, và các vòng tròn T2 lại có

khả năng nhiều hơn T3. Do đó, pixel thuộc vòng tròn T1 sẽ góp phần nhiều

hơn so với các pixel thuộc T2 vào việc quyết định xem vùng tô có được tô

hay không. Điều này cũng tương tự cho các pixel thuộc vòng tròn T2 so với

T3. Vì vậy, độ ưu tiên của các pixel thuộc các vòng tròn sẽ được quy định

theo thứ tự lần lượt như sau: T1, T2, T3.

Ta có công thức sau:

Giá trị của vùng tô = ( Tổng số pixel T1 đen * độ ưu tiên

của T1 ) + ( Tổng số pixel T2 đen * độ ưu tiên của T2 ) + ( Tổng số

pixel T3 đen * độ ưu tiên T3 ) (1)

Như vậy, khi vùng tô được tô hoàn toàn trong điều kiện tối ưu (tức

ảnh đầu vào hình vuông chứa ô tròn cần tô nội tiếp ảnh), ta có:

Giá trị cho thấy vùng tô được tô hoàn toàn = ( Tổng số pixel

T1 * độ ưu tiên của T1 ) + ( Tổng số pixel T2 * độ ưu tiên của T2)

Do đó, chỉ gần đúng, ta đưa ra được thuật toán cho phép quyết định

xem vùng tô có được tô hay không bằng cách:

• Tính giá trị vùng tô áp dụng công thức (1).

• Nếu giá trị vùng tô > (60% * Giá trị vùng tô được tô hoàn toàn)

thì

o ô tròn đã được tô đen

• ngược lại

o ô tròn chưa đựơc tô.

Phương pháp này có độ chính xác cao hơn trong các trường hợp ảnh

vuông đầu vào có vùng tô bị lệch, tuy nhiên do cài đặt phức tạp, xử lý tính

toán nhiều hơn (phải tính từ tâm của hình tròn rồi lan dần sang xung quanh)

Page 47: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 42 -

có thể làm ảnh hưởng đến tốc độ chung của chương trình nên không được áp

dụng cho đề tài.

2.2.2.2.3 Mạng nơ ron và ứng dụng vào nhận dạng chữ viết tay in

Giới thiệu về mạng nơ ron:

Mạng nơron là công cụ dùng để tìm gần đúng nhất bài giải của một vấn đề

bất kỳ mà không cần quan tâm đến nội dung chi tiết bên trong của bài toán. Để làm

được điều này, mạng nơron cần phải trải qua một quá trình, gọi là quá trình học

được thực hiện lặp đi lặp lại trên tập mẫu có sẵn. Sau khi được học xong, mạng

nơron có thể giải quyết các vấn đề liên quan đến bài toán đã cho cũng như các bài

toán cùng loại tương tự với độ chính xác chấp nhận được.

Mạng nơron được ứng dụng trong các bài toán nhận dạng, phân lớp như nhận

dạng mặt người, nhận dạng ký tự...

Lý thuyết về mạng nơron được bàn đến trong phần Phụ Lục.

Áp dụng:

Đối với đề tài luận văn này, việc áp dụng mạng nơron [1] để nhận dạng ký tự

được thực hiện như sau:

Thông thường, mạng nơron dùng để nhận dạng ký tự sẽ cho biết ký tự đang

xét là ký tự gì. Tuy nhiên, do ở đây, ký tự được xác định song song bằng nhận dạng

đi kèm với việc kiểm tra vị trí tô của ký tự tương ứng trong bài làm của thí sinh.

Cho nên, để đơn giản vấn đề, ta sẽ: xác định ký tự được chọn bằng cách dựa vào vị

trí tô của ký tự trong bài thi trước; rồi từ đó xác định xem ký tự viết tay có đúng là

ký tự đó hay không.

Như vậy, giờ đây vấn đề đã đơn giản hơn. Ta sẽ tạo ra tổng cộng là 36 mạng

nơron, mỗi mạng được áp dụng riêng cho từng chữ cái hoặc chữ số. Với mỗi mạng

nơron này, chỉ cần một nút xuất duy nhất để cho biết đúng ký tự đó hay không.

Page 48: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 43 -

Cấu tạo của dạng mạng nơ ron:

Như đã phân tích ở trên, các mạng nơ ron này được sử dụng để xét xem một

ký tự có phải là ký tự cần tìm hay không.

Do đó, các mạng nơ ron này sẽ có cấu tạo tương tự nhau. Mỗi mạng sẽ gồm

3 lớp: lớp nút nhập, lớp nút ẩn và lớp nút xuất. Mạng sẽ không có đường nối trực

tiếp từ lớp nhập đến lớp xuất. Đầu vào của mạng sẽ là vùng ảnh chứa ký tự đã được

biến đổi theo tỉ lệ chuẩn 16x16, đầu ra duy nhất cho biết giá trị là đúng hay sai

(đúng khi lớn hơn 0,5, sai khi ngược lại). Vì vậy, mạng có 256 nút nhập, 1 nút xuất.

Số nút ẩn được chọn là 3.

Sơ đồ cấu tạo của mạng như sau:

Hình 2-22: cấu tạo của mạng nơ ron được áp dụng cho đề tài

Thực nghiệm:

Mỗi mạng nơ ron được học trên 4644 mẫu (bao gồm tất cả các ký tự), trong

đó số mẫu đúng (chứa ký tự áp dụng cho từng mạng) là 129, còn lại là các mẫu sai.

Mỗi mạng được học trong khoảng thời gian hơn 4 tiếng.

Kết quả:

Page 49: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 44 -

Một số mạng có tỉ lệ nhận dạng đúng là 80%.

Tuy nhiên, đa số chỉ đạt được 70%.

Đánh giá:

Mạng cần phải được học trên nhiều mẫu hơn nữa để có thể áp dụng thực tế.

Page 50: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 45 -

Chương 3: THIẾT KẾ CHƯƠNG TRÌNH

3.1 PHÂN TÍCH:

Ta đã phân tích các thành phần của một biểu mẫu thi ở trên nên ở đây chỉ nói

đến phần chấm điểm tự động. Đây là phần chính yếu của đề tài. Chương trình sẽ

nhận vào một bản scan của một bài thì sau đó sẽ đọc ra thông tin của thí sinh cùng

với kết quả bài làm của thí sinh đó. Sau đó tùy vào cách tính điểm mà sẽ cho điểm

thí sinh đó.

Đối với từng loại đối tượng mà ta sẽ có cách đọc thông tin khác nhau:

TextField: đối với đối tượng này ta có 2 việc cần làm là xác định

thí sinh đã viết ký tự gì, và đã tô ký tự gì. Sau đó sẽ kiểm tra xem

chúng có khớp với nhau hay không.

Choice: ta xác định xem thí sinh đã tô phần lựa chọn nào.

AnswerSheet: ta cũng xác định thí sinh đã tô những câu trả lời

nào.

Tóm lại ta sẽ có các công việc chính là:

Xác định vị trí chính xác của từng đối tượng.

Kiểm tra xem một vùng có được tô hay không.

Nhận dạng một ký tự viết tay.

Hiện nay có 2 cách tính điểm phổ biến như sau:

Tính điểm theo câu: theo cách này thì mỗi câu đúng sẽ được số

điểm nào đó và kết quả điểm của bài làm chính là tổng số điểm

của tất cả các câu chọn đúng.

Page 51: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 46 -

Tính điểm theo khoảng: theo cách tính này thì người ta sẽ đếm số

câu trả lời đúng của thí sinh sau đó dựa vào bảng điểm đã quy

định trước mà cho điểm thích hợp cho thí sinh.

Ví dụ: số câu đúng từ 35 – 40: 10 điểm; từ 30 – 34: 9 điểm…

3.2 XÁC ĐỊNH YÊU CẦU:

Xây dựng hệ thống “Thiết kế và chấm điểm tự động bài thi trắc nghiệm” phải

hộ trợ các tính năng sau:

Thiết kế biểu mẫu:

Có đầy đủ các đối tượng cơ bản để tạo thành một đề thi: text,

textfield, choice, answersheet (bảng trả lời).

Có các đối tượng đồ hoạ.

In ấn.

Kết xuất thành file.

Soạn đáp án:

Soạn đáp án cho từng câu trả lời.

Soạn cách thức chấm điểm.

Chấm điểm biểu mẫu:

Điều khiển máy scan, và nhận bài làm từ máy scan.

Đọc thông tin thí sinh.

Kiểm tra và chấm điểm bài làm của thí sinh.

Quản lý các kỳ thi:

Quản lý thông tin kỳ thi, môn thi

Quản lý thí sinh.

Quản lý bài làm thí sinh

Page 52: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 47 -

3.3 XÂY DỰNG MÔ HÌNH USE-CASE:

[7] 3.3.1 Xác định Actor và Use-Case:

• Actor:

o NGUOIDUNG: (người dùng) thiết kế biểu mẫu và soạn đáp án.

• Use-case:

o THIETKEBIEUMAU: thiết kế biểu mẫu.

o SOANDAPAN: soạn đáp án

o CHAMDIEM: chấm điểm cho bài thi.

o QUANLYKYTHI: quản lý thông tin kỳ thi

o QUANLYMONHOC: quản lý thông tin môn học

o QUANLYTHISINH: quản lý thông tin thí sinh.

o QUANLYBAILAM: quản lý bài làm của thí sinh.

3.3.2 Mô hình Use-case:

Page 53: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 48 -

Hình 3-1: Mô hình Use-Case

3.3.3 Đặc tả Use-case:

3.3.3.1 THIETKEBIEUMAU:

• Tóm tắt:

Use case này mô tả cách thức người dùng thiết kế một biểu mẫu thi

trắc nghiệm.

• Luồng sự kiện:

o Luồng sự kiện chính:

Use case này bắt đầu khi người dùng tạo một biểu mẫu mới hay sữa

lại một biểu mẫu sẵn có.

1. Người dùng chọn tính năng soạn thảo biểu mẫu mới hay mở một

biễu mẫu cũ để sữa lại.

Page 54: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 49 -

A1: Có biểu mẫu chưa lưu.

- Nếu người dùng chọn tạo mới biều mẫu thì luồng sự kiện phụ

TAOMOI được thực hiện.

- Nếu người dùng chọn sữa lại biểu mẫu cũ thì luồng sự kiện phụ

SUABIEUMAU được thực hiện.

2. Người dùng chọn tính năng chọn đối tượng, thêm các đối tượng cơ

bản, các đối tượng đồ họa, xóa đối tượng, cập nhật đối tượng.

- Nếu người dùng chọn tính năng chọn đối tượng thì luồng sự

kiện phụ CHONDOITUONG được thực hiện.

- Nếu người dùng chọn tính năng thêm đối tượng cơ bản thì

luồng sự kiện phụ THEMDOITUONGCOBAN được thực hiện.

- Nếu người dùng chọn tính năng thêm đối tượng đồ họa thì

luồng sự kiện phụ THEMDOITUONGDOHOA được thực hiện.

- Nếu người dùng chọn tính năng xóa đối tượng thì luồng sự kiện

phụ XOADOITUONG được thực hiện.

- Nếu người dùng chọn tính năng cập nhật đối tuợng thì luồng sự

kiện phụ CAPNHATDOITUONG được thực hiện.

o Các luồng sự kiện phụ:

3.3.3.1.1 TAOMOI:

1. Hệ thống sẽ mở ra một trang hoàn toàn mới để người dùng bắt

đầu soạn thảo.

2. Trở về luồng chính, bước 2.

3.3.3.1.2 SUABIEUMAU:

1. Hệ thống sẽ hiện lên một danh sách các biểu mẫu cho người

dùng chọn.

Page 55: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 50 -

2. Người dùng chọn biểu mẫu cần sữa và xác nhận nó.

3. Trở về luồng chính, bước 2.

3.3.3.1.3 CHONDOITUONG:

1. Người dùng cung cấp một giá trị tọa độ.

2. Hệ thống sẽ kiểm tra xem tại vị trí đó có đối tượng nào hay

không.

- Nếu không có đối tượng nào thì đối tượng được chọn sẽ

là bản thiết kế (Page).

- Nếu có đối tượng tại vị trí đó: hệ thống sẽ kiểm tra xem

nút Ctrl có nhấn hay không?

+ Nếu không: tất cả các đối tượng hiện đang được

chọn sẽ bị bỏ chọn và đối tượng đó sẽ được chọn.

+ Nếu có: qua bước 3.

3. Nếu lúc đó chỉ có duy nhất một đối tượng được chọn thì các

thuộc tính của đối tượng đó sẽ được hiển thị lên màn hình.

4. Trở về luồng chính, bước 2.

3.3.3.1.4 THEMDOITUONGCOBAN:

1. Người dùng chọn đối tượng cần thêm bao gồm: Text, TextField,

Choice, AnswerSheet.

2. Người dùng cung cấp tọa độ của đối tượng.

3. Hệ thống sẽ thêm đối tượng mà người dùng đã chọn ở trên vào

vị trí đó trong bản thiết kế.

4. Những thuộc tính của đối tượng đó sẽ được hiển thị lên màn

hình.

3.3.3.1.4 THEMDOITUONGDOHOA:

Page 56: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 51 -

1. Người dùng chọn đối tượng cần thêm bao gồm: Line,

Rectangle, Ellipse.

2. Người dùng cung cấp tọa độ 2 điểm.

3. Hệ thống sẽ tạo ra đối tượng tương ứng mà người dùng đã chọn

trên dựa theo tọa độ 2 điểm đó và vẽ lên bản thiết kế.

4. Những thuộc tính của đối tượng đó sẽ được hiển thị lên màn

hình.

3.3.3.1.5 XOADOITUONG:

1. Người dùng chọn các đối tượng cần xóa (kích hoạt luồng

CHONDOITUONG).

2. Nếu không có đối tượng nào được chọn thì kết thúc luồng này.

3. Người dùng chọn tính năng xóa đối tượng.

4. Hệ thống sẽ xóa các đối tượng mà người dùng đã chọn trên ra

khỏi bản thiết kế.

3.3.3.1.6 CAPNHATDOITUONG:

1. Người dùng chọn đối tượng cần cập nhật (kích hoạt luồng

CHONDOITUONG).

2. Nếu không có đối tượng nào được chọn, hoặc có nhiều hơn một

đối tượng được chọn thì luồng này sẽ kết thúc.

3. Người dùng thay đổi thông tin thuộc tính của đối tượng đó (đã

được hiển thị lên màn hình nhờ luồng sự kiện chọn đối tượng).

Các thông tin này tùy thuộc vào từng loại đối tượng được chọn.

4. Thông tin về đối tượng sẽ được cập nhật.

5. Bản thiết kế sẽ được vẽ lại.

o Các luồng sự kiện khác:

Page 57: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 52 -

A1: Có biểu mẫu chưa lưu.

1. Hệ thống hỏi xem người dùng có muốn lưu lại biểu mẫu đang

thiết kế hay không?

Nếu người dùng trả lời “có” thì luồng sự kiện LUUBIEUMAU

được thực hiện.

2. Trở về luồng chính.

• Các yêu cầu đặc biệt:

Không có.

• Điều kiện tiên quyết:

Không có.

• Post-Conditions:

Nếu use case này thành công thì thông tin về biều mẫu trong hệ thống

sẽ thay đổi.

• Điểm mở rộng:

Không có.

3.3.3.2 SOANDAPAN:

• Tóm tắt:

Use case này cho phép người dùng soạn đáp án của một biểu mẫu nào

đó.

• Luồng sự kiện:

o Luồng sự kiện chính:

Use case này bắt đầu khi người dùng muốn tạo mới một đáp án, thay

đổi thông tin của đáp án cũ hay xóa một đáp án nào đó ra khỏi hệ thống.

Page 58: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 53 -

1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện

(thêm, xóa hay cập nhật thông tin đáp án).

2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các

luồng sau được thực hiện.

- Nếu người dùng chọn chức năng thêm thì luồng phụ

THEMDAPAN được thực hiện.

- Nếu người dùng chọn chức năng cập nhật thì luồng phụ

CAPNHATDAPAN được thực hiện.

- Nếu người dùng chọn chức năng xóa thì luồng phụ

XOADAPAN được thực hiện.

o Các luồng sự kiện phụ:

3.3.3.2.1 THEMDAPAN:

1. Hệ thống yêu cầu người dùng nhập vào thông tin đáp án như:

kỳ thi, môn thi, ngày thi, mẫu được sử dụng, đáp án đúng của

từng câu trả lời, thông tin về các tính điểm trong bài thi.

2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì đáp án

này được thêm vào hệ thống.

3.3.3.2.2 CAPNHATDAPAN:

1. Hệ thống hiển thị danh sách các đáp án hiện có trong hệ thống

cho người dùng và yêu cầu người dùng chọn đáp án cần sửa.

2. Người dùng chọn đáp án. Hệ thống sẽ hiển thị thông tin của đáp

án lên màn hình.

3. Người dùng dùng thay đổi các thông tin của đáp án.

4. Sau khi người dùng thay đổi thông tin xong thì hệ thống sẽ cập

nhật thông tin của đáp án này vào hệ thống.

Page 59: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 54 -

3.3.3.2.3 XOADAPAN:

1. Hệ thống hiển thị danh sách các đáp án hiện có trong hệ thống

cho người dùng và yêu cầu người dùng chọn đáp án cần xóa.

2. Hệ thống nhắc người dùng xác nhận thao tác xóa môn học.

3. Người dùng xác nhận xóa.

4. Hệ thống sẽ xóa thông tin của đáp án này ra khỏi hệ thống.

o Các luồng sự kiện khác:

Thao tác xóa bị hủy: nếu trong luồng phụ XOADAPAN người

dùng quyết định không xóa đáp án này nữa, thao tác xóa bị hủy

và dòng sự kiện chính được bắt đầu lại từ đầu.

• Các yêu cầu đặc biệt:

Không có.

• Điều kiện tiên quyết:

Không có.

• Post-Conditions:

Nếu use case thành công, thông tin môn học sẻ được thêm, cập nhật

hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.

• Điểm mở rộng:

Không có.

3.3.3.3 CHAMDIEM:

• Tóm tắt:

Use case này cho phép người dùng chấm điểm một bài làm của thí

sinh. (Bài làm này là ảnh được scan vào máy).

Page 60: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 55 -

• Luồng sự kiện:

o Luồng sự kiện chính:

1. Người dùng cho biết ảnh có chứa bài làm của thí sinh.

2. Người dùng chọn mẫu đã được sử dụng trong bài làm và đáp án của

bài làm đó.

3. Người dùng chọn chức năng chấm điểm.

4. Kết quả và thông tin về bài làm của thí sinh sẽ được hiển thị lên

màn hình.

o Các luồng sự kiện phụ:

Không

• Các yêu cầu đặc biệt:

Không có.

• Điều kiện tiên quyết:

Ảnh chứa bài làm của thí sinh phải được đọc vào và người dùng phải

chọn mẫu và đáp án của bài làm đó.

• Post-Conditions:

Không có.

• Điểm mở rộng:

Không có.

3.3.3.4 QUANLYKYTHI:

• Tóm tắt:

Use case này cho phép người dùng duy trì thông tin của kỳ thi trong

hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa kỳ thi ra khỏi hệ

thống.

Page 61: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 56 -

• Luồng sự kiện:

o Luồng sự kiện chính:

Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa

thông tin của kỳ thi ra khỏi hệ thống.

1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện

(thêm, xóa hay cập nhật thông tin kỳ thi).

2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các

luồng sau được thực hiện.

- Nếu người dùng chọn chức năng thêm thì luồng phụ

THEMKYTHI được thực hiện.

- Nếu người dùng chọn chức năng cập nhật thì luồng phụ

CAPNHATKYTHI được thực hiện.

- Nếu người dùng chọn chức năng xóa thì luồng phụ

XOAKYTHI được thực hiện.

o Các luồng sự kiện phụ:

3.3.3.4.1 THEMKYTHI:

1. Hệ thống yêu cầu người dùng nhập vào thông tin kỳ thi bao

gồm: tên kỳ thi, thời gian thi.

2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì kỳ thi

này được thêm vào hệ thống.

3.3.3.4.2 CAPNHATKYTHI:

1. Hệ thống hiển thị danh sách các kỳ thi có sẵn trong hệ thống lên

màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.

2. Người dùng chọn kỳ thi. Hệ thống sẽ hiển thị thông tin của kỳ

thi lên màn hình.

Page 62: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 57 -

3. Người dùng thay đổi các thông tin của kỳ thi.

4. Sau khi người dùng sửa thông tin xong thì hệ thống sẽ cập nhật

thông tin của kỳ thi này vào hệ thống.

3.3.3.4.3 XOAKYTHI:

1. Hệ thống hiển thị danh sách các kỳ thi có sẵn trong hệ thống lên

màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.

2. Hệ thống nhắc người dùng xác nhận thao tác xóa kỳ thi.

3. Người dùng xác nhận xóa.

4. Hệ thống sẽ xóa thông tin của kỳ thi này ra khỏi hệ thống.

o Các luồng sự kiện khác:

Thao tác xóa bị hủy: nếu trong luồng phụ XOAKYTHI người

dùng quyết định không xóa kỳ thi này nữa, thao tác xóa bị hủy

và dòng sự kiện chính được bắt đầu lại từ đầu.

• Các yêu cầu đặc biệt:

Không có.

• Điều kiện tiên quyết:

Không có.

• Post-Conditions:

Nếu use case thành công, thông tin kỳ thi sẽ được thêm, cập nhật

hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.

• Điểm mở rộng:

Không có.

3.3.3.5 QUANLYTHISINH:

• Tóm tắt:

Page 63: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 58 -

Use case này cho phép người dùng duy trì thông tin của thí sinh trong

hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa thí sinh ra khỏi

hệ thống.

• Luồng sự kiện:

o Luồng sự kiện chính:

Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa

thông tin của thí sinh ra khỏi hệ thống.

1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện

(thêm, xóa hay cập nhật thông tin thí sinh).

2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các

luồng sau được thực hiện.

- Nếu người dùng chọn chức năng thêm thì luồng phụ

THEMTHISINH được thực hiện.

- Nếu người dùng chọn chức năng cập nhật thì luồng phụ

CAPNHATTHISINH được thực hiện.

- Nếu người dùng chọn chức năng xóa thì luồng phụ

XOATHISINH được thực hiện.

o Các luồng sự kiện phụ:

3.3.3.5.1 THEMTHISINH:

1. Hệ thống yêu cầu người dùng nhập vào thông tin thí sinh bao

gồm: mã thí sinh, họ tên, ngày sinh, giới tính, các thông tin

khác của thí sinh (ghi chú).

2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì thí

sinh này được thêm vào hệ thống.

3.3.3.5.2 CAPNHATTHISINH:

Page 64: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 59 -

1. Hệ thống hiển thị danh sách các thí sinh có sẵn trong hệ thống

lên màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.

2. Người dùng chọn thí sinh. Hệ thống sẽ hiển thị thông tin của thí

sinh lên màn hình.

3. Người dùng thay đổi các thông tin của thí sinh.

4. Sau khi người dùng sửa thông tin xong thì hệ thống sẽ cập nhật

thông tin của thí sinh này vào hệ thống.

3.3.3.5.3 XOATHISINH:

1. Hệ thống hiển thị danh sách các thí sinh có sẵn trong hệ thống

lên màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.

2. Hệ thống nhắc người dùng xác nhận thao tác xóa thí sinh.

3. Người dùng xác nhận xóa.

4. Hệ thống sẽ xóa thông tin của kỳ thi này ra khỏi hệ thống.

o Các luồng sự kiện khác:

Thao tác xóa bị hủy: nếu trong luồng phụ XOATHISINH

người dùng quyết định không xóa thí sinh này nữa, thao tác xóa

bị hủy và dòng sự kiện chính được bắt đầu lại từ đầu.

• Các yêu cầu đặc biệt:

Không có.

• Điều kiện tiên quyết:

Không có.

• Post-Conditions:

Nếu use case thành công, thông tin thí sinh sẽ được thêm, cập nhật

hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.

Page 65: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 60 -

• Điểm mở rộng:

Không có.

3.3.3.6 QUANLYMONHOC:

• Tóm tắt:

Use case này cho phép người dùng duy trì thông tin của môn học

trong hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa môn học ra

khỏi hệ thống.

• Luồng sự kiện:

o Luồng sự kiện chính:

Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa

thông tin của môn học ra khỏi hệ thống.

1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện

(thêm, xóa hay cập nhật thông tin môn học).

2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các

luồng sau được thực hiện.

- Nếu người dùng chọn chức năng thêm thì luồng phụ

THEMMONHOC được thực hiện.

- Nếu người dùng chọn chức năng cập nhật thì luồng phụ

CAPNHATMONHOC được thực hiện.

- Nếu người dùng chọn chức năng xóa thì luồng phụ

XOAMONHOC được thực hiện.

o Các luồng sự kiện phụ:

3.3.3.6.1 THEMMONHOC:

Page 66: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 61 -

1. Hệ thống yêu cầu người dùng nhập vào thông tin môn học như:

tên môn học.

2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì môn

học này được thêm vào hệ thống.

3.3.3.6.2 CAPNHATMONHOC:

1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống

lên màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.

2. Người dùng chọn môn học. Hệ thống sẽ hiển thị thông tin của

môn học lên màn hình.

3. Người dùng dùng thay đổi các thông tin của môn học.

4. Sau khi người dùng thay đổi thông tin xong thì hệ thống sẽ cập

nhật thông tin của môn học này vào hệ thống.

3.3.3.6.3 XOAMONHOC:

1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống

lên màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.

2. Hệ thống nhắc người dùng xác nhận thao tác xóa môn học.

3. Người dùng xác nhận xóa.

4. Hệ thống sẽ xóa thông tin của môn học này ra khỏi hệ thống.

o Các luồng sự kiện khác:

Thao tác xóa bị hủy: nếu trong luồng phụ XOAMONHOC

người dùng quyết định không xóa kỳ thi này nữa, thao tác xóa

bị hủy và dòng sự kiện chính được bắt đầu lại từ đầu.

• Các yêu cầu đặc biệt:

Không có.

• Điều kiện tiên quyết:

Page 67: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 62 -

Không có.

• Post-Conditions:

Nếu use case thành công, thông tin môn học sẻ được thêm, cập nhật

hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.

• Điểm mở rộng:

Không có.

3.3.3.7 QUANLYBAILAM:

• Tóm tắt:

Use case này cho phép người dùng duy trì thông tin của môn học

trong hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa môn học ra

khỏi hệ thống.

• Luồng sự kiện:

o Luồng sự kiện chính:

Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa

thông tin của môn học ra khỏi hệ thống.

1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện

(thêm, xóa hay cập nhật thông tin môn học).

2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các

luồng sau được thực hiện.

- Nếu người dùng chọn chức năng thêm thì luồng phụ

THEMMONHOC được thực hiện.

- Nếu người dùng chọn chức năng cập nhật thì luồng phụ

CAPNHATMONHOC được thực hiện.

Page 68: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 63 -

- Nếu người dùng chọn chức năng xóa thì luồng phụ

XOAMONHOC được thực hiện.

o Các luồng sự kiện phụ:

3.3.3.6.1 THEMMONHOC:

1. Hệ thống yêu cầu người dùng nhập vào thông tin môn học như:

tên môn học.

2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì môn

học này được thêm vào hệ thống.

3.3.3.6.2 CAPNHATMONHOC:

1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống

lên màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.

2. Người dùng chọn môn học. Hệ thống sẽ hiển thị thông tin của

môn học lên màn hình.

3. Người dùng dùng thay đổi các thông tin của môn học.

4. Sau khi người dùng thay đổi thông tin xong thì hệ thống sẽ cập

nhật thông tin của môn học này vào hệ thống.

3.3.3.6.3 XOAMONHOC:

1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống

lên màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.

2. Hệ thống nhắc người dùng xác nhận thao tác xóa môn học.

3. Người dùng xác nhận xóa.

4. Hệ thống sẽ xóa thông tin của môn học này ra khỏi hệ thống.

o Các luồng sự kiện khác:

Page 69: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 64 -

Thao tác xóa bị hủy: nếu trong luồng phụ XOAMONHOC

người dùng quyết định không xóa kỳ thi này nữa, thao tác xóa

bị hủy và dòng sự kiện chính được bắt đầu lại từ đầu.

• Các yêu cầu đặc biệt:

Không có.

• Điều kiện tiên quyết:

Không có.

• Post-Conditions:

Nếu use case thành công, thông tin môn học sẻ được thêm, cập nhật

hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.

• Điểm mở rộng:

Không có.

3.4 SƠ ĐỒ LỚP:

3.4.1 Sơ đồ:

Sơ đồ các lớp xử lý chính:

Page 70: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 65 -

Hình 3-2: Sơ đồ lớp xử lý chính

Sơ đồ các lớp truy cập cơ sở dữ liệu:

Hình 3-3: Sơ đồ lớp truy cập cơ sở dữ liệu:

Danh sách các lớp trong sơ đồ:

STT Tên Ý nghĩa Ghi chú – Minh họa1 Entity Lớp chung để vẽ các đối tượng

2 Text Văn bản.

Page 71: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 66 -

3 TextCell

Phần tử thông tin, gồm một hình chữ nhật trống để điền ký tự (chữ hoặc số) và một danh sách các ký tự để tô (như hình bên).

4 TextField Phần thông tin, gồm nhiều TextCell

5 ChoiceElement Phần từ lựa chọn, gồm một hình tròn và một phần văn bản kèm theo.

6 Choice Phần lựa chọn, gồm nhiều ChoiceElement.

7 AnswerCell Câu trả lời.

8 AnswerSheet Bảng trả lời, gồm nhiều AnswerCell

9 Line Đường thẳng

10 Rect Hình chữ nhật

11 Ellipse Hình ellipse

12 ImageObj Hình ảnh

13 Page Trang

14 Key Đáp án của một câu

15 AnswerKey Đáp án của một phần, gồm nhiều câu

16 Rate Khoảng tính điểm

17 Estimation Cách tính điểm.

Page 72: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 67 -

18 Sentence Một câu trong bài làm của thí sinh.

19 Answer Bài làm của thí sinh (gồm nhiều câu)

20 Recognition Nhận dạng

21 Candidate Thí sinh

22 Template Biểu mẫu

23 Examination Kỳ thi

24 Subject Môn học

25 QuestionSheet Đề thi

26 ExaminationPaper Bài làm của thí sinh Bảng 3-1: Danh sách các lớp trong sơ đồ lớp

3.4.2 Mô tả một số lớp chính:

3.4.2.1 Lớp Entity:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _location PointF Vị trí của đối tượng

2 _selected Bool Đối tượng có đang được chọn hay không

3 _size SizeF Kích thước của đối tượng

4 _rotate int Góc xoay của đối tượng Chỉ có 4 giá tri: 0, 90, 180, 270

5 _strValue string Tên của đối tượng Bảng 3-2: Danh sách thuộc tính lớp Entity

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Tạo bản sao của đối tượng

2 Draw Graphics Không Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter, int,

Không Ghi nội dung đối

virtual

Page 73: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 68 -

int tượng ra XML

4 ReadFromXML XmlTextReader, int, int

Không

Đọc thông tin thuộc tính của đối tượng từ nội dung XML

5 TestSelect PointF bool

Kiểm tra xem một điểm có thuộc đối tượng hay không.

Bảng 3-3: Danh sách phương thức lớp Entity

3.4.2.2 Lớp Text:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _text string Nội dung văn bản

2 _font Font Font chữ sử dụng cho văn bản

Bảng 3-4: Danh sách thuộc tính lớp Text

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

Text

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

Page 74: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 69 -

Bảng 3-5: Danh sách phương thức lớp Text

3.4.2.3 Lớp TextCell:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _eKind CellStyle Loại của TextCell. (1)

2 _startChar char Chữ cái bắt đầu trong dãy chuỗi tô.

3 _endChar char Chữ cái kết thúc trong chuỗi tô.

4 _startNum char Số bắt đầu trong chuỗi tô.

5 _endNum char Số kết thúc trong chuỗi tô.

6 _fWidth float Chiều rộng của ô.

7 _fSpace float Khoảng cách từ ô viết đếm ký tự tô đầu tiên

8 _font Font Font chữ được sử dụng để vẽ dãy ký tự tô.

Bảng 3-6: Danh sách thuộc tính lớp TextCell

Ghi chú: (1): CellStyle là kiểu liệt kê (enum) tự tạo có các giá trị như sau:

• Number: các ký tự tô là số từ _startNum đến _endNum.

• Char: các ký tự tô là chữ cái từ _startChar đến _endChar.

• All: các ký tự tô bao gồm số từ _startNum đến _endNum và từ _startChar đến _endChar.

Minh họa:

Hinh 3-4: CellStyle: Char

Hinh 3-5: CellStyle: Number

Hinh 3-6: CellStyle: All

Danh sách các hàm thành phần:

Page 75: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 70 -

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có TextCell Tạo bản sao của đối tượng

2 Draw Graphics, float, float

Không Override. Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter Không Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader TextCell

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

5 MeasureLength Graphics float Tính chiều cao của đối tượng.

Bảng 3-7: Danh sách phương thức lớp TextCell

3.4.2.4 Lớp TextField:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _lsCell ArrayList Danh sách cách TextCell

2 _fSpaceSquare float Khoảng cách giữa các TextCell

3 _fWidth float Chiều rộng của một TextCell

4 _strField string Tên trường trong cơ sở dữ liệu mà TextField này liên kết đến.

Bảng 3-8: Danh sách thuộc tính lớp TextField

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics

Page 76: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 71 -

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

TextField

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

Bảng 3-9: Danh sách phương thức lớp TextField

3.4.2.5 Lớp ChoiceElement:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _fWidth float Đường kính đường tròn

2 _fSpace float Khoảng cách giữa đường tròn và văn bản

3 _strContent string Nội dung

4 _font Font Font chữ dùng để vẽ văn bản

5 _size SizeF Kích thước của đối tượng

6 _visible bool Cho biết có vẽ văn bản hay không

True: Vẽ. False: không.

Bảng 3-10: Danh sách thuộc tính lớp ChoiceElement

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có TextCell Tạo bản sao của đối tượng

2 Draw Graphics, float, float,

Không

Override. Vẽ đối tượng lên Graphics tại vị trí nào đó.

3 WriteToToXML XmlTextWriter Không Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader ChoiceElement

Static. Đọc thông tin thuộc tính của đối tượng từ nội

Page 77: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 72 -

dung XML

5 MeasureLength Graphics SizeF Tính kích thước của đối tượng

Bảng 3-11: Danh sách phương thức lớp ChoiceElement

3.4.2.6 Lớp Choice:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _lsCell ArrayList Danh sách cách TextCell

2 _fSpaceSquare float Khoảng cách giữa các TextCell

3 _fWidth float Chiều rộng của một TextCell

4 _strField string Tên trường trong cơ sở dữ liệu mà TextField này liên kết đến.

Bảng 3-12: Danh sách thuộc tính lớp Choice

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

Choice

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

Bảng 3-13: Danh sách phương thức lớp Choice

3.4.2.7 Lớp AnswerCell:

Danh sách các biến thành phần:

Page 78: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 73 -

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _fWidth float Kích thước của ký tự (tính theo milimet)

2 _fSpace float Khoảng cách giữa số thứ tực câu và câu trả lời thứ nhất.

3 _iNum int Số thứ tự của câu

4 _iCount int Số câu trả lời

5 _fontNum Font Font được sử dụng để viết số

6 _font Font Font được sử dụng để viết các câu trả lời

7 _size SizeF Kích thước của đối tượng

8 _eAnswerStyle AnswerStyle Kiểu của đối tượng (1) Bảng 3-14: Danh sách thuộc tính lớp AnswerCell

Ghi chú: (1): AnswerStyle là kiểu liệt kê (enum) tự tạo có các giá trị như sau:

• Horizontal: các câu được viết theo dạng nằm ngang.

Hinh 3-7: AnswerStyles - Vertical

• Vertical: các câu được viết theo dạng thẳng đứng.

Hinh 3-8: AnswerStyle - Vertical

Danh sách các hàm thành phần:

Page 79: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 74 -

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có AnswerCell Tạo bản sao của đối tượng

2 Draw Graphics, float, float,

Không

Override. Vẽ đối tượng lên Graphics tại vị trí nào đó.

3 WriteToToXML XmlTextWriter Không Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader AnswerCell

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

5 MeasureLength Graphics, int SizeF Tính kích thước của đối tượng

Bảng 3-15: Danh sách phương thức lớp AnswerCell

3.4.2.8 Lớp AnswerSheet:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _eStyle AnswerStyle Kiểu của bảng trả lời (như đã giải thích trên).

2 _lsCell ArrayList Danh sách các AnswerCell

3 _fSpaceSquare float Khoảng các giữa các câu trả lời

4 _fWidth float Kích thước của ký tự (tính theo milimet)

Bảng 3-16: Danh sách thuộc tính lớp AnswerSheet

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên

Page 80: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 75 -

Graphics

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

AnswerSheet

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

Bảng 3-17: Danh sách phương thức lớp AnswerSheet

3.4.2.9 Lớp Line:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _direction bool Chiều của đường thẳng True: dốc xuống. False: dốc lên

2 _width float Chiều rộng của nét vẽ đường thẳng.

Bảng 3-18: Danh sách thuộc tính lớp Line

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

Line

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

5 TestSelect PointF bool Override. Kiểm

Page 81: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 76 -

tra một điểm có thuộc đường thẳng hay không.

6 TestCorner PointF byte

Kiểm tra xem điểm đó thuộc góc nào của đường thẳng

0: không 1: trái 2: phải

Bảng 3-19: Danh sách phương thức lớp Line

3.4.2.10 Lớp Rect:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _bFill bool Hình chữ nhật có tô hay không.

True: tô False: không

2 _width float Chiều rộng của nét vẽ hình chữ nhật.

Bảng 3-20: Danh sách thuộc tính lớp Rect

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

Rect

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

5 TestCorner PointF byte

Kiểm tra xem điểm đó thuộc góc nào của đường thẳng

0: không 1: trên, trái 2: trên,

Page 82: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 77 -

phải 3: dưới, trái 4: dưới, phải

Bảng 3-21: Danh sách phương thức lớp Rect

3.4.2.11 Lớp Ellipse:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _bFill bool Ellipse có tô hay không. True: tô False: không

2 _width float Chiều rộng của nét vẽ ellipse.

Bảng 3-22: Danh sách thuộc tính lớp Ellipse

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

Ellipse

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

5 TestCorner PointF byte

Kiểm tra xem điểm đó thuộc góc nào của đường thẳng

0: không 1: trên, trái 2: trên, phải 3: dưới,

Page 83: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 78 -

trái 4: dưới, phải

Bảng 3-23: Danh sách phương thức lớp Ellipse

3.4.2.12 Lớp ImageObj:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _img Image Ảnh của đối tượng

Bảng 3-24: Danh sách thuộc tính lớp ImageObj

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Clone Không có Entity Override. Tạo bản sao của đối tượng

2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics

3 WriteToToXML XmlTextWriter, int, int

Không Override. Ghi nội dung đối tượng ra XML

4 ReadXML XmlTextReader, int, int

ImageObj

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

Bảng 3-25: Danh sách phương thức lớp ImageObj

3.4.2.13 Lớp Page:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _nLeftMargin int Lề trái của trang

2 _nRightMargin int Lề phải của trang

3 _nTopMargin int Lề trên của trang

4 _nBottomMargin int Lề dưới của trang

Page 84: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 79 -

5 _nWidth int Chiều rộng của trang

6 _nHeight int Chiều dài của trang

7 _nNumPage byte Số thứ tự của trang

8 _ePageStyle PageStyle Kiểu trang (1)

9 _lsObject ArrayList Danh sách các đối tượng của trang

Bảng 3-26: Danh sách thuộc tính lớp Page

Ghi chú: (1): PageStyle là kiểu liệt kê (enum) gồm những giá trị mô tả khổ giấy như sau:

A4: khổ giấy A4 Booklet: khổ giấy ½ A4 Custom: tùy chọn

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Draw Graphics, bool

Không Các đối tượng lên Graphics.

2 DrawCorner Graphics

Bảng 3-27: Danh sách phương thức lớp Page

3.4.2.14 Lớp Key:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _iNum int Số thứ tự của câu

2 _fMark float Điểm của câu

3 _keys bool[] Mảng lưu đán án.

Vị trí câu đúng lưu giá trị True, ngược lại là False.

Bảng 3-28: Danh sách thuộc tính lớp Key

Page 85: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 80 -

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML

2 ReadXML XmlTextReader Key

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

3 FromAnswerCell AnswerCell Key Tạo ra đối tượng Key từ AnswerCell

Bảng 3-29: Danh sách phương thức lớp Key

3.4.2.15 Lớp AnswerKey:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _strField string Tên của AnswerSheet có đáp án này.

2 _lsAnswer ArrayList Danh sách các Key Bảng 3-30: Danh sách thuộc tính lớp AnswerKey

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML

2 ReadXML XmlTextReader Key

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

3 FromAnswerSheet AnswerSheet AnswerKey

Tạo ra đối tượng AnswerKey từ AnswerSheet

Bảng 3-31: Danh sách phương thức lớp AnswerKey

Page 86: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 81 -

3.4.2.16 Lớp Rate:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _iFrom int Mức dưới của số câu đúng

2 _iTo int Mức trên của số câu đúng

3 _fMark float Điểm số của câu Bảng 3-32: Danh sách thuộc tính lớp Rate

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML

2 ReadXML XmlTextReader Key

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

3 Clone Không Rate Tạo bản sao của đối tượng

Bảng 3-33: Danh sách phương thức lớp Rate

3.4.2.17 Lớp Estimation:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _bType bool Kiểu đánh giá

- True: đánh giá theo cách tính điểm là tổng số điểm của các câu đúng. - False: tính điểm dựa theo khoảng câu đúng đã định. VD: 35-40: 10đ 30-34: 9đ

Page 87: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 82 -

2 _lsRate ArrayList Danh sách các định mức Bảng 3-34: Danh sách thuộc tính lớp Estimation

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML

2 ReadXML XmlTextReader Estimation

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

3 GetMark int float Lấy điểm dựa vào số câu đúng

Bảng 3-35: Danh sách phương thức lớp Estimation

3.4.2.18 Lớp Sentence:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _iNum int Số thứ tự câu

2 _fMark float Điểm của câu

3 _keys bool[] Danh sách các trả lời của thí sinh.

Ứng với vị trí thí sinh chọn là True, ngược lại là False.

4 _bResult bool Kết quả của câu trả lời của thí sinh

True: đúng False: sai.

Bảng 3-36: Danh sách thuộc tính lớp Sentence

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML

2 ReadXML XmlTextReader Sentence Static. Đọc thông tin thuộc tính của đối

Page 88: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 83 -

tượng từ nội dung XML

Bảng 3-37: Danh sách phương thức lớp Sentence

3.4.2.19 Lớp Answer:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _strField string Tên của AnswerKey có câu trả lời này.

2 _lsAnswer ArrayList Danh sách các Sentence Bảng 3-38: Danh sách thuộc tính lớp Answer

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML

2 ReadXML XmlTextReader Key

Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML

3 FromAnswerKey AnswerKey Answer Tạo ra đối tượng Answer từ AnswerKey

Bảng 3-39: Danh sách phương thức lớp Answer

3.4.2.20 Lớp Recognition:

Danh sách các biến thành phần:

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 _bmpSrc Bitmap Ảnh chứa bài làm của thí sinh.

2 _dtInfo DataTable Bảng chứa thông tin của thí sinh và bài làm của thí sinh sau khi được chấm.

3 _estimation Estimation Cách tính điểm của bài thi.

4 _hashAnsKey Hashtable Danh sách đáp án của bài

Page 89: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 84 -

thi đó. Bảng 3-40: Danh sách thuộc tính lớp Recognition

Danh sách các hàm thành phần:

STT Tên Tham số Trả về Xử lý Ghi chú

1 Start Không Không Khởi động quá trình chấm điểm

2 PreProcessing Không Không

Tô màu viền đen và biến đổi ảnh thành ảnh nhị phân

3 CornerDetection Không Không Tìm độ lệch của ảnh, xoay ảnh, và xén ảnh

4 RecogTextField

Bitmap, TextField, ref string, ref string

Không

Lấy câu người dùng viết và câu người dùng tô trong TextField.

5 RecogChoice Bitmap, Choice

string

Lấy những lựa chọn của người dùng trong phần Choice

6 RecogAnswerSheet Bitmap, AnswerSheet, ref float

Answer

Nhận bài làm của thí sinh trong bảng AnswerSheet và tính điểm cho thí sinh đó.

7 IsFill Bitmap bool Kiểm tra xem ảnh có được tô hay không

8 ExtractBitmap Entity Bitmap Lấy ra phần ảnh của đối tượng đó.

Bảng 3-41: Danh sách phương thức lớp Recognition

3.5 Thiết kế cơ sở dữ liệu:

3.5.1 Sơ đồ:

Page 90: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 85 -

Hình 3-9: Mô hình cơ sở dữ liệu

3.5.2 Mô tả các bảng:

3.5.2.1 MauThi:

STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaMau Autonumber Mã mẫu

2 TenMau Text (50) Tên mẫu

3 NoiDung Memo Nội dung của mẫu. Là chuỗi XML mô tả thông tin của mẫu.

(1)

Bảng 3-42: Danh sách các trường trong bảng MauThi

Ghi chú:

(1): Mỗi biểu mẫu được xem là một “Document” gồm nhiều trang “Page”.

Mỗi trang lại gồm các đối tượng khác. Sau đây là cách thức lưu trữ một số đối

tượng như đã phân tích trên.

a) Text:

Page 91: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 86 -

<Text left="10.92917" top="6.166666" rotate="0" size-

width="11.68376" size-height="6.210938" caption="Text" font-

name="Arial" font-size="5" font-style="Regular" />

b) TextField:

<TextField left="10.13542" top="20.18958" rotate="0" size-

width="20" size-height="125.0898" width="4" space="0"

value="TextField1" field="">

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

</TextField>

c) AnswerSheet:

<AnswerSheet left="52.46875" top="15.95625" rotate="0" size-

width="25.03646" size-height="25.84375" style="Horizontal"

space="2" width="4" start="1" value="AnswerSheet1">

<AnswerCell space="1" count="4" />

<AnswerCell space="1" count="4" />

<AnswerCell space="1" count="4" />

<AnswerCell space="1" count="4" />

</AnswerSheet>

d) Choice:

Page 92: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 87 -

<Choice left="55.11459" top="63.58125" rotate="0" size-

width="23.69694" size-height="22" hspace="2" vspace="2" width="4"

font-name="Arial" font-size="5" font-style="Regular"

value="Choice1" visible="True">

<ChoiceElement space="2" content="Choice" />

<ChoiceElement space="2" content="Choice" />

<ChoiceElement space="2" content="Choice" />

<ChoiceElement space="2" content="Choice" />

</Choice>

e) Line:

<Line left="92.68542" top="14.10417" rotate="0" size-

width="16.13958" size-height="27.25208" direction="True"

width="0.1" />

f) Rect:

<Rect left="92.68542" top="55.64375" rotate="0" size-

width="26.72291" size-height="14.81667" width="0.1" fill="False"

/>

g) Ellipse:

<Ellipse left="94.80208" top="83.16042" rotate="0" size-

width="26.9875" size-height="14.55209" width="0.1" fill="False" />

h) Page:

<Page num="1" style="A4" width="210" height="297" left="15"

right="15" top="15" bottom="15">

<Text left="10.92917" top="6.166666" rotate="0" size-

width="11.68376" size-height="6.210938" caption="Text" font-

name="Arial" font-size="5" font-style="Regular" />

Page 93: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 88 -

<TextField left="10.13542" top="20.18958" rotate="0" size-

width="20" size-height="125.0898" width="4" space="0"

value="TextField1" field="">

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

<TextCell style="Char" startchar="A" endchar="Z"

startnum="0" endnum="9" symbol=" " />

</TextField>

<AnswerSheet left="52.46875" top="15.95625" rotate="0"

size-width="25.03646" size-height="25.84375" style="Horizontal"

space="2" width="4" start="1" value="AnswerSheet1">

<AnswerCell space="1" count="4" />

<AnswerCell space="1" count="4" />

<AnswerCell space="1" count="4" />

<AnswerCell space="1" count="4" />

</AnswerSheet>

<Choice left="55.11459" top="63.58125" rotate="0" size-

width="23.69694" size-height="22" hspace="2" vspace="2" width="4"

font-name="Arial" font-size="5" font-style="Regular"

value="Choice1" visible="True">

<ChoiceElement space="2" content="Choice" />

<ChoiceElement space="2" content="Choice" />

<ChoiceElement space="2" content="Choice" />

Page 94: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 89 -

<ChoiceElement space="2" content="Choice" />

</Choice>

<Line left="92.68542" top="14.10417" rotate="0" size-

width="16.13958" size-height="27.25208" direction="True"

width="0.1" />

<Rect left="92.68542" top="55.64375" rotate="0" size-

width="26.72291" size-height="14.81667" width="0.1" fill="False"

/>

<Ellipse left="94.80208" top="83.16042" rotate="0" size-

width="26.9875" size-height="14.55209" width="0.1" fill="False" />

</Page>

i) Cấu trúc lưu trữ biểu mẫu:

<Document use-hidden-color="False" hidden-color="Red">

<Page num="1" style="A4" width="210" height="297" left="15"

right="15" top="15" bottom="15">

</Page>

</Document>

3.5.2.2 KyThi:

STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaKT Autonumber Mã kỳ thi

2 TenKT Text (50) Tên kỳ thi

3 Thang Number Tháng diễn ra kỳ thi 0< Thang <13

4 Nam Number Năm diễn ra kỳ thi Bảng 3-43: Danh sách các trường trong bảng KyThi

3.5.2.3 MonThi:

Page 95: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 90 -

STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaMT Autonumber Mã môn thi

2 MaMon Text (20) Mã môn thi (do người dùng ấn định)

3 TenMT Text (50) Tên môn Bảng 3-44: Danh sách các trường trong bảng MonThi

3.5.2.4 DeThi:

STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaDe AutoNumber Mã đề thi

2 MaMau Number Mã mẫu thi

3 MaKT Number Mã kỳ thi

4 MaMT Number Mã môn thi

5 NgayThi Date Ngày thi

6 GhiChu Text (50) Thông tin ghi chú của đề thi.

7 NoiDungDA Memo Cấu trúc XML mô tả nội dung của đáp án. (1)

Bảng 3-45: Danh sách các trường trong bảng DeThi

Ghi chú:

(1): Cấu trúc lưu trữ đáp án gồm có: cách tính điểm và các đáp án của các câu.

<AnswerKeys>

<Estimation type="0">

<Rate from="1" to="10" mark="5" />

<Rate from="11" to="20" mark="10" />

</Estimation>

<AnswerKey name="AnswerSheet3">

<Key num="61" mark="1" count="4" value="0000" />

<Key num="62" mark="1" count="4" value="0000" />

Page 96: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 91 -

<Key num="63" mark="1" count="4" value="0000" />

<…>

</AnswerKey>

</AnswerKeys>

3.5.2.5 BaiLam:

STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaBL Autonumber Mã bài làm

2 MaDT Long Mã đề thi

3 MaTS Text (20) Mã thí sinh Được đọc ra từ bài làm của thí sinh.

4 HoTen Text(30) Họ tên thí sinh. Được đọc ra từ bài làm của thí sinh

5 ChiTietBaiLam Memo Thông tin về bài làm của thí sinh được lưu dưới dạng XML

(1)

6 GhiChu Memo Các thông tin thêm về bài làm của thí sinh.

Bảng 3-46: Danh sách các trường trong bảng BaiLam

Ghi chú:

(1): cấu trúc bài làm gồm các trả lời trong từng câu của thí sinh và kết quả

đúng sai của từng câu.

<ExaminationPaper>

<Answer name="AnswerSheet3">

<Sentence num="61" mark="1" count="4" value="0000"

result=”true” />

Page 97: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 92 -

<Sentence num="62" mark="1" count="4" value="0000"

result=”false” />

<Sentence num="63" mark="1" count="4" value="0000"

result=”true” />

<…>

</Answer>

</ExaminationPaper>

3.5.2.6 ThiSinh:

STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaTS Text (20) Mã thí sinh

2 HoTen Text (50) Họ tên thí sinh

3 NgaySinh Date Ngày sinh

4 GioiTinh Yes/No Giới tính Yes: Nam No: Nữ

5 GhiChu Memo Thông tin thêm của thí sinh.

Bảng 3-47: Danh sách các trường trong bảng ThiSinh

3.6 Thiết kế giao diện một số màn hình chính:

3.6.1 Màn hình thiết kế biểu mẫu:

Page 98: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 93 -

Hình 3-10: Màn hình thiết kế biểu mẫu

3.6.2 Màn hình chấm điểm:

Page 99: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 94 -

Hình 3-11 : Màn hình chấm điểm tự động

3.7 Cài đặt:

Phần mềm “Thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm” được

phát triển sử dụng các công cụ và môi trường sau:

• Công cụ phân tích và thiết kế:

o Rational Rose 2002

o Microsoft Visio 2003

• Môi trường lập trình:

o Visual Studio .Net 2003

• Cơ sở dữ liệu:

o Microsoft Access XP

Page 100: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 95 -

Chương 4: THỰC NGHIỆM, ĐÁNH GIÁ VÀ TỔNG KẾT

4.1 Thực nghiệm:

Chương trình đã được ứng dụng để thiết kế thử các biểu mẫu quen thuộc, cụ

thể là 3 mẫu của kỳ thi TOEFL, kỳ thi sát hạch chuẩn kỹ sư Nhật Bản, cũng như đề

thi trắc nghiệm của một số môn học trong Khoa...

Đồng thời, nhóm cũng đã thực hiện việc thiết kế mẫu cho kỳ thi kiểm tra

giữa kỳ môn Mạng không dây và an ninh mạng được tổ chức vào ngày 21/07/2005.

4.2 Kết quả

4.2.1 Phần thiết kế các biểu mẫu:

Chương trình có khả năng thực hiện thiết kế được tương tự hầu hết các biểu

mẫu thông dụng với thời gian tương đối nhanh, và dễ dùng.

Sau đây là mẫu thi Institutional TOEFL thực tế và mẫu được thiết kế từ

chương trình.

Page 101: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 96 -

Hình 4.1: mẫu thi Institutional TOEFL thực tế

Page 102: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 97 -

Hình 4-2: mẫu TOEFL được thiết kết bởi chương trình

Thời gian để thực hiện thiết kế mẫu thi TOEFL đo được là 1,5 tiếng. Mẫu đề

của kỳ thi sát hạch chuẩn kỹ sư Nhật Bản được soạn trong thời gian ngắn hơn, chỉ

40 phút.

Page 103: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 98 -

Hình 4-3: Mẫu của kỳ thi sát hạch chuẩn kỹ sư Nhật Bản.

Page 104: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 99 -

Và sau đây là mẫu đề thi được sử dụng trong kỳ thi Mạng không dây và an

ninh mạng tổ chức ngày 21/07/2005.

Hình 4-4: Mẫu đề thi Mạng không dây và an ninh mạng

Page 105: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 100 -

4.2.2 Phần chấm điểm tự động:

Chúng em đã thực hiện việc chấm bài thi qua 2 cách thức:

Chấm bằng tay bằng cách sử dụng bảng đục lỗ.

Chấm bằng chương trình chấm điểm tự động.

Với mỗi cách chấm được thực hiện bởi 2 người và thu được kết quả như sau:

- Về mặt thời gian:

Chấm thủ công: thời gian tổng cộng là 4 giờ 30 phút. Tuy nhiên đây

chỉ là khoảng thời gian để chấm bài chứ chưa kể đến việc ghi lại

thông tin thí sinh và tạo bảng điểm.

Chấm bằng chương trình chấm điểm tự động: Thời gian tổng cộng là

2 giờ 26 phút. Trong đó thời gian để scan vào là 2 giờ 15 phút và thời

gian để nhận dạng là 278 bài là 10 phút 51 giây. Ta thấy rằng việc

chấm điểm bằng phầm mềm sở dĩ thời gian lâu là do thời gian scan (2

giờ 15 phút chiếm 92.56% thời gian).

- Về kết quả:

Chấm thủ công: số bài chấm sai là 24/278 bài chiếm tỉ lệ 8.63%.

Nguyên nhân của việc chấm sai này là do người chấm nhầm lẫn.

Trong đó số câu chấm sai là 33/(70*278) câu (mỗi đề thi có 70 câu)

chiếm tỉ lệ 0.17%. Vậy tỉ lệ chấm chính xác của phương pháp này là

99.83%.

Chấm bằng chương trình chấm điểm tự động: số bài chấm sai 11/278

bài chiếm tỉ lệ 3.96%. Tỉ lệ chấm chính xác của cách này là 96.04%.

Trong đó số câu bị chấm sai là 17/(70*278) câu chiếm tỉ lệ 0.09%.

Vậy tỉ lệ chấm chính xác của phương pháp này là 99.1%. Tuy nhiên

việc chấm sai này chủ yếu tập trung vào 3 nguyên nhân:

Page 106: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 101 -

Thí sinh dùng bút chì tô quá nhạt làm chương trình không thể nhận

ra được vị trí tô.

Thí sinh đã xóa không kỹ những câu chọn sai và chương trình đã

hiểu nhầm nơi đó vẫn có tô.

Thí sinh tô không trọn vùng tô hoặc tô lem ra ngoài vùng tô.

Như vậy ta có thể thấy nguyên nhân sai không phải là do lỗi

chương trình mà do thí sinh tô không đúng qui cách. Nếu các bài làm

được tô đúng qui cách thì tỉ lệ này sẽ còn cao hơn nhiều.

Chấm bằng máy Chấm bằng tay

- Thời gian: 2 giờ 26 phút

(scan: 2 giờ 15 phút, chấm điểm: 10 phút

51 giây).

- Thời gian: 4 giờ 30 phút

(chưa kể thời gian lấy thông tin của thí

sinh và lập bảng điểm).

- Số bài sai: 11/278. Chiếm tỉ lệ 3.96%.

Nguyên nhân: do bài làm tô không đủ

đậm hay bài thi bị dơ do tẩy xóa không

kỹ.

- Số bài sai: 24/278. Chiếm tỉ lệ 8.6%.

Nguyên nhân: do người chấm nhầm lẫn.

- Số câu sai: 17/(70*278). Chiếm tỉ lệ

0.09%.

- Số câu sai: 33/(70*278). Chiếm tỉ lệ

0.17%. Bảng 4-1 : So sánh chấm bằng tay và chấm bằng máy

4.3 Đánh giá

Kết quả thực hiện của cả 2 chương trình thiết kế và chấm điểm tự động là rất

khả quan, tốc độ và kết quả chấp nhận được.

Tuy nhiên, trong phần chấm điểm tự động, khuyến nghị người dùng nên quét

bài thi có góc lệch không quá 5 độ, độ phân giải từ 200 DPI đến 300 DPI`

Page 107: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 102 -

Ngoài ra, do chương trình chấm điểm chuyển các cảnh báo về các dạng

không hợp lệ trong bài thi ra phần thông tin tham khảo, cho nên kết quả chấm điểm

của bài thi vẫn không bị ảnh hưởng. Cụ thể như phần so sánh giữa chữ viết tay với

vị trí tô: Nếu không khớp, chúng vẫn không làm ảnh hưởng đến kết quả làm bài,

thay vào đó sẽ có những thông tin tham khảo thêm về vị trí sai giữa chữ viết tay và

vùng tô, đồng thời bài làm được đánh dấu cần xem lại.

4.4 Kết luận

Luận văn đã đạt được một số mục tiêu đề ra ban đầu. Đầu tiên, phần mềm

này là một giải pháp thi trắc nghiệm có thể áp dụng ngay, cụ thể là Khoa Công

Nghệ Thông Tin chúng ta với giá thành khá rẻ. Tiếp đến, phần mềm cho phép linh

động tạo các mẫu đề thi theo nhu cầu.

Tuy nhiên, phần mềm thực hiện vẫn còn một số hạn chế cần được khắc phục.

Do nhận dạng chữ viết tay in hiện chỉ cho kết quả đúng từ 70% đến 80%, nên kết

quả nhận dạng này chưa có giá trị sử dụng trong việc kiểm tra tính hợp lệ của bài thi

mà chỉ được xem là thông tin tham khảo. Ngoài ra, phần mềm chỉ có thể nhận dạng

đúng đối với các bài thi còn nguyên vẹn (đặc biệt là các đánh dấu ở 4 góc) và không

được quét vào mà có góc lệch quá 5 độ.

4.5 Hướng phát triển:

Trong tương lai, phần mềm cần được kết hợp với các ngân hàng câu hỏi trắc

nghiệm. Khi thực hiện được điều này, biểu mẫu sẽ có thêm phần nội dung các câu

hỏi, và đáp án được tự động tạo ra theo dữ liệu có sẵn trong ngân hàng câu hỏi. Do

đó, tăng thêm tính hiệu quả của chương trình, hỗ trợ tối đa người dùng trong việc

thiết kế một đề thi trắc nghiệm hoàn chỉnh, bao gồm phần trả lời và phần đề thi.

Tiếp đến, chương trình cần được cải tiến các thuật toán nhận dạng góc, nhằm

tăng tốc độ thực hiện chấm bài và cho phép bài thi quét vào có dạng tổng quát hơn

(tức được phép lệch nhiều hơn).

Page 108: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 103 -

Thêm các thông tin cảnh báo về bài làm nếu có gì nghi ngờ nhằm giúp người

dùng có thể kiểm tra thông tin được dễ dàng. Cuối cùng, phần nhận dạng chữ viết

tay in cần được xem xét lại cách thực hiện để nâng cao hiệu suất nhận dạng hơn,

góp phần vào việc kiểm tra tính hợp lệ cũng như cung cấp các thông tin kèm theo

cho bài làm.

Page 109: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 104 -

PHỤ LỤC

PL.1 Các thao tác xử lý ảnh cơ bản:

PL.1.1 Làm xám ảnh:

Cách thực hiện:

Mỗi ảnh bitmap bao gồm nhiều pixel. Mỗi pixel của ảnh lại bao gồm 3 giá trị

Red, Green và Blue hợp lại tạo nên màu sắc thể hiện của pixel đó. Cho nên, mỗi

pixel gồm 3 byte, với mỗi byte lưu các giá trị riêng biệt cho từng sắc Red, Green và

Blue riêng biệt mà ta lần lượt đặt tên là byte RED, byte GREEN và byte BLUE.

Quá trình làm xám ảnh chuyển giá trị mỗi pixel của ảnh gốc từ 3 byte về thành một

byte, trong đó giá trị của byte kết quả được tính bằng các công thức tuỳ theo cách

làm xám ảnh được dùng.

Ví dụ, đối với cách làm xám ảnh BT709 (được áp dụng cho đề tài), ta có

công thức tính pixel kết quả như sau:

pixel kết quả = (0.2125 * byte RED + 0.7154 * byte GREEN + 0.0721 * byte BLUE)

Trong khi đó, cách làm xám ảnh RMY lại có công thức tính pixel kết quả là:

pixel kết quả = (0.5 * byte RED + 0.419 * byte GREEN + 0.081 * byte BLUE)

Do đó ảnh sau khi thực hiện xám ảnh sẽ có mỗi pixel chỉ gồm một byte là giá

trị tính từ 3 byte của pixel tương ứng trong ảnh ban đầu.

.

Page 110: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 105 -

Hình PL-1: ảnh trước khi được làm xám

Hình PL-2: ảnh sau khi được làm xám

Page 111: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 106 -

PL.1.2 Chuyển sang ảnh nhị phân

Cách thực hiện:

Quét qua toàn bộ pixel của ảnh, nếu giá trị pixel nằm trong khoảng quy định

thì chuyển màu tại pixel đó thành trắng, ngược lại thì chuyển thành đen.

Thuật toán:

Đầu tiên kiểm tra xem ảnh cần chuyển sang nhị phân có được làm

xám ảnh chưa?

Nếu chưa thì thực hiện việc làm xám ảnh trước.

Sau đó, quét tất cả các pixel của ảnh:

nếu màu của pixel nằm trong khoảng quy định (mặc định giá trị

max của khoảng quy định là 255 và giá trị min là 128) thì

chuyển sang trắng (tức giá trị của pixel là 255)

còn ngược lại thì chuyển thành đen (giá trị là 0).

Ý nghĩa:

Chuyển ảnh từ dạng ảnh xám sang thành dạng ảnh trắng đen bằng cách nếu

tại một pixel, màu lợt (hơn giá trị cụ thể do ta quy định) thì trở thành màu trắng, còn

không thì chuyển sang đen.

Page 112: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 107 -

Hình PL-3: ảnh xám trước khi được chuyển thành ảnh nhị phân

Hình PL-4: ảnh sau khi chuyển thành ảnh nhị phân với ngưỡng là 128

Page 113: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 108 -

PL.1.3 Xoay ảnh.

Hình PL-5: Bài thi trong file ảnh bị lệch.

Page 114: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 109 -

Hình PL-6: Bài thi sau khi xoay sẽ không còn bị lệch.

Page 115: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 110 -

PL.1.4 Biến đổi tỉ lệ ảnh (Scale)

Phép biến đổi tỉ lệ làm thay đổi kích thước của ảnh.

Hình PL-7: ảnh trước khi biến đổi tỉ lệ

Hình PL-8: ảnh sau khi biến đổi tỉ lệ còn 60% so với ảnh ban đầu

Page 116: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 111 -

PL.2 Lý thuyết về mạng nơron

PL.2.1 Đặt vấn đề

Với một yêu cầu cụ thể và tập mẫu cho sẵn trong đó tập mẫu là các dữ liệu

được thu thập từ thực tế, có đầy đủ điều kiện đầu vào cho yêu cầu (được gọi là biến

độc lập) cũng như kết quả đầu ra (được gọi là biến phụ thuộc). Nhiệm vụ của chúng

ta là tìm ra bài giải cho bài toán trên.

PL.2.2 Định nghĩa

Mạng nơron là công cụ dùng để tìm gần đúng nhất bài giải của một vấn đề

bất kỳ mà không cần quan tâm đến nội dung chi tiết bên trong của bài toán. Để làm

được điều này, mạng nơron cần phải trải qua một quá trình, gọi là quá trình học

được thực hiện lặp đi lặp lại trên tập mẫu có sẵn. Sau khi được học xong, mạng

nơron có thể giải quyết các vấn đề liên quan đến bài toán đã cho cũng như các bài

toán cùng loại tương tự với độ chính xác chấp nhận được.

Mạng nơron được ứng dụng trong các bài toán nhận dạng, phân lớp như nhận

dạng mặt người, nhận dạng ký tự...

PL.2.3 Sơ lược cấu tạo của mạng nơron

Một mạng nơron tổng quát là một mạng có n (n>2) lớp: lớp thứ nhất gọi là

lớp nhập, lớp thứ n gọi là lớp xuất, và (n-2) lớp ẩn. Tuy nhiên với đề tài này, để đơn

giản, mạng nơrơn bao gồm nhiều nút được phân trong 3 lớp: lớp nhập, lớp ẩn và lớp

xuất. Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào mạng.

Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp mà ta gọi là tổng trọng hoá,

và chuyển kết quả cho các nút trong lớp ẩn. Gọi là ẩn vì các nút trong lớp này chỉ

liên lạc với các nút trong các lớp nhập và lớp xuất, và chỉ người thiết kế mạng biết

lớp này (người sử dụng mạng sẽ không biết lớp này). Tương tự, các nút trong lớp

Page 117: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 112 -

xuất cũng nhận các tín hiệu tổng trọng hoá từ các nút ẩn. Mỗi nút trong lớp xuất

tương ứng với một đầu ra (tức là một biến phụ thuộc).

Số nút của lớp nhập và lớp xuất là do bài toán quy định, còn số nút của lớp

ẩn do người thiết kế mạng quy định.

Tuỳ theo bài toán cần giải quyết mà quyết định số nút ở lớp xuất (tức số đầu

ra). Chẳng hạn với bài toán nhận dạng các chữ số thì ta xây mạng nơron với 10 nút

xuất, hoặc nhận dạng chữ thì mạng cần 24 nút xuất.

Trong mạng nơron, mỗi nút của lớp thứ i (0<i<n) liên kết với mọi nút ở lớp

thứ (i+1) thông qua các cung, và các nút trong cùng lớp không liên kết với nhau.

Mỗi cung trong mạng được gắn với một trọng số w.

PL.2.4 Quá trình ánh xạ và quá trình học của mạng nơ ron

Một mạng nơron chỉ có thể ở một trong hai trạng thái: trạng thái ánh xạ và

trạng thái học.

PL.2.4.1 Quá trình ánh xạ

Trong trạng thái ánh xạ, thông tin lan truyền từ lớp nhập đến lớp xuất và

mạng thực hiện tính toán để tính giá trị các biến phụ thuộc (đầu ra) dựa vào các biến

độc lập được cho (đầu vào): Y=NN(X). Mạng xử lý mỗi lần một mẫu để tính

Y=NN(X).

Đầu tiên, giá trị của các biến độc lập được chuyển cho lớp nhập của mạng.

Các nút nhập không tính toán gì cả. Mỗi nút nhập chuyển giá trị của nó cho tất cả

các nút ẩn. Mỗi nút ẩn tính tổng trọng hoá của tất cả dữ liệu nhập bằng cách cộng

dồn tất cả các tích giữa giá trị nút nhập với trọng số của cung liên kết giữa nút nhập

đó và nút ẩn.

Kế tiếp, một hàm truyền được áp dụng trên tổng trọng hoá này cùng với một

ngưỡng của nút ẩn đó để cho ra giá trị thực của nút ẩn. Hàm truyền chỉ đơn giản nén

giá trị vào một miền giới hạn nào đó.

Page 118: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 113 -

Sau khi nén tổng trọng hoá thành giá trị cụ thể, đến lượt mình, mỗi nút ẩn sẽ

gửi kết quả đến tất cả các nút xuất.

Và mỗi nút xuất thực hiện các thao tác tương tự như đã thực hiện trong nút

ẩn để cho giá trị kết xuất của nút xuất. Giá trị của các nút xuất chính là giá trị thực,

nghĩa là giá trị của các biến phụ thuộc cần xác định.

Như vậy, bản chất của quá trình ánh xạ là xác định các đầu ra từ các đầu vào

tuỳ thuộc vào giá trị của các trọng số trong mạng.

PL.2.4.2 Quá trình học

Trong trạng thái học (còn đựơc gọi là luyện mạng), thông tin được lan truyền

theo 2 chiều nhiều lần để học các trọng số.

Cụ thể:

Quá trình luyện mạng đựơc bắt đầu bằng mạng với các trọng số tuỳ ý và tiến

hành lặp đi lặp lại 2 việc: ánh xạ và lan truyền ngược sai số. Mỗi lần lặp được gọi là

một thế hệ. Trong mỗi thế hệ, mang hiệu chỉnh các trọng số sao cho sai số giảm dần

(sai số là độ lệch giữa các kết xuất thực và các kết xuất đích đã có sẵn trong tập

mẫu). Tiến trình điều chỉnh nhiều lần giúp cho trọng dần dần đạt được tập hợp các

giá trị tối ưu. Thường mạng cần thực hiện nhiều thế hệ trước khi việc luyện mạng

hoàn tất.

Để cập nhật trọng trong mỗi thế hệ, mạng phải xử lý tất cả các mẫu trong tập

mẫu. Đối với từng mẫu, mạng thực hiện như sau:

Trước tiên, mạng thực hiện quá trình lan truyền tiến, nghĩa là mạng ánh xạ

các biến nhập của mẫu hiện hành thành các giá trị xuất bằng cách sử dụng các trọng

hiện hành. Ở những thế hệ đầu, các kết xuất thường chưa chính xác vì trọng ban đầu

do ta chọn ngẫu nhiên, chưa có gì là đúng.

Kế tiếp, sai số được tính dựa trên giá trị của kết xuất và giá trị đích lấy từ tập

mẫu. Trên cơ sở sai số tính đuợc, mạng sẽ cập nhật lại các trọng số theo nguyên tắc

lan truyền ngược sai số (gọi là giai đoạn lan truyền ngược, chi tiết sẽ được nói rõ ở

phần sau).

Page 119: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 114 -

Như vậy, để học mỗi mẫu, mạng thi hành 2 bước: lan truyền tiến – thực hiện

ánh xạ và lan truyền ngược sai số - cập nhật các trọng.

Quá trình học được diễn tả qua đoạn mã giả như sau:

Lặp

{

Duyêt qua toàn bộ tập mẫu, với một mẫu:

{

Lan truyền tiến

Tính sai số và lan truyền ngược sai số

}

Cập nhật lại trọng số của mạng nơron

}

Ta thấy ở đây chương trình có một vòng lặp vô tận. Do đó trong thực tế ta

phải thêm vào điều kiện dừng. Giải thích về đoạn mã giả trên như sau:

Tại mỗi bước lặp, chương trình duyệt qua tất cả các mẫu. Với mỗi mẫu, ta

thực hiện giai đoạn lan truyền tiến, nghĩa là xác định giá trị xuất dựa trên các trọng

số hiện có của mạng. Sau đó thực hiện tính sai số để từ đó xác định luợng thay đổi

trong mỗi trọng dựa trên mẫu này và tích luỹ toàn bộ thay đổi cần thiết của mạng.

Sau khi xử lý qua tất cả các mẫu, ta cập nhật lại trọng số dựa trên các thay đổi đã

tích luỹ được. Một lần lặp mới lại được bắt đầu.

Trong quá trình học, ta cũng có thể cho cập nhật các trọng khi xử lý từng

mẫu thay vì cập nhật trọng số sau khi đã xử lý tất cả các mẫu.

PL.2.4.3 Lan truyền ngược sai số

Để thực hiện việc học, ta phải tìm các trọng số của mạng sao cho lời giải của

mạng khớp nhất với bộ dữ liệu chứa các mẫu sẵn có. Ban đầu, các trọng số này

thường cho lời giải rất sai khác so với kết quả trong bộ dữ liệu mẫu. Nhưng từ sai số

này, các trọng số sẽ được cập nhật lại, để càng về sau, sai số sẽ càng nhỏ đi.

Page 120: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 115 -

Quá trình xác định lượng cần thay đổi cho các trọng số từ các sai số là một

quá trình khá phức tạp (do đó ở đây, chúng tôi chỉ tóm tắt lại sơ khởi qui tắc thực

hiện). Qui tắc này sử dụng các thông tin đạo hàm hàm lỗi để cập nhật lại trọng số

sao cho lỗi giảm theo hướng dốc nhất. Đây là một trong những quy tắc nguyên thuỷ

nhất của lan truyền ngược. Cụ thể, khi hoàn thành một bước lặp qua toàn bộ tập

mẫu, tất cả các trọng số của mạng sẽ được cập nhật lại dựa vào các thông tin đạo

hàm riêng theo từng trọng số tích luỹ được. Các trọng số sẽ được cập nhật theo

hướng mà hàm lỗi dốc xuống nhất.

Để dễ hiểu hơn, ta hãy tưởng tượng hàm lỗi như một mặt lồi lõm trong

không gian (gọi tắt là mặt lỗi) dựa trên các trọng số. Tại vị trí thấp nhất trong mặt

lỗi, thì giá trị của các trọng số là tốt nhất. Do đó, dựa vào độ dốc tại một điểm trên

mặt lỗi, ta sẽ xác định được hướng điều chỉnh các trọng số để lỗi là nhỏ nhất. Độ

dốc này khi phân tích ra theo từng trọng số thì chính là đạo hàm của hàm lỗi theo

trọng số đó. Vậy nên, ta có thể xác định được khoảng thay đổi cần thiết để hàm lỗi

là nhỏ nhất ứng với từng mẫu.

Chi tiết về việc tính đạo hàm có thể được tham khảo thêm trong các tài liệu

về mạng Nơron, cụ thể là quyển Mạng Nơron – Phương pháp & Ứng dụng của Tiến

sĩ Nguyễn Đình Thúc).

PL.2.5 Hàm truyền

Trong phần trước, chúng ta đã bàn về hàm truyền. Vậy hàm truyền là gì?

Một hàm s(u) được gọi là hàm truyền dạng S nếu nó thoả:

- s(u) là hàm bị chặn: nghĩa là các giá trị của s(u) không bao giờ đuợc vượt

quá chặn trên cũng như thấp hơn chăn dưới, bất chấp giá trị của u.

- s(u) là hàm đơn điệu tăng: giá trị của s(u) luôn tăng khi giá trị của u tăng,

nghĩa là nó phải tăng đều đặn. Do tính chất thứ nhất, s(u) bị chặn, ta thấy

khi u tăng, s(u) cũng lớn dần nhưng không bao giờ vượt quá cận trên, vì

Page 121: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 116 -

thế mà nó tiệm cận giới hạn là chặn trên. Và khi u nhỏ dần, s(u) tiệm cận

giới hạn là chặn dưới của hàm.

- s(u) là hàm liên tục và trơn: vì hàm s(u) liên tục nên nó không có khe và

góc cạnh, nghĩa là hàm có đạo hàm và độ dốc rõ ràng tại từng điểm phân

biệt.

Tuy nhiên trong thực tế mạng nơron, hàm logistic g(u) là hàm truyền thường

được sử dụng. Hàm logistic là hàm truyền có chặn trên là 1, chặn dưới là 0. Khi u =

0 thì hàm có giá trị là 0,5.

PL.2.6 Khởi tạo trọng

Luyện mạng là một tiến trình lặp qua nhiều bước học. Trong mỗi bước, mạng

thi hành ánh xạ với các mẫu trong tập mẫu, tính toán sai số và cập nhật lại các trọng

số dựa vào sai số vừa tính. Như vậy, trọng số sẽ được cập nhật sao cho mạng thi

hành ngày một tốt hơn. Vấn đề đặt ra là ban đầu, để mạng có thể thi hành ánh xạ ở

bước học đầu tiên thì các trọng số cần được khởi tạo như thế nào.

Do ta không biết kết xuất, nên để kết xuất ở giá trị giữa là hợp lý nhất, tức

giá trị 0,5. Chọn giá trị ở giữa sẽ cực tiểu hóa hàm sai số, bất kỳ giá trị nào khác

cũng sẽ sinh ra sai số lớn hơn.

Muốn vậy, ta khởi tạo:

Các trọng số nút ẩn giá trị ngẫu nhiên, nhỏ, phân bố đều quanh 0.

Phân nửa trọng số của các nút xuất giá trị 1 và nửa kia với giá trị -1.

PL.2.7 Vấn đề quá khớp

Khi sử dụng mạng, ta muốn mạng dự đoán càng chính xác càng tốt. Tuy

nhiên, khi ta cho mạng luyện quá nhiều, thì mạng sẽ chỉ trả lời chính xác những gì

nó được học, còn những gì không được học nó sẽ không quan tâm. Nghĩa là mạng

không có khả năng tổng quát hóa. Vấn đề này được gọi là quá khớp.

Để giải quyết vấn đề này, ta có 2 cách tiếp cận:

Page 122: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 117 -

Cách 1: tăng kích thước mẫu luyện cang lớn càng tốt, miễn máy tính vẫn còn

khả năng quản lý được.

Cách 2: giới hạn số bước luyện.

Page 123: Cham diem tu dong bieu mau thi trac nghiem

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

- 118 -

TÀI LIỆU THAM KHẢO

[1]. Nguyễn Đình Thúc, Mạng Nơron – Phương Pháp & Ứng Dụng, Nhà

Xuất Bản Giáo Dục, TP. Hồ Chí Minh

[2]. Hoàng Kiếm (chủ biên) – Dương Anh Đức – Lê Đình Duy – Vũ Hải

Quân, Cơ Sở Đồ Họa Máy Tính, tái bản lần thứ 3, Nhà Xuất Bản Giáo

Dục, TP. Hồ Chí Minh

[3]. Bryan S. Morse, Lecture 15: Segmentation (Edge Based, Hough

Transform), Brigham Young University, 1998–2000

[4]. Charles Petzold, Programming Windows With C#, Microsoft Press,

Redmond, Washington

[5]. Nguyễn Phương Lan (chủ biên) – Hoàng Đức Hải, XML – Nền Tảng &

Ứng Dụng, Nhà Xuất Bản Giáo Dục, TP. Hồ Chí Minh

[6]. Phương Lan, Lập Trình Windows Với C#.NET, in lần thứ nhất, Nhà

Xuất Bản Lao Động – Xã Hội, TP. Hồ Chí Minh

[7]. Nguyễn Tiến – Ngô Quốc Việt – Lê Tiến Sơn – Đăng Xuân Hường, Kỹ

Thuật & Ứng Dụng UML Với Rational Rose 2002, Nhà Xuất Bản

Thống Kê

[8]. The Source Forge, www.sourceforge.net

[9]. The Code Project, www.codeproject.com

[10]. The Expert Exchange, www.expert-exchange.com

HẾT