Khóa luận Tìm hiểu phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm

Tài liệu Khóa luận Tìm hiểu phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm: 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 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 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ......

pdf123 trang | Chia sẻ: hunglv | Lượt xem: 1070 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Tìm hiểu phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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 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 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... 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 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 W X 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 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 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 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 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 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 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 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 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ử 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. 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 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 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 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: 9 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. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm - 15 - 9 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. 9 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 đó. 9 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. 9 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. 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. 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: 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 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 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… 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 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 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). … … 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 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: Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm - 26 - 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 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: 9 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. 9 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ô. 9 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à 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: 9 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. 9 Chi tiết thuật toán: Từ một điểm bất kỳ nằm trong vùng cần tô: 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. 9 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. 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. 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: 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: 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 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...) 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. 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). 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. 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: 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: 9 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. 9 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. 9 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 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) 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. 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ả: 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ế. 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. 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 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: 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. 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. 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: 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: 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. 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. 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). 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. 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. 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: 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: 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. 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: 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: 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. 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: 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: 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ọa 1 Entity Lớp chung để vẽ các đối tượng 2 Text Văn bản. 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. 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 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 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: 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 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 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: 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: 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 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

Các file đính kèm theo tài liệu này:

  • pdfUnlock-01121720112177.pdf
Tài liệu liên quan