-Nếu thông tin bài làm không hợp lệ thì hệ thống sẽ trả về thông báo bài làm không hợp lệ.. -Hệ thống yêu cầu người quản trị phải đăng nhập thành công.. Điều kiện sau khi hoàn thành -Hệ
Trang 1TRƯỜNG CAO ĐẲNG NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN THÀNH ĐẬM -205205007
CHƯƠNG TRÌNH XỬ LÝ CHẤM ĐIỂM CÁC BÀI THI TRẮC NGHIỆM TRÊN GIẤY
KHÓA LUẬN TỐT NGHIỆP
GIÁO VIÊN HƯỚNG DẪN ĐINH THANH HỒNG
KHÓA: 2005-2008
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Tp Hồ Chí Minh, ngày……tháng… năm 2008
Giáo viên hướng dẫn [Ký tên và ghi rõ họ tên]
Trang 3NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Tp Hồ Chí Minh, ngày……tháng… năm 2008
Giáo viên phản biện [Ký tên và ghi rõ họ tên]
Trang 4LỜI CÁM ƠN
Chúng em xin chân thành cám ơn Khoa Công nghệ Thông Tin Trường Cao Đẳng Nguyễn Tất Thành đã tạo điều kiện thuận lợi cho chúng em học tập
và thực hiện đề tài tốt nghiệp này
Chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Đinh Thanh Hồng đã tận tình hướng dẫn, chỉ bảo chúng em trong quá trình thực hiện đề tài
Chúng em xin chân thành cám ơn quý Thầy, Cô trong khoa Công Nghệ Thông Tin đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong những năm học vừa qua
Xin gửi lời cám ơn chân thành đến gia đình, Ba Mẹ và bè bạn vì đã luôn
là nguồn động viên to lớn, giúp đỡ chúng em vượt qua những khó khăn trong suốt quá trình làm việc
Mặc dù đã cồ gắng hoàn thành khóa luận trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót.Chúng em rất mong nhận được sự thông cảm, góp ý và tận tỉnh chỉ bảo của quý thầy cô và các bạn
Tp Hồ Chí Minh, Ngày 17 Tháng 8 Năm 2008
Nhóm sinh viên thực hiện Nguyễn Thành Đậm-Văn Hùng
Trang 5ĐỀ CƯƠNG CHI TIẾT
Tên đề tài:Chương trình xử lý chấm điểm các bài thi trắc nghiệm trên giấy Giáo viên hướng dẫn:Đinh Thanh Hồng
Thời gian thực hiện:Từ 9/04/08 đến 11/08/08
Sinh viên thực hiện:
Loại đề tài:Viết chương trình
Nội dung đề tài:Xây dựng chương trình nhận dạng kết quả trả lời của bài thi trắc nghiệm trên giấy,chấm điểm và ghi nhận kết quả
-Đề cương chi tiết
- Use Case Diagram -Giao diện các form
Trang 6Tuấn 9,10
(từ 16/6-30/6)
-Nhận dạng kết quả bài làm -Chương trình nhận dạng
kết quả của bài thi
- Bổ sung khóa luận
Tuần 11,12
(từ 30/6-14/7)
-So sánh đáp án xác định điểm -Chương trình xác định
điểm của bài thi dựa vào đáp án
- Bổ sung khóa luận
-Lưu kết quả bài thi -Hoàn thành báo cáo viết
Tuần 16,17
(từ
28/07-11/8)
-Chạy thử chương trình và chỉnh sửa
Trang 7MỤC LỤC
Tóm tắt khóa luận 9
Chương1 Mở đầu 10
1.1. Tổng quan 10
1.2. Mục tiêu đề tài 10
Chương2 Giai đoạn phân tích 11
2.1. Xác định vấn đề 11
2.1.1.Các vấn đề 11
2.1.2.Các mong đợi 11
2.2. Các Actor 11
2.3. Sơ đồ Use-case 12
2.4. Đặc tả Use-case 13
2.4.1.Use case: Đăng nhập hệ thống 13
2.4.2.Use case: Nhận dạng bài thi 14
2.4.3.Use case: Tổ chức thi 15
2.4.4.Use case: Quét bài thi 16
2.4.5.Use case: Xem bảng điểm 17
2.4.6.Use case: Chấm điểm và lưu điểm bài thi 18
2.5 Các sơ đồ Sequences Diagram 19
2.5.1.Sơ đồ Sequences Diagram nhận dạng bài thi 19
2.5.2.Sơ đồ Sequences Diagram nhận chấm điểm bài thi 20
2.6. Các sơ đồ Collaboration 22
2.6.1.Sơ đồ Collaboration nhận dạng bài thi 22
2.6.2.Sơ đồ Collaboration chấm điểm bài thi 23
Sơ đồ mô hình dữ liệu 24
Trang 82.8. Mô tả chi tiết các bảng 25
Chương3 Giai đoạn thiết kế 33
Chương4 Xác định thuật toán 36
4.1. Cấu trúc của một ảnh Bipmap 36
4.2. Thuật toán đọc và hiển thị file ảnh Bipmap 37
4.3. Thuật toán xử lý ảnh Bipmap 38
Chương5 Tiến hành cài đặt 44
5.1. Môi trường cài đặt 44
5.2. Đánh giá kết quả đạt được 44
5.3. Hướng phát triển 44
5.4. Kết luận: 45
Danh mục tham thảo 46
Trang 9Tóm tắt khóa luận
v Vấn đề nghiên cứu: Xây dựng chương trình nhận dạng kết quả trả lời của bài thi trắc nghiệm trên giấy, sau đó lưu và ghi nhận lãi kết quả xuống cơ sở dữ liệu
v Phương pháp tiếp cận: Sử dụng cách tiếp cận như sau
o Nhận dạng và đọc các điểm ảnh trong file ảnh BMP
o Mô hình chấm điểm các bài thi trắc nghiệm trên giấy theo hai giai đoạn.Gai đoạn thứ nhất là tiền xử lý ảnh đó là nhận dạng và đọc được file ảnh BMP.Giai đoạn thứ hai so sánh kết quả nhận dạng dược với các đáp án đúng trong cơ sở dữ liệu
v Kết quả đạt được: Chương trình hoạt động tốt và đạt được một số kết quả như sau:
o Tìm hiểu được về cấu trúc của một file ảnh bitmap
o Đọc và hiển thị file ảnh bitmap
o Nhận dạng được số báo danh, mã số đề thi, số câu hỏi, phương án trả lời của bài làm,số câu hợp lệ,không hợp lệ
o So sánh đáp án của câu hỏi trong bài làm với đáp án của đề thi và
từ đó chấm điểm bài làm
o Lưu kết quả bài làm xuống cơ sở dữ liệu
Trang 10Bộ Giáo Dục nước ta đang tiến hành đưa phương pháp thi trắc nghiệm vào các kỳ thi tuyển sinh đại học trong những năm tới.Còn ở các trường từ phổ thông đến đại học, thì hình thức thi trắc nghiệm cũng đã và đang được sử dụng trong hầu hết các môn thi.Nhìn chung, phương pháp thi trắc nghiệm đang là xu hướng trong đào tạo
1.2 Mục tiêu đề tài
Sau khi tìm hiểu và nghiên cứu các phương pháp chầm điểm thủ công trước đây, chúng em đã và đang xây dựng một chương trình chấm điểm các bài thi trên giấy với mục tiêu: hỗ trợ việc chấm điểm các bài thi trắc nghiệm trên giấy một cách dễ dàng và nhanh chóng mà độ chính xác lại cao
Trang 11Chương2 Giai đoạn phân tích
2.1 Xác định vấn đề
2.1.1 Các vấn đề
v Việc phân chia các mã đề thi và các bài làm của thí sinh gặp
nhiều khó khăn
v Việc chấm điểm bằng thủ công còn gặp nhiều khó khăn, mất thời
gian và còn nhiều sai sót
v Việc nhập và lưu điểm bằng tay vào sổ sách mất nhiều thời gian
và dễ sai sót 2.1.2 Các mong đợi
v Chương trình mới này giúp việc nhận dạng các bài làm theo mã
2.2.1 Sinh viên:Đăng nhập hệ thống được quyền xem điểm
2.2.2 Giáo viên:Đăng nhập hệ thống được quyền xem bảng điểm,xem tra cứu đề thi
2.2.3 Quản trị:Đăng nhập hệ thống được quyền quét bài thi,tổ chức thi,xem tra cứu đề thi,nhận dạng bài thi,chấm điểm và lưu điểm
Trang 122.3 Sơ đồ Use-case
Sơ đồ mức hai của nhận dạng bài thi
nhan dang bai thi
nhan dang so bao danh
nhan dang ma de thi
nhan dang cau hoi va phuong an
<<extend>>
<<extend>>
<<extend>>
Trang 132.4 Đặc tả Use-case
2.4.1 Use case: Đăng nhập hệ thống
2.4.1.1 Tóm tắt
-Use case này mô tả chức năng đăng nhập vào hệ thống
của giáo viên, sinh viên, quản trị
2.4.1.2 Dòng sự kiện
2.4.1.2.1 Dòng sự kiện chính
-Use case này bất đầu khi một Actor muốn đăng nhập vào
hệ thống
-Hệ thống yêu cầu chọn một trong bốn người dùng
-Hệ thống yêu cầu nhập tên và mật khẩu
-Người dùng nhập tên và mật khẩu
-Hệ thống kiểm tra tên và mật khẩu, xác nhận là đúng và
cho phép người dùng đăng nhập vào hệ thống
2.4.1.2.2 Dòng sự kiện khác
-Tên mật khẩu sai: Nếu trong dòng sự kiện chính, Actor nhập sai tên hoặc mật khẩu hoặc cã hai.Hệ thống sẽ hiển thị thông báo lỗi.Actor có thể chọn trở về đầu dòng sự
kiện chính hoặc hủy bỏ việc đăng nhập
2.4.1.3 Các yêu cầu đặc biệt: Không có
2.4.1.4 Điều kiện tiên quyết: Không có
2.4.1.5 Điều kiện sau khi hoàn thành
Trang 14-Nếu actor nhập sai tên hoặc mật khẩu thì hệ thống sẽ thông báo lỗi và nếu đăng nhập quá 3 lần cùng một tên thì hệ thống sẽ
ngừng hoạt động cũa người sử dụng này
-Nếu thông tin bài làm không hợp lệ thì hệ thống sẽ trả về
thông báo bài làm không hợp lệ
2.4.2.3 Các yêu cầu đặc biệt: Không có
2.4.2.4 Điều kiện tiên quyết
Trang 15-Hệ thống yêu cầu người quản trị phải đăng nhập thành công 2.4.2.5 Điều kiện sau khi hoàn thành
-Hệ thống phải xuất thông báo là thông tin bài làm là hợp lệ hay
không hợp lệ cho người sử dụng biết
2.4.2.6 Điểm mở rộng: Không có
2.4.3 Use case: Tổ chức thi
2.4.3.1 Tóm tắt
-Use case này mô tả chức năng tổ chức thi cho sinh
viên.Người quản trị là actor chính của use_case này
-Hệ thống yêu cầu người sử dụng đánh số kỳ thi
-Hệ thống sẽ tiến hành kiểm tra thông tin của kỳ thi theo
quy định và sẽ trả về thông báo kỳ thi hợp lệ
2.4.3.2.2 Dòng sự kiện khác
-Nếu thông tin kỳ thi không hợp lệ thì hệ thống sẽ trả về
thông báo kỳ thi không hợp lệ
2.4.3.3 Các yêu cầu đặc biệt: Không có
2.4.3.4 Điều kiện tiên quyết
Trang 16-Hệ thống yêu cầu người quản trị phải đăng nhập thành công 2.4.3.5 Điều kiện sau khi hoàn thành
-Hệ thống phải xuất thông báo là thông tin kỳ thi là hợp lệ hay
không hợp lệ cho người sử dụng biết
-Hệ thống yêu cầu người sử dụng chọn máy scan -Hệ thống sẽ tiến hành kiểm tra thông tin giấy scan nếu
hợp lệ thì thông báo cho người sử dụng biết 2.4.4.2.2 Dòng sự kiện khác
-Nếu thông tin giấy không hợp lệ thì hệ thống sẽ trả về
thông báo giấy không hợp lệ
2.4.4.3 Các yêu cầu đặc biệt: Không có
2.4.4.4 Điều kiện tiên quyết
Trang 17-Hệ thống yêu cầu người quản trị phải đăng nhập thành công 2.4.4.5 Điều kiện sau khi hoàn thành
-Hệ thống phải xuất thông báo là thông tin giấy là hợp lệ hay
không hợp lệ cho người sử dụng biết
2.4.4.6 Điểm mở rộng: Không có
2.4.5 Use case: Xem bảng điểm
2.4.5.1 Tóm tắt
-Use case này mô tả chức năng xem bảng điểm của sinh
viên.Người quản trị và sinh viên là actor chính của use_case này 2.4.5.2 Dòng sự kiện
-Nếu thông tin xem điểm không hợp lệ thì hệ thống sẽ trả
về thông báo điểm không hợp lệ
2.4.5.3 Các yêu cầu đặc biệt: Không có
2.4.5.4 Điều kiện tiên quyết
Trang 18-Hệ thống yêu cầu người quản trị và sinh viên phải đăng nhập
thành công
2.4.5.5 Điều kiện sau khi hoàn thành
-Hệ thống phải xuất thông báo là thông tin điểm là hợp lệ hay
không hợp lệ cho người sử dụng biết
-Trả về bài thi cùng số điểm chấm thông qua đáp án có sẳn
của câu hỏi trong bài thi
2.4.6.3 Các yêu cầu đặc biệt: Không có
2.4.6.4 Điều kiện tiên quyết
Trang 19-Yêu cầu người quản trị phải đăng nhập thành công
-Chỉ chấm được những bài thi thỏa điều kiện nhận dạng
2.4.6.5 Điều kiện sau khi hoàn thành
-Hệ thống phải trả ra số điểm của bài thi
2.4.6.6 Điểm mở rộng: Không có
2.5 Các sơ đồ Sequences Diagram
2.5.1 Sơ đồ Sequences Diagram nhận dạng bài thi
Trang 202.5.2 Sơ đồ Sequences Diagram nhận chấm điểm bài thi
Trang 222.6 Các sơ đồ Collaboration
2.6.1 Sơ đồ Collaboration nhận dạng bài thi
Trang 232.6.2 Sơ đồ Collaboration chấm điểm bài thi
Trang 242.7 Sơ đồ mô hình dữ liệu
Trang 252.8 Mô tả chi tiết các bảng
2.8.1 Mô tả bảng sinh viên
Vùng Diễn giải Kiểu dữ
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
MSSV Mã số sinh
viên
TenSV Tên sinh viên Varchar 50 >=1
NgaySinh Ngày sinh Date
Giá giới hạn
Giá trị ngầm định
Ràng buộc
2.8.3 Mô tả bảng khoa
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
TenKhoa Tên khoa Varchar 50 >=1
TruongKhoa Trưởng khoa Varchar 50 >=1
Trang 262.8.4 Mô tả bảng môn học
Vùng Diễn giải Kiểu dữ
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Giá giới hạn
Giá trị ngầm định
Ràng buộc
LanThi Lần thi Integer
2.8.6 Mô tả bảng nội dung đề thi
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
Trang 272.8.7 Mô tả bảng đề thi
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
TenDeThi Tên đề thi Varchar 50
STTDe Số thứ tự đề Integer
ThoiGian Thời gian char 10 >=1
MSGV Mã số giáo
viên
2.8.8 Mô tả bảng câu hỏi
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
NoiDung Nội dung Varchar 200 >=1
Trang 282.8.9 Mô tả bảng trả lời
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
PhuongAn Phương án Varchar 200 >=1
Giá giới hạn
Giá trị ngầm định
Ràng buộc
MSSV Mã số sinh
viên
ChonPA Chọn phương
án
Trang 292.8.11 Mô tả bảng kết quả
Vùng Diễn giải Kiểu dữ liệu Kích
thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
Giá trị ngầm định
Ràng buộc
Trang 302.8.13 Mô tả bảng quy định kiến thức
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
Integer
SoLuongCauHoi
KhoDo2
Số lượng câu hỏi khó độ 2
Integer
SoLuongCauHoi
KhoDo3
Số lượng câu hỏi khó độ 3
Integer
Trang 312.8.14 Mô tả bảng cấp độ
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
Giá giới hạn
Giá trị ngầm định
Ràng buộc IDNhóm Mã số đồng
Trang 322.8.16 Mô tả bảng Giáo viên
liệu
Kích thước
Giá giới hạn
Giá trị ngầm định
Ràng buộc
Trang 33Chương3 Giai đoạn thiết kế
Màn hình đăng nhập
Màn hình chọn công cụ nhận dạng và chấm điểm
Trang 34Cơ chế hoạt động của hệ thống
In điểm
Mở tập tin ảnh
Hệ thống nhận dạng
và chấm điểm
Chọn tên lượt thi
Trang 35Màn hình chính của chương trình nhận dạng và chấm điểm
Trang 36Chương4 Xác định thuật toán
4.1 Cấu trúc của một ảnh Bipmap
-Gồm 3 phần: - BitmapHeader
-BitmapInfor
-BitmapData
a) BitmapHeader: gồm 14 byte
1-2 Nhận dạng file Kiểu arrayp[1 2] of char:chứa ký tự BM 3-6 Kích thước file Kiểu Longint: tính bằng byte
7-10 Reserve nt : tôi chưa biết(có lẽ là tên file thừa)
11-14 Byte bắt đầu Kiểu longint, vị trí byte bắt đầu vùng vùng data data kể từ đầu file
b) BitmapInfor: gồm 40 byte
1-4 Số byte trong vùng info Kiểu Longint, hiện tại có
giá trị 40
5-8 Chiều rộng bitmap Kiểu longint tính bằng pixel
9-12 Chiều cao bitmap Kiểu longint tính bằng pixel
13-14 Số Planes màu Kiểu Word số bảng màu
15-16 Số bits cho một pixel Kiểu Word, các giá trị có
thể có 1: Đen/trắng, 4:16
màu, 8:256 màu, 24: 24bit màu
17-20 Kiểu nén dữ liệu Kiểu Longint có giá trị là 0: Không nén 1: Nén runlength+8bit/pixel
2: Nén runlength+4bit/pixel
21-24 Kích thước ảnh Kiểu Longint, bằng số byte của ảnh 25-28 Độ phân giải ngang Kiểu Longint, tính bằng pixel
29-32 Độ phân giải dọc Kiểu Longint, tính bằng pixel
33-36 Số màu được sử dụng Kiểu Longint trong ảnh
37-40 Số màu được sử dụng Kiểu Longint khi hiện ảnh
Bitmap palette
Trang 37-Tiếp theo sau vùng info là palette màu của BMP, gồm nhiều bộ có kích thước bằng 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red và một Byte dành riêng cho Itensity.Kích thước của vùng Palette màu bằng 4*số màu của ảnh.Vì Palette màu của màn hình có cấu tạo theo thứ tự Red-Green-Blue, nên khi đọc palette màu của ảnh BMP vào ta phải chuyển đổi lại cho phù hợp Số màu của ảnh được biết dựa trên số bít cho 1 pixel cụ thể là: 8bits/pixel: ảnh 256 màu, 4bits/pixel: ảnh 16 màu, 24bits/pixel ảnh
theo số bits cho một pixel
4.2 Thuật toán đọc và hiển thị file ảnh Bipmap
-Thuật toán hiển ảnh BMP gồm các bước sau:
B1:-Khai báo cấu trúc ảnh bitmap
B2:-Đọc BitmapHeader để nhận dạng file có đúng là BMP thật không (hai byte đầu tiên là "BM") và xác định Byte bắt đầu vùng Bitmap Data B3:-Đọc BitmapInfo để lấy các thông tin cơ bản về ảnh như chiểu rộng, chiều cao, số Bits cho 1 pixel từ đó suy ra số màu và kích thước palette màu
B4:-Đọc Palette màu và chuyển đổi palette màu từ dạng Red-Reverse sang Ren-Green-Blue
Blue-Green-B5:-Đọc phần Bitmap Data, tính toán và vẽ từng điểm ra màn hình theo thứ tự từ trái qua phải và từ dưới lên trên
Trang 384.3 Thuật toán xử lý ảnh Bipmap
4.3.1 Xác định vị trí
4.3.1.1 Vị trí đáp án
Private Sub GetViTri(ByVal SttCau As Long, ByVal PhuongAn AsLong, ByRef x AsLong, ByRef y AsLong)
x = csGOC1_X - csPAGOC1_Dx + ((SttCau - 1) \ csSOCAUMOICOT) *
csCOL_Dy + (PhuongAn - 1) * csPA_Dx
y = csGOC1_Y + csPAGOC1_Dy + ((SttCau - 1) Mod
x = csGOC1_X - cschisobdGOC1_Dx + (sttsosbd - 1) * cssbd_Dx
y = csGOC1_Y + cschisobdGOC1_Dy + (chisosbd - 1) * cssbd_Dy
EndSub
4.3.1.3 Vị trí mã đề thi
PrivateSub getvitridethi(ByVal sttsodethi AsLong, ByVal chisodethi
AsLong, ByRef x AsLong, ByRef y AsLong)
x = csGOC1_X - cschisodtGOC1_Dx + (sttsodethi - 1) * cssbd_Dx
y = csGOC1_Y + cschisodtGOC1_Dy + (chisodethi - 1) * cssbd_Dy
EndSub
4.3.2 Đọc file ảnh BMP
PrivateSub docbmp()
Dim Position AsLong = 0, temp AsInteger = 0
OnErrorGoTo Handle_FileError
Me.Cursor = Cursors.WaitCursor