Khóa luận Chương trình xử lý chấm điểm các bài thi trắc nghiệm trên giấy

pdf 46 trang yendo 4640
Bạn đang xem 20 trang mẫu của tài liệu "Khóa luận Chương trình xử lý chấm điểm các bài thi trắc nghiệm trên giấy", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfkhoa_luan_chuong_trinh_xu_ly_cham_diem_cac_bai_thi_trac_nghi.pdf

Nội dung text: Khóa luận Chương trình xử lý chấm điểm các bài thi trắc nghiệm trên giấy

  1. TRƯỜNG CAO ĐẲNG NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THÀNH ĐẬM -205205007 VĂN HÙNG -205205021 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 1
  2. NHẬ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] 2
  3. NHẬ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] 3
  4. LỜ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 4
  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: Nguyễn Thành Đậm MSSV:205205007 Văn Hùng MSSV:205205021 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ả. Kế hoạch thực hiện Tuần Nội dung thực hiện Kết quả Tuần 1 -Thiết kế sơ đồ màn hình. -Đề cương chi tiết (từ 21/04- -Thiết kế giao diện các form. - Use Case Diagram 28/04) -Thiết kế xử lý. -Giao diện các form Tuần 2 -Thiết kế cơ sở dữ liệu. -Mô hình TTKH ER (từ 28/04-5/5) -Xác định cơ chế nhận dạng. -Giải thuật nhận dạng -Sườn khóa luận Tuần 3 - Đọc và hiển thị nội dung file -Chương trình đọc và hiển (từ 5/5-12/5) ảnh thị file ảnh -Một phần khóa luận Tuần 4 - Như trên - Như trên (từ 12/5-19/5) Tuần 5 -Xử lý định vị điểm gốc. -Định vị và được điểm gốc (từ 19/5-26/5) của file ảnh - Bổ sung khóa luận Tuần 6 -Xử lý ảnh lệch -Kết quả chương trình xử (từ 26/5-2/6) lý ảnh lệch -Một phần khóa luận Tuần 7 -Xử lý ảnh nghiêng,mờ -Kết quả chương trình xử (từ 2/6-9/6) lý ảnh nghiêng,mờ. -Bổ sung khóa luận Tuần 8 Hoàn chỉnh các kết quả chuẩn bị (từ 9/6-16/6) báo cáo lần 1 5
  6. Tuấn 9,10 -Nhận dạng kết quả bài làm -Chương trình nhận dạng (từ 16/6-30/6) kết quả của bài thi. - Bổ sung khóa luận Tuần 11,12 -So sánh đáp án xác định điểm. -Chương trình xác định (từ 30/6-14/7) điểm của bài thi dựa vào đáp án - Bổ sung khóa luận Tuần 13 -Nhận dạng mã số sinh viên. -Chương trình nhận dạng (từ 14/7-21/7) mã số sinh viên. -Hoàn thành cơ bản về báo cáo viết. Tuấn 14,15 -Lưu các kết quả bài thi(mã số -Lưu kết quả bài thi (từ 14/7-28/7) sinh viên,kỳ thi,kết quả làm,điểm -Hoàn thành báo cáo viết số). Tuần 16,17 -Chạy thử chương trình và chỉnh -Như trên (từ 28/07- sửa 11/8) Tuần 18 -Nộp báo cáo khóa luận về VPK -Báo cáo PPT (từ 11/8-18/8) -Xây dựng báo cáo dạng PowerPoint (PPT) -Chuẩn bị bảo vệ Tuần 19 -Bảo vệ chính thức. (từ 18/8-25/8) Xác nhận cũa GVHD Ngày 21 Tháng 04 Năm 2008 Nhóm SV thực hiện Nguyễn Thành Đậm Văn Hùng 6
  7. MỤ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 2.7. Sơ đồ mô hình dữ liệu 24 7
  8. 2.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 8
  9. Tó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. 9
  10. Chương1 Mở đầu 1.1. Tổng quan Trong những năm gần đây, sự phát triển của công nghệ thông tin đã và đang làm thay đổi cục diện thế giới.Mọi ngành nghề, mọi lĩnh vực như kinh tế, y khoa, công nghiêp, dần dần đã được tin học hóa làm cho công việc ngày càng trở nên dễ dàng, nhanh chóng, chính xác hơn.Đặc biệt là trong công tác giáo dục việc tin học hóa góp phần nâng cao chất lượng dạy và học.Trong thi cử cũng vậy, để đảm bảo chất lượng của một kỳ thi tính khách quan, chính xác phải được đặt lên hàng đầu. Sự kết hợp giữa trắc nghiệm và tin học hóa không những đáp ứng được các yêu cầu đó, mà còn giúp tiết kiệm chi phí tổ chức thi, thời gian công sức của giáo viên đồng thời kết quả lại nhanh chóng và có độ chính xác cao.Với các ưu điểm trên, Bộ 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. 10
  11. Chươ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ã đề thi một cách nhanh chóng và chính xác. v Chấm điểm tự động một cách nhanh chóng nhờ vào việc so sánh các đáp án trong cơ sở dữ liệu một cách nhanh chóng và chính xác. v Nhập và lưu điểm một cách nhanh chóng và không mất nhiều thời gian. 2.2. Các Actor 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 11
  12. 2.3. Sơ đồ Use-case Sơ đồ mức hai của nhận dạng bài thi nhan dang so bao danh > nhan dang ma de thi nhan dang bai thi > > nhan dang cau hoi va phuong an 12
  13. 2.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 13
  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. 2.4.1.6. Điểm mở rộng: Không có 2.4.2. Use case: Nhận dạng bài thi 2.4.2.1. Tóm tắt -Use case này mô tả chức năng nhận dạng bài thi của sinh viên khi được scan qua máy.Người quản trị là actor chính của use_case này. 2.4.2.2. Dòng sự kiện 2.4.2.2.1. Dòng sự kiện chính -Use case này bắt đầu khi người quản trị muốn nhận dạng bài làm có hợp lệ hay không. -Hệ thống yêu cầu người sử dụng chọn chức năng nhận dạng bài thi. -Hệ thống yêu cầu người sử dụng chọn nút browse để chọn file ảnh của một bài làm. -Hệ thống sẽ tiến hành kiểm tra thông tin của bài làm theo quy định và sẽ trả về thông báo bài thi hợp lệ có thể chấm điểm nếu thỏa điều kiện. 2.4.2.2.2. Dòng sự kiện khác -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 14
  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. 2.4.3.2. Dòng sự kiện 2.4.3.2.1. Dòng sự kiện chính -Use case này bắt đầu khi người quản trị muốn tổ chức một kỳ thi -Hệ thống yêu cầu người sử dụng chọn chức năng tổ chức kỳ thi. -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 15
  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. 2.4.3.6. Điểm mở rộng: Không có 2.4.4. Use case: Quét bài thi 2.4.4.1. Tóm tắt -Use case này mô tả chức năng quét bài thi của sinh viên khi sinh viên làm bài xong.Người quản trị là actor chính của use_case này. 2.4.4.2. Dòng sự kiện 2.4.4.2.1. Dòng sự kiện chính -Use case này bắt đầu khi người quản trị muốn quét bài thi -Hệ thống yêu cầu người sử dụng chọn chức năng quét bài thi. -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 16
  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 2.4.5.2.1. Dòng sự kiện chính -Use case này bắt đầu khi người quản trị và sinh viên muốn xem điểm. -Hệ thống yêu cầu người sử dụng chọn chức năng xem điểm bài thi. -Hệ thống yêu cầu người sử dụng chọn nút xem điểm. -Hệ thống sẽ tiến hành kiểm tra thông tin và xuất ra bảng điểm của các sinh viên. 2.4.5.2.2. Dòng sự kiện khác -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 17
  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. 2.4.5.6. Điểm mở rộng: Không có 2.4.6. Use case: Chấm điểm và lưu điểm bài thi 2.4.6.1. Tóm tắt -Use case này mô tả chức năng tự động chấm điểm các bài thi sau khi đã nhận dạng là hợp lệ.Người quản trị là actor chính của use case này. 2.4.6.2. Dòng sự kiện -Use case này bắt đầu khi người sử dụng muốn chấm điểm các bài thi sau khi đã nhận dạng. -Hệ thống yêu cầu người sử dụng chọn chức năng chấm điểm bài thi. -Hệ thống yêu cầu người sử dụng chọn nút browse để chọn file ảnh của một bài làm đã được nhận dạng. -Hệ thống sẽ tiến hành chấm điểm bài làm một cách tự động khi người sử dụng nhấn vào nút chấm điểm. -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 18
  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 19
  20. 2.5.2. Sơ đồ Sequences Diagram nhận chấm điểm bài thi 20
  21. 2.6. Các sơ đồ Collaboration 2.6.1. Sơ đồ Collaboration nhận dạng bài thi 22
  22. 2.6.2. Sơ đồ Collaboration chấm điểm bài thi 23
  23. 2.7. Sơ đồ mô hình dữ liệu 24
  24. 2.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ữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định MSSV Mã số sinh Char 10 >=1 PK viên TenSV Tên sinh viên Varchar 50 >=1 NgaySinh Ngày sinh Date MSLop Mã số lớp Char 10 >=1 FK 2.8.2. Mô tả bảng lớp Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định MSLop Mã số lớp Char 10 >=1 PK IDKhoa Mã số khoa Char 10 >=1 FK TenLop Tên lớp Varchar 50 >=1 2.8.3. Mô tả bảng khoa Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định IDKhoa Mã số khoa Char 10 >=1 PK TenKhoa Tên khoa Varchar 50 >=1 TruongKhoa Trưởng khoa Varchar 50 >=1 25
  25. 2.8.4. Mô tả bảng môn học Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định MSMH Mã số môn học Char 10 >=1 PK TenMH Tên môn học Varchar 50 >=1 2.8.5. Mô tả bảng kỳ thi Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định IDKyThi Mã kỳ thi Char 10 >=1 PK LanThi Lần thi Integer Phong Phòng Char 10 >=1 GiamThi Giám thị Varchar 50 >=1 MSMH Mã số môn Varchar 10 >=1 FK học 2.8.6. Mô tả bảng nội dung đề thi Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định IDDT Mã đề thi Char 10 >=1 PK,FK STTCau Số thứ tự câu Integer PK IDCauHoi Mã câu hỏi Char 10 >=1 FK 26
  26. 2.8.7. Mô tả bảng đề thi Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định IDDT Mã đề thi Char 10 >=1 PK TenDeThi Tên đề thi Varchar 50 STTDe Số thứ tự đề Integer ChiSo Chỉ số Integer ThoiGian Thời gian char 10 >=1 IDKyThi Mã kỳ thi Char 10 >=1 FK DoKho Độ khó Char 10 >=1 FK MSGV Mã số giáo Varchar 20 >=1 FK viên 2.8.8. Mô tả bảng câu hỏi Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định IDCauHoi Mã câu hỏi Char 10 >=1 PK NoiDung Nội dung Varchar 200 >=1 DoKho Độ khó int IDHP Mã học phần int FK IDNhom Mã nhóm int FK Sudung Sử dụng bit 27
  27. 2.8.9. Mô tả bảng trả lời Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định IDCauHoi Mã câu hỏi Char 10 >=1 PK,FK PhuongAn Phương án Varchar 200 >=1 ThuTu Thứ Tự Integer LaDung Câu đúng Bit 2.8.10. Mô tả bảng bài làm Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng buộc liệu thước hạn ngầm định MSSV Mã số sinh Char 10 >=1 PK,FK viên STTCau Số thứ tự câu Integer PK,FK IDDT Mã đề thi Char 10 >=1 PK,FK ChonPA Chọn phương Char 10 >=1 án 28
  28. 2.8.11. Mô tả bảng kết quả Vùng Diễn giải Kiểu dữ liệu Kích Giá giới Giá trị Ràng thước hạn ngầm buộc định IDKyThi Mã kỳ thi Char 10 >=1 PK,FK MSSV Mã số sinh Char 10 >=1 PK,FK viên MSMH Mã số môn Char 10 >=1 PK,FK học DiemSo Điểm số DECIMAL(10,2) 2.8.12. Mô tả bảng học phần Vùng Diễn giải Kiểu dữ liệu Kích Giá giới Giá trị Ràng thước hạn ngầm buộc định IDHP Mã học phần Char 10 >=1 PK MSMH Mã số môn học Char 10 >=1 FK TenHP Tên học phần Char 50 ThuTu Thứ tự Integer 29
  29. 2.8.13. Mô tả bảng quy định kiến thức Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng liệu thước hạn ngầm định buộc IDCapDo Mã cấp Char 10 >=1 PK,FK độ IDHP Mã học Char 10 >=1 PK,FK phần SoluongCauHoi Số lượng Integer câu hỏi CauHoiDong Câu hỏi Integer đồng DangToiDa đạng tối đa SoLuongCauHoi Số lượng Integer KhoDo1 câu hỏi khó độ 1 SoLuongCauHoi Số lượng Integer KhoDo2 câu hỏi khó độ 2 SoLuongCauHoi Số lượng Integer KhoDo3 câu hỏi khó độ 3 30
  30. 2.8.14. Mô tả bảng cấp độ Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng liệu thước hạn ngầm định buộc IDCapDo Mã cấp độ Char 10 >=1 PK TenCapDo Tên cấp độ Varchar 50 >=1 SoluongCau Số lượng Integer Hoi câu hỏi 2.8.15. Mô tả bảng Nhóm đồng dạng Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng liệu thước hạn ngầm định buộc IDNhóm Mã số đồng Integer PK dạng Ten Tên nhóm Varchar 50 >=1 IDHP Mã học Integer FK phần 31
  31. 2.8.16. Mô tả bảng Giáo viên Vùng Diễn giải Kiểu dữ Kích Giá giới Giá trị Ràng liệu thước hạn ngầm định buộc MSGV Mã số giáo Varchar 20 PK viên TenGV Tên giáo Varchar 50 >=1 viên IDKhoa Mã số khoa Integer FK Truongkhoa Trưởng Varchar 50 khoa 32
  32. Chươ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 33
  33. Cơ chế hoạt động của hệ thống Hệ thống nhận dạng và chấm điểm Chọn tên In bài làm lượt thi In điểm Mở tập tin ảnh Nhận dạng Lưu bài Chấm điểm Thoát khỏi chương trình 34
  34. Màn hình chính của chương trình nhận dạng và chấm điểm 35
  35. Chươ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 36
  36. -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 24 bít màu c). BitmapData: -Phần này kề tiếp ngay sau Palette màu của BMP.Đây là phần chứa các giá trị màu của các điểm ảnh trong BMP.Các điểm ảnh được lưu theo thứ tự từ trái qua phải trên một dòng và các dòng lại được lưu theo thứ tự dưới lên trên.Mỗi Byte trong vùng BitmapData biểu diễn 1 hoặc nhiều điểm ảnh tùy 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 Blue-Green- Red-Reverse sang Ren-Green-Blue. 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. 37
  37. 4.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 As Long, ByRef x As Long, ByRef y As Long) x = csGOC1_X - csPAGOC1_Dx + ((SttCau - 1) \ csSOCAUMOICOT) * csCOL_Dy + (PhuongAn - 1) * csPA_Dx y = csGOC1_Y + csPAGOC1_Dy + ((SttCau - 1) Mod csSOCAUMOICOT) * csPA_Dy End Sub 4.3.1.2. Vị trí số báo danh Private Sub getvitrisbd(ByVal sttsosbd As Long, ByVal chisosbd As Long, ByRef x As Long, ByRef y As Long) x = csGOC1_X - cschisobdGOC1_Dx + (sttsosbd - 1) * cssbd_Dx y = csGOC1_Y + cschisobdGOC1_Dy + (chisosbd - 1) * cssbd_Dy End Sub 4.3.1.3. Vị trí mã đề thi Private Sub getvitridethi(ByVal sttsodethi As Long, ByVal chisodethi As Long, ByRef x As Long, ByRef y As Long) x = csGOC1_X - cschisodtGOC1_Dx + (sttsodethi - 1) * cssbd_Dx y = csGOC1_Y + cschisodtGOC1_Dy + (chisodethi - 1) * cssbd_Dy End Sub 4.3.2. Đọc file ảnh BMP Private Sub docbmp() Dim Position As Long = 0, temp As Integer = 0 On Error GoTo Handle_FileError Me.Cursor = Cursors.WaitCursor 38
  38. FileOpen(1, listdsbt.Text, OpenMode.Binary) ' Doc phan Header Position = 1 FileGet(1, HeaderBmp.NhanDangFile, Position) Position = Position + 2 FileGet(1, HeaderBmp.KichThuocFile, Position) Position = Position + 4 FileGet(1, HeaderBmp.DuTru, Position) Position = Position + 4 FileGet(1, HeaderBmp.ByteDuLieuBatDau, Position) Position = Position + 4 ' Doc phan InfoHeader Position = 15 FileGet(1, InfoHeaderBmp.SoByteInfo, Position) Position = Position + 4 FileGet(1, InfoHeaderBmp.ChieuRongAnh, Position) Position = Position + 4 FileGet(1, InfoHeaderBmp.ChieuCaoAnh, Position) Position = Position + 4 FileGet(1, InfoHeaderBmp.SoBangMau, Position) Position = Position + 2 FileGet(1, InfoHeaderBmp.SoBitMotPixel, Position) Position = Position + 2 FileGet(1, InfoHeaderBmp.KieuNenDuLieu, Position) Position = Position + 4 FileGet(1, InfoHeaderBmp.KichThuocAnh, Position) Position = Position + 4 FileGet(1, InfoHeaderBmp.DoPhanGiaiNgang, Position) Position = Position + 4 FileGet(1, InfoHeaderBmp.DoPhanGiaiDoc, Position) Position = Position + 4 39
  39. FileGet(1, InfoHeaderBmp.SoMauSuDungTrongAnh, Position) Position = Position + 4 FileGet(1, InfoHeaderBmp.SoMauSuDungHienAnh, Position) Position = Position + 4 Position = HeaderBmp.ByteDuLieuBatDau + 1 FileClose(1) Me.Cursor = Cursors.Default Exit Sub Handle_FileError: FileClose(1) Me.Cursor = Cursors.Default End Sub 4.3.3. Mở file ảnh BMP Private Sub CmdOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdOpen.Click On Error GoTo Handle Dim i As Integer, ThuMucAnh As String, TaptinAnh As String Dialog = New OpenFileDialog Dialog.Filter = "Bitmap files (*.bmp)|*.bmp|All files (*.*)|*.*" Dialog.FilterIndex = 1 Dialog.Multiselect = True Dialog.ShowDialog(Me) Dim s As String listdsbt.Items.Clear() For i = Dialog.FileNames.GetLowerBound(0) To Dialog.FileNames.GetUpperBound(0) s = Dialog.FileNames(i) listdsbt.Items.Add(s) Next TaptinAnh = Dialog.FileName Exit Sub Handle: If Err.Number <> MsgBoxStyle.Critical Then MsgBox(Err.Description, MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation) 'cdlCancel=32755 End Sub 40
  40. 4.3.4. Xử lý có tô hay không Private Function GetToMau(ByVal x As Long, ByVal y As Long) As Boolean Dim position As Integer, temp As Short Dim i As Short, j As Short Dim mauden As Integer, mautrang As Integer On Error GoTo Handle_FileError Me.Cursor = Cursors.WaitCursor FileOpen(1, listdsbt.Text, OpenMode.Binary) ' Doc phan Header position = 1 FileGet(1, HeaderBmp.NhanDangFile, position) position = position + 2 FileGet(1, HeaderBmp.KichThuocFile, position) position = position + 4 FileGet(1, HeaderBmp.DuTru, position) position = position + 4 FileGet(1, HeaderBmp.ByteDuLieuBatDau, position) position = position + 4 ' Doc phan InfoHeader position = 15 FileGet(1, InfoHeaderBmp.SoByteInfo, position) position = position + 4 FileGet(1, InfoHeaderBmp.ChieuRongAnh, position) position = position + 4 FileGet(1, InfoHeaderBmp.ChieuCaoAnh, position) position = position + 4 FileGet(1, InfoHeaderBmp.SoBangMau, position) position = position + 2 FileGet(1, InfoHeaderBmp.SoBitMotPixel, position) position = position + 2 41
  41. FileGet(1, InfoHeaderBmp.KieuNenDuLieu, position) position = position + 4 FileGet(1, InfoHeaderBmp.KichThuocAnh, position) position = position + 4 FileGet(1, InfoHeaderBmp.DoPhanGiaiNgang, position) position = position + 4 FileGet(1, InfoHeaderBmp.DoPhanGiaiDoc, position) position = position + 4 FileGet(1, InfoHeaderBmp.SoMauSuDungTrongAnh, position) position = position + 4 FileGet(1, InfoHeaderBmp.SoMauSuDungHienAnh, position) position = position + 4 position = HeaderBmp.ByteDuLieuBatDau + 1 For i = InfoHeaderBmp.ChieuCaoAnh - 1 To 0 Step -1 ' Doc 1 dong For j = 0 To InfoHeaderBmp.ChieuRongAnh - 1 If (i >= y And i = x And j < x + csPA_W) Then ' Doc 1 diem anh FileGet(1, DataBmp.Blue, position) position = position + 1 FileGet(1, DataBmp.Green, position) position = position + 1 FileGet(1, DataBmp.Red, position) position = position + 1 If (DataBmp.Red <= 128 And DataBmp.Green <= 128) Or (DataBmp.Red <= 128 And DataBmp.Blue <= 128) Or (DataBmp.Blue <= 128 And DataBmp.Green <= 128) Then mauden = mauden + 1 Else mautrang = mautrang + 1 42
  42. End If Else position = position + 3 End If Next temp = InfoHeaderBmp.ChieuRongAnh * InfoHeaderBmp.SoBitMotPixel \ 8 temp = temp Mod 4 If temp 0.5) Then GetToMau = True Else GetToMau = False End If FileClose(1) Me.Cursor = Cursors.Default Exit Function Handle_FileError: FileClose(1) Me.Cursor = Cursors.Default End Function 43
  43. Chương5 Tiến hành cài đặt 5.1. Môi trường cài đặt v Cài đặt được trên tất cã các hệ điều hành Microsoft Windows từ Windows 95 trở lại đây v Trước khi cài đặt trong máy phải có Microsoft .Net Framework 2.0 5.2. Đánh giá kết quả đạt được Sau khi thực hiện đề tài chúng em đã có một số nhận xét và đánh giá về chương trình của mình: v Về giao diện: giao diện của chương trình đơn giản dễ sử dụng,tuy nhiên thiết kế vẫn chưa đẹp v Về chức năng: các chức năng của chương trình được tổ chức một cách có trình tự giúp đỡ người dùng trong việc chọn và thi hành lần lượt các chức năng của chương trình.tuy vậy trong các chức năng còn thiếu các icon và phím tắt. v Về code: chương trình đã được tổ chức code để thi hành đầy đủ các yêu cầu của chức năng, tuy nhiên việc sắp xếp và tổ chức code còn nhiều hạn chế nên việc thực hiện các chức năng vẫn còn chậm. v Về việc cài đặt và sử dụng: chương trình được cài đặt và sử dụng một cách nhanh chóng thích hợp với nhà trường và các đơn vị tổ chức thi và chấm điểm các bài thi trắc nghiệm trên giấy. 5.3. Hướng phát triển Hướng phát triển của chương trình: v Tổ chức, sắp xếp làm hoàn thiện hơn hệ thống các chức năng giúp việc thi hành lệnh của người dùng một cách nhanh chóng và có hiệu quả cao. v Kết hợp với chương trình tổ chức thi trắc nghiệm thành một chương trình tổ chức thi và chấm điểm các bài thi trắc nghiệm trên giấy đáp ứng cho việc thi trắc nghiệm ở các trường phổ thông, cao đẳng và đại học. 44
  44. 5.4. Kết luận: Sau hơn 4 tháng thực hiện khóa luận với sự giúp đỡ của thầy cô ,bạn bè và đặc biệt là nhờ sự hướng dẫn tận tình của thầy Đinh Thanh Hồng nhóm chúng em đã hoàn thành được khóa luận của mình .Tuy đây không phải là một phần mềm hay,nhưng nó có thể đáp ứng được phần nào đó cho nhu cầu chấm điểm các bài thi trắc nghiệm so với các phương pháp chấm điểm thủ công,và đó cũng là thành quả cho sự nổ lực của chúng em.Do thời gian thực hiện khoá luận còn nhiều hạn chế nên chương trình của chúng em còn nhiều sai sót và hạn chế nhất định mong thầy cô ,bạn bè và người sử dụng bỏ qua. 45
  45. Danh mục tham thảo v Trang web: msdn.microsoft.com v Kỹ năng lập trình Visual Basic .NET Nhà xuất bản thống kê .Tác Giả Nguyễn Tiến Dũng v Tự học lập trình cơ sở dữ liệu SQL Server 2000 & Visual Basic.Net,Nhà xuất bản Giao Thông Vận Tải.Tác giả Đậu Quang Tuấn. . 46