ình thức thi trắc nghiệm Hình thức của thi trắc nghiệm rất đa dạng, ví dụ: một câu hỏi có một số phương án trả lời, thí sinh chọn câu trả lời đúng nhất, hay một câu hỏi có nhiều phương
Trang 22 | P a g e
M L
N M N S N 3
LỜ MỞ ẦU 6
N 1 Ớ T ỆU UN 7
1.1 ẶT VẤN Ề 7
1.1.1 Xu hướng chung 7
1.1.2 Hình thức thi trắc nghiệm 7
1.2 N ỆM V Ủ N 8
N P N P P T Ự ỆN 9
2.1 SỞ LÝ T UYẾT 9
2.1.1 Ngôn ngữ thực hiện 9
2.1.2 Phương pháp tiếp cận dữ liệu XML 10
2.1.3 Các công nghệ được sử dụng để xây dựng ứng dụng 13
2.2 P ÂN TÍ V T ẾT Ế Ệ T N 15
2.2.1 Khảo sát thực trạng 15
2.2.2 Phân tích hệ thống 17
2.2.3 Thiết kế hệ thống 18
N ẾT QU ẶT 34
3.1 Ớ T ỆU N TR N 34
3.1.1 Sơ đồ chức năng hệ thống 34
3.1.2 Xây dựng các trang chức năng 34
3.1.3 Chi tiết các trang chức năng 35
3.2 ỚN ẪN SỬ N N TR N 46
3.2.1 Người dùng Quản trị viên 46
3.2.2 Người dùng Giảng viên 53
3.2.3 Người dùng Sinh viên 62
N 4 ẾT LUẬN V ỚN P T TR ỂN 65
4.1 ẾT LUẬN 65
4.1.1 Những thuận lợi và khó khăn 65
4.1.2 Kết quả đạt được 65
4.2 ỚN P T TR ỂN 66
TÀI L ỆU T M O 67
Trang 33 | P a g e
N M N S N
Bảng 2 1: File XML bản FACULTY 24
Bảng 2 2: File DTD bảng FACULTY 24
Bảng 2 3: File XML bảng DEPARTMENT 24
Bảng 2 4: File DTD bảng DEPARTMENT 25
Bảng 2 5: File XML bảng SUBJECT 25
Bảng 2 6: File DTD bảng SUBJECT 25
Bảng 2 7: File XML bảng CHAPTER 26
Bảng 2 8: File DTD bảng CHAPTER 26
Bảng 2 9: File XML bảng LEVEL 26
Bảng 2 10: File DTD bảng LEVEL 26
Bảng 2 11: File XML bảng TYPE 27
Bảng 2 12: File DTD bảng TYPE 27
Bảng 2 13: File XML bảng CLASS 27
Bảng 2 14: File DTD bảng CLASS 27
Bảng 2 15: File XML bảng QUESTION 28
Bảng 2 16: File DTD bảng QUESTION 28
Bảng 2 17: File XML bảng TEACHER 29
Bảng 2 18: File DTD bảng TEACHER 29
Bảng 2 19: File DTD bảng EXAMINATION 30
Bảng 2 20: File XML bảng EXAMINATION 31
Bảng 2 21: File XML bảng STUDENT 31
Bảng 2 22: File DTD bảng STUDENT 32
Bảng 2 23: File XML bảng USER 32
Bảng 2 24: File DTD bảng USER 32
Bảng 2 25: File XML bảng STUDENT_ANSWER 33
Bảng 2 26: File DTD bảng STUDENT_ANSWER 33
Bảng 3.1: Danh sách các trang chức năng 35
Sơ đồ 3 1: Sơ đồ chức năng hệ thống 34
Hình 2 1: Mô hình quan niệm dữ liệu 21
Hình 3 1: Trang chủ 36
Trang 44 | P a g e
Hình 3 2: Trang danh sách bài kiểm tra 36
Hình 3 3: Trang sinh viên làm bài kiểm tra 37
Hình 3 4: Trang sinh viên kết thúc bài làm 37
Hình 3 5: Trang sinh viên xem kết quả bài làm 38
Hình 3 6: Trang sinh viên đối chiếu đáp án bài làm 38
Hình 3 7: Trang sinh viên chờ nhận bài kiểm tra 38
Hình 3 8: Trang thông tin cá nhân giảng viên 39
Hình 3 9: Trang tạo mới câu hỏi 39
Hình 3 10: Trang ngân hàng câu hỏi 40
Hình 3 11: Trang tạo mới đề thi 40
Hình 3 12: Trang ngân hàng đề thi 41
Hình 3 13: Trang in đề thi ra giấy 41
Hình 3 14: Trang quản lý danh sách sinh viên 42
Hình 3 15: Trang quản lý điểm sinh viên 42
Hình 3 16: Trang quản lý học phần của giảng viên 43
Hình 3 17: Trang quản lý khoa của quản trị viên 43
Hình 3 18: Trang quản lý lớp của quản trị viên 44
Hình 3 19: Trang quản lý học phần của quản trị viên 44
Hình 3 20: Trang quản lý giảng viên của quản trị viên 45
Hình 3 21: Trang thêm mới một giảng viên 45
Hình 3 22: Trang cập nhập thông tin giảng viên 46
Hình 3 23: Giao diện vào menu "Quản lý khoa" 46
Hình 3 24: Giao diện nút lệnh “thêm mới khoa” 47
Hình 3 25: Giao diện nhập tên khoa 47
Hình 3 26: Giao diện thêm mới bộ môn trong khoa 47
Hình 3 27: Giao diện cập nhập tên khoa 48
Hình 3 28: Giao diện cập nhật bộ môn trong khoa 48
Hình 3 29: Giao diện vào menu "Quản lý lớp" 49
Hình 3 30: Giao diện thêm mới lớp 49
Hình 3 31: Giao diện cập nhật tên lớp 49
Hình 3 32: Giao diên vào menu "Quản lý học phần" 50
Hình 3 33: Giao diện thêm mới học phần 50
Hình 3 34: Giao diên cập nhật học phần 51
Trang 55 | P a g e
Hình 3 35: Giao diện vào menu "Quản lý giảng viên" 51
Hình 3 36: Giao diện thêm mới giảng viên 52
Hình 3 37: Giao diện nhập các thông tin giảng viên 52
Hình 3 38: Giao diện cập nhật thông tin giảng viên 53
Hình 3 39: Giao diện thêm mới câu hỏi 54
Hình 3 40: Giao diện cấu hình nội dung câu hỏi nhiều lựa chọn 54
Hình 3 41: Giao diện cấu hình nội dung câu hỏi Ghép đôi 55
Hình 3 42: Giao diện cấu hình nội dung câu hỏi Trả lời ngắn 55
Hình 3 43: Giao diện quản lý ngân hàng câu hỏi 56
Hình 3 44: Giao diện cấu hình nội dung đề thi 57
Hình 3 45: Giao diện kích hoạt đề thi 57
Hình 3 46: Giao diện in đề thi ra file word 58
Hình 3 47: Giao diện quản lý học phần 58
Hình 3 48: Giao diện thêm mới chương/ chủ đề học phần 59
Hình 3 49: Giao diện quản lý danh sách sinh viên 59
Hình 3 50: Giao diên thêm mới sinh viên vào danh sách 60
Hình 3 51: Giao diện nhập điểm cho sinh viên 60
Hình 3 52: Giao diện xem điểm sinh viên 61
Hình 3 53: Giao diện xem điểm bài kiểm tra của sinh viên 61
Hình 3 54: Giao diện xuất bảng điểm ra file excel 62
Hình 3 55: Giao diện danh sách bài kiểm tra của sinh viên 62
Hình 3 56: Giao diện màn hình sinh viên chuẩn bị làm bài 62
Hình 3 57: Giao diện làm bài của sinh viên 63
Hình 3 58: Giao diện sinh viên xem điểm sau khi kết thúc bài làm 63
Hình 3 59: Giao diện màn hình sinh viên xem đáp án 64
Trang 66 | P a g e
LỜ MỞ ẦU
Hiện nay giáo dục Việt Nam đang có những cải cách đổi mới mạnh mẽ cả về hình thức lẫn nội dung Theo xu hướng đó các hình thức tổ chức thi – kiểm tra cũng được đổi mới Chúng ta có thể thấy rõ điều này qua công tác thi tuyển sinh đại học hằng năm Hình thức thi tự luận sẽ được thay thế bằng hình thức thi trắc nghiệm trực quan – đây chính là hình thức thi đảm bảo tính khách quan, chính xác, nhanh chóng và giảm thiểu chi phí tổ chức thi
Trên những nhu cầu đó, trong đồ án thực tập tốt nghiệp này tôi đã nghiên cứu
và xây dựng trang web thi trắc nghiệm trực tuyến cho các học phần Hệ thống thi trắc nghiệm trực tuyến sẽ giúp giảng viên tổ chức thi tốt hơn, đánh giá tốt hơn Sinh viên làm bài nhanh chóng, tiện lợi, và biết ngay kết quả ngay khi hoàn thành bài thi
Dựa trên sự nỗ lực của bản thân, và sự giúp đỡ tận tình của giảng viên Lê
Thị ích ằng trong suốt thời gian thực tập để tôi hoàn thành đồ án thực tập của
mình Tôi xin chân thành cảm ơn và gởi đến cô những lời chúc tốt đẹp nhất
Nha Trang, ngày 26 tháng 06 năm 2013 Sinh viên
Nguyễn Quang ình
Trang 7lượng dạy và học
Trong thi cử cũng vậy, hình thức thi trắc nghiệm hay trắc nghiệm kết hợp với tin học đã trở thành một trong những hình thức thi phổ biến trên thế giới Với ưu điểm khách quan, chính xác và thuận tiện cho cả người ra đề và thí sinh đi thi, hình thức thi này đã được áp dụng hầu khắp cả nước, đặt biệt là trong các kỳ thi của các
tổ chức lớn có phạm vi toàn cầu như ETS (Educational Testing Service) – tổ chức
các kỳ thi TOEFL, GMAT, GRE , Microsoft – tổ chức các kỳ thi MCSE, MCAD
Tại Việt Nam, trong những năm gần đây, song song với việc đổi mới phương pháp dạy và học, việc đổi mới hình thức thi cử cũng trở thành một việc làm cần thiết Trong các hình thức thi cử, trắc nghiệm khách quan là hình thức được nhiều người chú ý nhất do những ưu điểm của nó trong việc kiểm tra, đánh giá trình độ người dự thi như: khách quan, trung thực, kiểm tra được nhiều kiến thức, tránh việc học tủ, học vẹt Do đó, trắc nghiệm đang là khuynh hướng của hầu hết các kỳ thi ở
Việt Nam hiện nay
1.1.2 ình thức thi trắc nghiệm
Hình thức của thi trắc nghiệm rất đa dạng, ví dụ: một câu hỏi có một số phương án trả lời, thí sinh chọn câu trả lời đúng nhất, hay một câu hỏi có nhiều phương án trả lời và thí sinh chọn câu trả lời đúng
Tuy nhiên, do độ phổ biến của một số cách thể hiện cũng như về bản chất nội dung, trắc nghiệm thường được hiểu theo một phạm vi hẹp hơn, cụ thể: đó là một hay nhiều bài kiểm tra, trong đó có một hay nhiều câu hỏi, trong mỗi câu hỏi có nhiều phương án trả lời (thường là 4) và nhiệm vụ của thí sinh là chọn ra câu hỏi đúng nhất
Thật ra, trắc nghiệm không chỉ có thế, hình thức thi này rất phong phú, đa dạng về nội dung và hình thức thể hiện Câu hỏi trắc nghiệm không chỉ kiểm tra việc thí sinh lựa chọn một phương án trả lời đúng mà còn có thể là kiểm tra kiến thức kết hợp các ý niệm, kiến thức khác nhau khi tạo đường nối các phương án trả lời có liên quan Trong tình huống này, thể hiện của câu hỏi không còn là một số phương án trả lời với ô đánh dấu để chọn câu trả lời đúng nữa, mà là 2 cột phương
án trả lời được xếp cạnh nhau để thí sinh tạo đường nối giữa các phương án trả lời
có liên quan Hay trong một tính huống khác, câu hỏi trắc nghiệm có thể kiểm tra kiến thức thuộc lòng một đoạn ký tự có ý nghĩa nào đó Lúc này, sẽ không có phương án trả lời nào được đưa ra để lựa chọn Việc trả lời câu hỏi được thực hiện
Trang 88 | P a g e
bằng cách điền một đoạn ký tự vào một ô trống cho trước Câu trả lời này đúng khi
nó so khớp với câu trả lời - là một đoạn ký tự - mà người ra đề mong đợi
1.2 N ỆM V Ủ N
Hình thức thi trắc nghiệm đang trở thành một xu hướng tất yếu cho rất nhiều
kỳ thi, đặc biệt là trong các kỳ thi đào tạo theo tín chỉ hiện nay Đã có nhiều phần mềm ra đời để phục vụ cho học sinh, sinh viên làm quen, ôn luyện kiến thức bằng hình thức thi này Đi xa hơn, các trang web hỗ trợ làm bài trắc nghiệm qua mạng xuất hiện đã đem lại rất nhiều lợi ích Người ra đề cũng như người dự thi có thể ở bất cứ nơi đâu và bất cứ khi nào muốn đều có thể thực hiện công việc của mình, không có giới hạn về địa lý, chi phí rẻ do không cần sự di chuyển, phân phối đề thi, thu bài, chấm bài
Mong muốn góp phần vào việc giúp đỡ các giảng viên cũng như sinh viên trong trường tiếp cần với hình thức thi này, tôi đã quyết định tìm hiểu, nghiên cứu
và xây dựng một trang web trắc nghiệm trực tuyến, hỗ trợ cho việc rèn luyện, ôn tập kiến thức một các cơ bản nhất với những chức năng sau đây:
- Quản lý thông tin học phần: Quản lý các chương, chủ đề trong học phần của giảng viên
- Quản lý ngân hàng câu hỏi: Thêm, xóa, sửa, tìm kiếm câu hỏi
- Quản lý ngân hàng đề thi: Thêm, xóa, sửa, xuất đề ra file word
- Quản lý sinh viên: Giảng viên quản lý danh sách sinh viên, quản lý điểm của sinh viên theo từng học phần
- Quản lý điểm: Giảng viên xem điểm của sinh viên theo học phần, nhập điểm của sinh viên trong trường hợp tổ chức thi, kiểm tra trên giấy, cho phép giảng viên kết xuất bảng điểm của sinh viên ra file excel
- Cho phép sinh viên làm bài trên máy tính, sinh viên biết ngay kết quả sau khi kết thúc bài làm
Trang 99 | P a g e
N : P N P P T Ự ỆN
2.1 SỞ LÝ T UYẾT
2.1.1 Ngôn ngữ thực hiện
iới thiệu.NET và ASP.NET
Phần quan trọng của Visual studio.NET là các công nghệ mới với trung tâm
là NET Framework - tập các tính năng Windows được xây dựng trên nền tảng môi trường thực thi ngôn ngữ chung (CLR – Common Language Runtime), trên đó là các lớp thư viện dùng để xây dựng ứng dụng Windows, ứng dụng web và dịch vụ web XML Tất cả ngôn ngữ NET đều được dịch sang dạng ngôn ngữ trung gian của Microsoft (MSIL – Microsoft Intermediate Language) trước rồi mới được dịch sang dạng mã thực thi bởi một trình dịch JIT (Just – in Time) trên nền NET CLR
và MSIL cho phép tất cả các ngôn ngữ NET làm việc với nhau Ví dụ: người dùng
có thể dùng một lớp C# kế thừa từ một đối tượng COM C++/ATL, lớp này lại có thể bắt lỗi từ một chương trình Vbasic Nhờ có sự hỗ trợ từ cấp hệ thống cho phép tích hợp đa ngôn ngữ, người dùng có thể chạy từng bước để bẫy lỗi qua cả
3 ngôn ngữ trong cùng một môi trường phát triển ứng dụng VS NET
Trình dịch JIT cung cấp thêm khả năng bảo mật, tính an toàn lúc thực thi và khả năng chạy trên nhiều nền tảng (Microsoft cho biết sẽ dùng một tập con chuẩn hoá của NET Framework - được gọi là nền tảng ngôn ngữ chung - để xây dựng một thể hiện trên FreeBSD) Hầu hết các phần mềm ứng dụng của Microsoft (kể cả Office) được dùng ngôn ngữ trung gian
ASP NET là một nền tảng ứng dụng web (web application framework) được phát triển và cung cấp bởi Microsoft, cho phép những người lập trình tạo ra những trang web động, những ứng dụng web và những dịch vụ web Lần đầu tiên được đưa ra thị trường vào tháng 2 năm 2002 cùng với phiên bản 1.0 của NET Framwork, là công nghệ nối tiếp của MicrosoftServer Pages (ASP) ASP.NET được biên dịch dưới dạng Common Language Runtime (CLR), cho phép những người lập trình viết mã ASP NET với bất kỳ ngôn ngữ nào được hỗ trợ bởi NET language
iới thiệu về ngôn ngữ #
C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại Và ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java
Tại sao phải sử dụng ngôn ngữ C# ?
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này
Trang 1010 | P a g e
- C# là ngôn ngữ đơn giản: Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng
C và C++ Nếu người dùng thân thiện với C và C++ hoặc thậm chí là Java, người dùng sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó
đã được cải tiến để làm cho ngôn ngữ đơn giản hơn
- C# là ngôn ngữ hiện đại: Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại
- C# là ngôn ngữ hướng đối tượng: Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là sự đóng gói (encapsulation),
sự kế thừa (inheritance), và đa hình (polymorphism)
- C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo: C# được sử dụng cho nhiều các dự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác
- C# là ngôn ngữ ít từ khóa: C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa được sử dụng để mô tả thông tin
- C# là ngôn ngữ hướng module: Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp này chứa các phương thức thành viên của nó
- C# sẽ là một ngôn ngữ phổ biến: C# là một trong những ngôn ngữ lập trình mới nhất Ngôn ngữ này có một số lý do để trở thành một ngôn ngữ phổ biến Một trong những lý do chính là Microsoft và sự cam kết của NET
2.1.2 Ph ơng ph p tiếp cận dữ liệu XML
iới thiệu về OM
h i niệm
Document Object Model (DOM) là một phương pháp tiếp cận dữ liệu
từ XML, trong đó tất cả các thành phần của XML như thẻ, thuộc tính, text đều được xem như là các đối tượng Dựa vào các đối tượng này mà chúng ta có thể trích xuất thông tin, thay đổi thông tin hay truy vấn thông tin dựa vào các hàm mà đối tượng cung cấp
W3C DOM là tiêu chuẩn mà W3School giới thiệu Tiêu chuẩn này không
phụ thuộc vào hệ điều hành hay ngôn ngữ lập trình W3C DOM được chia làm 3 phần: Core DOM là tập hợp các đối tượng dùng cho cấu trúc 1 văn bản; XML
DOM là tập hợp các đối tượng dùng cho cấu trúc 1 văn bản XML; HTML DOM là
tập hợp các đối tượng dùng cho cấu trúc 1 văn bản HTML
c i t ng trong OM
- Tất cả các thành phần trong XML đều được xem như là 1 “node” Trong
đó root là document node, các thẻ là element node, thuộc tính
là attribute node, text là text node, ghi chú là comment node
- Khi parser đọc XML thành đối tượng DOM trên bộ nhớ chúng ta sẽ có 1 cấu trúc cây với các đối tượng là các node và trên cấu trúc này chúng ta sẽ
Trang 1111 | P a g e
thấy mối quan hệ phân tầng giữa các node Trên cùng là thẻ root (document node), từ node này có thẻ rẽ nhánh đến các tầng thấp hơn của cấu trúc cây cho đến khi chạm tới text node là tầng thấp nhất của cấu trúc này
- Mối quan hệ giữa các node được mô tả bằng thuật ngữ “parent” và “child” (cha và con) Thuật ngữ “leafnode” dùng để chỉ các node không
có child node
iới thiệu về S X
Simple API for XML (SAX) là một phương pháp phân tích dữ liệu XML
dựa vào sự kiện trong quá trình đọc file XML từ trên xuống dưới Như vậy để dùng phương pháp này các ngôn ngữ lập trình cần định nghĩa ra các sự kiện và các hàm tương ứng với từng sự kiện Khi đó người lập trình sẽ viết class dựa trên các hàm
mà ngôn ngữ lập trình cung cấp và dùng class này để phân tích dữ liệu XML Trong quá trình phân tích, khi gặp sự kiện nào parser sẽ gọi các đoạn code trong hàm tương ứng sự kiện để thực thi Ví dụ như trong Java, khi parser gặp sự kiện mở thẻ, parser sẽ gọi lại các đoạn code trong hàm “startElement” để thi hành
Tuy nhiên, SAX không ghi nhớ XML như một cấu trúc cây trên bộ nhớ như DOM SAX chỉ xây dựng cấu trúc của nhiệm vụ đang thi hành trên bộ nhớ do đó SAX sẽ thực hiện nhanh hơn và ít tốn tài nguyên hơn
iới thiệu về DTD
Tổng quan X c ịnh nội dung văn b n
Có hai phương pháp xác định nội dung văn bản XML:
- Document Type Definition ( ịnh nghĩa kiểu văn b n của Văn b n), hoặc DTD: Một DTD xác định các phần tử có thể xuất hiện trong văn bản,
thứ tự chúng xuất hiện, cách chúng được sắp xếp trong cái khác, và các chi tiết cơ bản trong cấu trúc văn bản XML Các DTD là bộ phận của chi tiết kỹ thuật XML gốc, và chúng rất giống với các DTD SGML
- XML Schema (L c ồ XML): Một lược đồ XML có thể xác định tất cả
các cấu trúc văn bản được định nghĩa trong một DTD, nhưng nó cũng có thể xác định chủng loại dữ liệu và các quy tắc phức tạp hơn DTD có thể làm
Trang 1212 | P a g e
W3C đã phát triển chi tiết kỹ thuật lược đồ XML trong vài năm sau chi tiết
kỹ thuật XML gốc
X c ịnh kiểu cho Văn b n
Một DTD cho phép chỉ ra cấu trúc của một văn bản XML Dưới đây là một DTD xác định cấu trúc cơ bản của văn bản địa chỉ:
<! address.dtd >
<!ELEMENT address (name, street, city, state, postal-code)>
<!ELEMENT name (title? first-name, last-name)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT first-name (#PCDATA)>
<!ELEMENT last-name (#PCDATA)>
<!ELEMENT street (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT postal-code (#PCDATA)>
DTD này xác định tất cả các phần tử sử dụng trong văn bản mẫu
Có một số ký tự thay thế được sử dụng trong các DTD để biểu thị mức độ xuất hiện thường xuyên (hoặc có xuất hiện hay không) của một số thứ trong văn bản XML Đây là vài ví dụ với ý nghĩa của chúng:
- <!ELEMENT address (name, city, state)>
Phần tử <address> phải chứa một phần tử <name>, một phần
tử <city>, và một phần tử <state>, theo đúng trật tự đó và tất cả các phần tử
đều bắt buộc Dấu phẩy biểu thị một danh sách
- <!ELEMENT name (title?, first-name, last-name)>
Điều này có nghĩa là phần tử <name> chứa một phần tử <title> tùy ý, tiếp theo một phần tử <first-name> và một phần tử <last-name> Dấu hỏi biểu thị một giá trị là tùy ý, nó có thể xuất hiện một lần hoặc không
- <!ELEMENT addressbook (address+)>
Một phần tử <addressbook> chứa một hoặc hơn một phần
tử <address> Dấu cộng biểu thị một giá trị ít nhất phải xuất hiện một lần, nhưng cũng có thể nhiều hơn một
- <!ELEMENT private-addresses (address*)>
Một phần tử <private-addresses> không chứa hoặc chứa nhiều phần
tử <address> Dấu hoa thị biểu thị một giá trị có thể xuất hiện bao nhiêu lần
cũng được, kể cả không lần nào
Trang 13tử <last-name> Nói cách khác, cả <middle-initial> và <middle-name> đều tùy ý, tuy nhiên, chỉ có thể có một trong hai phần tử đó xuất hiện trong tài liệu XML Gạch thẳng đứng biểu thị một danh sách lựa chọn, chúng ta có thể chọn một giá trị duy nhất trong danh sách Ngoài ra trong ví dụ này sử dụng các dấu ngoặc đơn để nhóm các phần tử nhất định lại với nhau, và còn đặt dấu hỏi đứng sát với nhóm
- <!ELEMENT name ((title?, first-name, last-name) | (surname, name, given-name))>
mothers-Phần tử <name> có thể chứa một hoặc hai dãy: một phần tử tùy
ý <title>, theo sau bằng một phần tử <first-name>và một phần tử name>; hoặc một phần tử <surname>, một <mothers-name>, và một <given-name>
X c ịnh thuộc tính
Chúng ta có thể xác định thuộc tính cho các yếu tố sẽ xuất hiện trong văn bản XML Một tài liệu DTD có thể:
- Xác định những thuộc tính nào là bắt buộc
- Xác định các giá trị mặc định cho thuộc tính
- Lên danh sách tất cả các giá trị hợp lệ cho một thuộc tính đã cho
Ví dụ: Thuộc tính state được định nghĩa thêm cho phần tử <city> trong tài liệu DTD như sau:
<!ELEMENT city (#PCDATA)>
<!ATTLIST city state CDATA #REQUIRED>
Cái tên state là tên của thuộc tính, và từ khóa CDATA và #REQUIRED chỉ cho bộ kiểm ngữ biết rằng thuộc tính state bao gồm chữ cái và bắt buộc phải có (nếu nó là tùy ý thì kiểu sẽ là CDATA #IMPLIED)
2.1.3 c công nghệ c sử dụng ể xây dựng ứng dụng
AJAX
AJAX là một công nghệ cho phép lập trình bất đồng bộ trong ứng dụng Web Thông thường người dùng muốn thay đổi thông tin từ trang Web bằng cách nhấp vào các nút lệnh (button) hay các liên kết (link) để submit yêu cầu về Web Server để thay đổi nội dung trang Web (postback) Như vậy toàn bộ trang Web phải được xử lý lại do đó tốn khá nhiều thời gian và gia tăng sự phản hồi các trang
Trang 1414 | P a g e
Web, Công nghệ Ajax ( Asynchronous JavaScript and XML) cho phép chỉ các thông tin nào cần thay đổi được gửi về Sever xử lý, sau đó Server sẽ xử lý và trả kết quả về cho Client Sau đây là một số thông tin chung về Ajax:
- AJAX bắt đầu phổ biến từ năm 2005 bởi Google (với một ứng dụng Google Suggest, Google Maps, Gmail)
- AJAX không phải là ngôn ngữ lập trình mới, mà nó là một công nghệ mới
để tạo ra một ứng dụng web nhỏ hơn, nhanh hơn, tốt hơn và giao diện thân thiện với người dùng hơn
- AJAX dựa trên các thành phần HTML trước đây:
do đó trang web không reload lại
- AJAX sử dụng cơ chế làm việc bất đồng bộ (Asynchonous), nghĩa là trong khi đối tượng XMLHttpRequest thực hiện gửi yêu cầu đến Web server thì Web browser vẫn tiếp tục xử lý các công việc khác mà không cần Web server hoàn thành việc trả lời lại yêu cầu đó Nhiều công việc được xử lý song song với nhau, điều này khác với cách lập trình web cổ điển trước đây,
do đó ứng dụng web sẽ chạy nhanh hơn
- AJAX là một kĩ thuật của Web browser và độc lập với Web server
- Tất cả Web có sử dụng AJAX gọi là Web 2.0
- AJAX có thể gởi và nhận dữ liệu với nhiều định dạng khác nhau, bao gồm XML, HTML và thậm chí là file text
JQUERY
JQuery là một Javascript Framework, hỗ trợ các nhà lập trình web tạo ra các tương tác trên website một cách nhanh nhất JQuery được khởi xướng bởi John Resig (hiện là trưởng dự án của Mozzila) vào năm 2006, jQuery có mã nguồn mở
và hoàn toàn miễn phí JQuery có một cộng đồng sử dụng đông đảo và được rất nhiều lập trình viên tham gia hoàn thiện, phát triển và viết plugin
Ưu điểm khi sử dụng Jquery:
- Hỗ trợ tốt việc xử lí các vấn đề thường gặp (DOM, AJAX )
- Tương thích nhiều trình duyệt web phổ biến
Trang 1515 | P a g e
- Nhỏ gọn, dễ dùng, có nhiều tài liệu hướng dẫn sử dụng chi tiết
- Ít xung khắc với các thư viện Javascript khác
- Plugin phong phú
Jquery giúp người lập trình làm được những gì?
ớng tới c c thành phần trong TML: Jquery có thể giúp cho người
dùng có thể chọn bất cứ thành phần nào của tài liệu HTML một cách dễ dàng dựa vào jquery selector
Thay ổi giao diện của một trang web Jquery giúp định dạng một trang
web và hiển thị trên hầu hết các trình duyệt Jquery cũng có thể thay đổi những định dạng CSS đã được áp dụng lên bất cứ thành phần nào của HTML ngay cả khi trang web được trình duyệt load thành công
Thay ổi nội dung của tài liệu Jquery có thể thay đổi bề ngoài của trang
web và nội dung của tài liệu HTML Jquery có thể thêm, bớt nội dung trên trang web, thậm chí cả cấu trúc HTML của một trang web cũng có thể được viết lại và
mở rộng
T ơng t c với ng ời dùng Jquery có nhiều phương thức để tương tác với
người dùng và tối giản các mã Event trong code HTML
Tạo hiệu ứng ộng Jquery hỗ trợ nhiều hiệu ứng động như mờ dần,
slideUp, slideDown
ỗ tr jax Jquery giúp người thiết kế web tạo ra những trang web tương
tác cực tốt và nhiều tính năng Thư viện jQuery loại bỏ sự phức tạp của trình duyệt trong quá trình thực thi và cho phép người phát triển web có thể tập trung vào các tính năng đầu cuối
2.2 P ÂN TÍ V T ẾT Ế Ệ T N
2.2.1 h o sát thực trạng
Trước đây, khi chưa có sự giúp đỡ của phần mềm quản lý trắc nghiệm thì công tác tổ chức thi qua rất nhiều giai đoạn: in đề ra giấy, tổ chức thi trên giấy, thu bài thi về chấm và tập hợp điểm, công bố kết quả thi Sau vài ngày thì sinh viên mới biết được kết quả của bài làm
- Câu hỏi trắc nghiệm rất đa dạng:
Đúng hoặc sai: Đưa ra một nhận định, sinh viên phải lựa chọn một trong hai phương án trả lời để khẳng định nhận định đó là đúng hay sai
Nhiều lựa chọn: Đưa ra một nhận định và 4-5 phương án trả lời, sinh viên phải chọn để đánh giá vào một phương án đúng hoặc phương án tốt nhất
Câu ghép đôi: Cho 2 cột nhóm từ, đòi hỏi sinh viên phải ghép nối đúng từng cặp nhóm từ ở hai cột với nhau sao cho phù hợp nội dung
Câu trả lời ngắn: Là câu trắc nghiệm đòi hỏi sinh viên chỉ trả lời bằng câu rất ngắn
Trang 16Hiện nay, đã có một số phần mềm hỗ trợ thi trắc nghiệm nhưng vẫn còn một
- Hỗ trợ tạo đề thi trên giấy
- Hỗ trợ trình soạn thảo linh hoạt
- Hỗ trợ tạo đề với các loại trắc nghiệm
- Hỗ trợ nhập ngân hàng câu hỏi từ file word
- Tính bảo trì và cập nhật phức tạp
Test Mixer - Hỗ trợ tạo đề và trộn đề thi từ
đề thi gốc
- Hỗ trợ nhập danh sách câu hỏi
từ file word sau đó sinh đề tự động
- Có khả năng chuyển nhập đề thi(tự luận và trắc nghiệm) một lần vào phần mềm từ file word
- Không hỗ trợ quản lý ngân hàng câu hỏi
- Không hỗ trợ quản lý ngân hàng đề thi
- Không hỗ trợ thi trực tuyến
- Hỗ trợ ôn thi
- Chưa hỗ trợ nhiều loại câu hỏi
- Chi phí triển khai cao
- Chưa hỗ trợ sinh viên biết kết quả sau khi kết thúc bài làm
Trang 17- Tổ chức thi trực tuyến, tin học hóa nghiệp vụ các khâu kiểm tra và chấm bài
- Quản lý đề thi theo học phần
- Quản lý ngân hàng câu hỏi theo học phần
- Quản lý điểm theo học phần
- Nhập danh sách sinh viên từ file excel
- Sinh viên biết ngay kết quả và đáp án sau khi kết thúc bài làm
- Kết xuất bảng điểm của sinh viên ra file excel
- Hỗ trợ thi ở phòng học lý thuyết: Xuất đề thi ra file word để sinh viên có thể làm bài trên giấy
Ngoài ra giảng viên có thể biên soạn đề thi trắc nghiệm, hệ thống còn cho phép giảng viên tạo đề kiểm tra giữa kỳ theo quy định sau:
- Đối với đề thi kết thúc học phần: Theo Quyết định số 1450 – ĐHNT năm
2009 của Trường Đại học Nha Trang
- Đối với đề kiểm tra: Giảng viên có thể quyết định số lượng câu hỏi, thời gian làm bài cho mỗi đề Đề kiểm tra có thể dựa theo từng chủ đề, hoặc có thể kết hợp nhiều chủ đề với nhau
Trang 18 Phân hệ tham gia kiểm tra
- Đối tượng: Sinh viên
- Nội dung:
Tham gia các bài kiểm tra trực tuyến trên máy tính
Biết ngay kết quả bài làm sau khi kết thúc bài làm
Y u cầu phi chức năng
- Hệ thống được cài đặt trên một máy chủ, tại máy trạm người dùng truy cập vào internet để sử dụng Các đối tượng sử dụng trên hệ thống: Quản trị viên, Giảng viên, Sinh viên
- Yêu cầu phần cứng, phần mềm máy tính được cài đặt hệ thống cũng như máy tính người dùng:
Yêu cầu máy tính phải kết nối internet
Phần mềm: Cài đặt NET Framwork, trình duyệt web IE 6 trở lên
2.2.3 Thiết kế hệ th ng
2.2.3.1 Tính năng của hệ th ng
Trang 1919 | P a g e
Qu n lý ngân hàng câu hỏi
- Giảng viên có thể biên soạn các dạng câu hỏi khác nhau tùy theo đặc thù của học phần Các câu hỏi được tổ chức theo chương/ chủ đề học phần giúp việc sinh đề bao quát chương trình học
- Cho phép tích hợp trình soạn thảo mạnh mẽ giúp việc biên soạn câu hỏi đa dạng, phong phú hơn
- Hỗ trợ tìm kiếm thuận lợi, quá trình quản lý linh hoạt
- Hỗ trợ các dạng câu hỏi: Lựa chọn đúng sai, nhiều lựa chọn, trả lời ngắn, ghép nối
- Thêm mới một khoa, thêm những bộ môn thuộc khoa đó
- Cập nhập những thông tin khoa, bộ môn thuộc khoa
Qu n lý gi ng vi n lớp học phần theo khoa
- Bộ phận quản lý thêm mới, cập nhật tài khoản cho giảng viên, gồm những thông tin họ tên, thông tin về các học phần, lớp học giảng viên đó sẽ dạy
- Thêm mới, cập nhật các lớp học theo từng khoa
- Thêm mới, cập nhật các học phần theo khoa
Qu n lý sinh vi n
- Giảng viên quản lý danh sách sinh viên theo lớp giảng viên dạy
- Danh sách sinh viên được tạo từ file excel, việc tạo mới, chỉnh sửa dễ dàng
- Thêm hoặc cập nhật danh sách sinh viên dễ dàng, thuận tiện
- Giảng viên có thể reset mật khẩu cho sinh viên khi sinh viên yêu cầu
Qu n lý iểm
- Giảng viên quản lý điểm của sinh viên theo học phần, lớp và bài kiểm tra
- Trong trường hợp kiểm tra trên giấy, giảng viên nhập điểm trực tiếp cho mỗi sinh viên
- Giảng viên xuất bảng điểm của bài kiểm tra ra file excel
Qu n lý ch ơng chủ ề theo học phần
Trang 20- Sau khi kết thúc bài làm, sinh viên có thể biết điểm của bài kiểm tra đó
- Sinh viên có thể xem kết quả bài làm của mình với kết quả của đề kiểm tra
2.2.3.2 Xây dựng mô hình cơ sở dữ liệu
a Mô hình quan niệm dữ liệu
Trang 2121 | P a g e
Hình 2 1: Mô hình quan niệm dữ liệu
Trang 221 TeacherID Mã giảng viên
2 TeacherFirstName Họ giảng viên
3 TeacherLastName Tên giảng viên
4 Email Email giảng viên
ng – CHAPTER
Trang 231 TypeID Mã loại câu hỏi
2 TypeName Tên loại câu hỏi
ng – LEVEL
1 LevelID Mã cấp độ câu hỏi
2 LevelName Tên cấp độ câu hỏi
ng – QUESTION
1 QuestionID Mã câu hỏi
2 QuestionContent Nội dung câu hỏi
ng – STUDENT
1 StudentID Mã chương/chủ đề
2 StudentFirstName Họ sinh viên
3 StudentLastName Tên sinh viên
4 DateOfBirth Ngày sinh
Trang 2424 | P a g e
1 StudentAnswer Đáp án sinh viên
2 Score Điểm của sinh viên
<!ELEMENT Facultys (Faculty)*>
<!ELEMENT Faculty (#PCDATA)*>
<!ATTLIST Faculty
FacultyID ID #REQUIRED FacultyName CDATA #REQUIRED
>
< Departments >
Bảng 2 1: File XML bảng FACULTY
Bảng 2 2: File DTD bản FACULTY
Bảng 2 3: File XML bảng DEPARTMENT
Trang 25<!ELEMENT Subjects (Subject)* >
<!ELEMENT Subject (#PCDATA) >
<!ELEMENT Departments (Department)*>
<!ELEMENT Department (#PCDATA)*>
<!ATTLIST Department
DepartD ID #REQUIRED DepartName CDATA #REQUIRED FacultyID IDREF #REQUIRED
>
Bảng 2 4: File DTD bảng DEPARTMENT
Bảng 2 5: File XML bảng SUBJECT
Bảng 2 6: File DTD bảng SUBJECT
Trang 26<!ELEMENT Chapters (Chapter)* >
<!ELEMENT Chapter (#PCDATA) >
<!ELEMENT Levels (Level)* >
<!ELEMENT Level (#PCDATA) >
Trang 27<!ELEMENT Types (Type)* >
<!ELEMENT Type (#PCDATA) >
<!ELEMENT Classes (Class)* >
<!ELEMENT Class (#PCDATA) >
Trang 2828 | P a g e
QUESTION
< Questions >
LevelID ="1" Active ="true" TypeID ="3" ChapterID ="CTSUB2-4-5">
LevelID ="1" Active ="true" TypeID ="3" ChapterID =CTSUB2-4-4">
lệnh:</ Text >
<!ELEMENT Questions (Question)* >
<!ELEMENT Question (Text, Answer) >
<!ELEMENT Text (#PCDATA) >
<!ELEMENT Answer (#PCDATA) >
<!ATLIST Question
ID ID #REQUIRED
TeacherID IDREF #REQUIRED
Date CDATA #REQUIRED
Update CDATA #REQUIRED
Active CDATA #REQUIRED
LevelID IDREF #REQUIRED
TypeID IDREF #REQUIRED
ChapterID IDREF #REQUIRED
>
Bảng 2 15: File XML bảng QUESTION
Bảng 2 16: File DTD bảng QUESTION
Trang 2929 | P a g e
TEACHER
<!ELEMENT Teachers (Teacher)* >
<!ELEMENT Teacher (FirstName, LastName, Classes, Subjects) >
<!ELEMENT FirstName (#PCDATA) >
<!ELEMENT LastName (#PCDATA) >
<!ELEMENT Classes (Class)+ >
<!ELEMENT Subject (Subject)+ >
ClassID IDREF #REQUIRED
FacultyID IDREF #REQUIRED
>
<!ATLIST Subject
SubjectID IDREF #REQUIRED
FacultyID IDREF #REQUIRED
>
< Teachers >
Trang 3030 | P a g e
EXAMINATION
<!ELEMENT Exam (Questions) >
<!ELEMENT Questions (Question)+ >
<!ELEMENT Question (Text, Answer) >
<!ELEMENT Text (#PCDATA) >
<!ELEMENT Answer (#PCDATA) >
<!ATLIST Question
ID ID #REQUIRED
TeacherID IDREF #REQUIRED
Date CDATA #REQUIRED
Update CDATA #REQUIRED
Active CDATA #REQUIRED
LevelID IDREF #REQUIRED
TypeID IDREF #REQUIRED
ChapterID IDREF #REQUIRED
<!ATLIST Exam
TeacherID IDREF #REQUIRED
ClassID IDREF #REQUIRED
SubjectID IDREF #REQUIRED
ExamID ID #REQUIRED
SubjectID ID #REQUIRED
Title CDATA #REQUIRED
Description CDATA
CreateDate CDATA #REQUIRED
Time CDATA #REQUIRED
ExamDate CDATA #REQUIRED
TC CDATA #REQUIRED
Active CDATA #REQUIRED
>
Bảng 2.19: File DTD bảng EXAMINATION
Trang 3131 | P a g e
STUDENT
< Exam TeacherID ="TCR2-2" ExamID ="SUB2-4-TCR2-2-CLS2-2-20136410219"
SubjectID ="SUB2-4" Title ="Tin hoc kiem tra" Description ="" TC ="2" Time ="60"
ExamDate ="04/06/2013" ClassID ="CLS2-2" Active ="false" CreateDate ="04/06/2013">
LevelID ="1" Active ="true" TypeID ="3" ChapterID ="CTSUB2-4-5">
LevelID ="1" Active ="true" TypeID ="3" ChapterID =CTSUB2-4-4">
< STUDENTS xmlns ="http://tempuri.org/XMLSchema1.xsd" ClassID ="CLS2-2" >
Trang 3232 | P a g e
USER
<!ELEMENT STUDENTS (Student)* >
<!ELEMENT Student (FirstName, LastName, DateOfBirth, Sex, PlaceOfBirth, ClassName) >
<!ELEMENT FirstName (#PCDATA) >
<!ELEMENT LastName (#PCDATA) >
<!ELEMENT DateOfBirth (#PCDATA) >
<!ELEMENT Sex (#PCDATA) >
<!ELEMENT PlaceOfBirth (#PCDATA) >
<!ELEMENT ClassName (#PCDATA) >
<!ELEMENT Users (User)* >
<!ELEMENT User (Password) >
<!ELEMENT Password (#PCDATA) >
Trang 33< Question QuestionID ="47" TypeID ="3" Studentanswer ="1B6" examanswer ="1b6" />
examanswer ="1048576" />
<!ELEMENT Students (Student)* >
<!ELEMENT Student (Answer) >
<!ELEMENT Answer (Question)+ >
<!ELEMENT Question (#PCDATA) >
<!ATLIST Student
StudentID IDREF #REQUIRED
score CDATA #REQUIRED
>
<!ATLIST Question
QuestionID IDREF #REQUIRED
TypeID IDREF #REQUIRED
Studentanswer CDATA #REQUIRED
examanswer CDATA #REQUIRED
>
Bảng 2.25: File XML bảng STUDENT_ANSWER
Bảng 2.26: File DTD bảng STUDENT_ANSWER