Tuy nhiên, khi chúng ta có những bài ôn tập là nhữngcâu hỏi trắc nghiệm thì chúng ta là trên giấy tốn rất nhiều giấy và dễ thất lạc.Hiểu được vấn đề đó Chúng em đã tạo ra một ứng dụng “T
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM
Trang 2LỜI MỞ ĐẦU
- HIện nay ở các trường học thì việc thi trắc nghiệm không còn là quá xa lạ đốivới học sinh, sinh viên Tuy nhiên, khi chúng ta có những bài ôn tập là nhữngcâu hỏi trắc nghiệm thì chúng ta là trên giấy tốn rất nhiều giấy và dễ thất lạc.Hiểu được vấn đề đó Chúng em đã tạo ra một ứng dụng “Thi trắc nghiệm vàchia sẻ đề thi trắc nghiệm” để mọi người có thể dùng nó để ôn tập, làm các bàitập trắc nghiệm cũng như chia sẻ đề trắc nghiệm lên cho những người dùngkhác Chương trình chia sẻ đề thi và trắc nghiệm này được tạo ra với mục tiêucung cấp cho bạn một nguồn tài nguyên vô cùng hữu ích để hỗ trợ quá trình ôntập và chuẩn bị cho các kỳ thi trắc nghiệm quan trọng Chúng em hiểu rằngviệc tìm kiếm tài liệu ôn tập chất lượng có thể là một thách thức, và với ứngdụng này, chúng em muốn giúp bạn tiết kiệm thời gian và nỗ lực
- Chúng em hy vọng rằng ứng dụng này sẽ trở thành một công cụ hữu ích tronghành trình học tập của bạn và giúp bạn đạt được thành công tốt nhất Hãy cùngnhau hướng tới sự phát triển và vươn lên!
Trang 3LỜI MỞ ĐẦU
MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
1.2 Yêu cầu của đề tài
1.3Phạm vi của đề tài
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Lý thuyết
2.1.1 Mô hình 3 lớp
2.1.1 Mô hình Client - Server
2.1.2Giao thức TCP - UDP
2.1.3 Mã hóa dữ liệu RSA/AES
2.2 Mô hình đề xuất
2.2.1 Sơ đồ tổng quát
2.2.2 Mô hình ERD
2.2.3 Thủ tục lưu trữ Trigger
2.2.4 Các câu lệnh Procedure
CHƯƠNG 3: TRIỂN KHAI ỨNG DỤNG
3.1Client
3.1.1 Đăng nhập
3.1.2 Đăng ký
3.1 3 Cập nhật thông tin tài khoản
3.1.4 Tạo đề thi mới
3.1.5 Chức năng thi
3.1.6 Chức năng thống kê
3.1.7 Chức năng danh sách đề thi
3.1.8 Chức năng thông tin cá nhân
3.1.9 Chức năng thông báo kết quả thi
3.1.10 Chức năng cập nhật đề thi
3.2 Server
3.2.1 Chức năng thống kê người dùng
3.2.2 Chức năng chặn người dùng
3.2.3 Các chức năng truy vấn
CHƯƠNG 4:NHẬN XÉT VÀ KẾT LUẬN
4.1 Kết quả đạt được
4.2 Hạn chế
4.3 Hướng phát triển
TÀI LIỆU THAM KHẢO
Trang 4Chương 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Sự phát triển của CNTT đã và đang làm thay đổi toàn bộ thế giới Mọi ngànhnghề, 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 vàlàm cho công việc trở nên dễ dàng, nhanh chóng, chính xác hơn Đặc biệt, trong côngtá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, do đó việcứng dụng CNTT trong dạy và học đang là một trong những xu thế phát triển nhằmnâng cao chất lượng đào tạo ở bậc học phổ thông và đại học, góp phần đổi mớiphương pháp dạy học và quản lý trong trường học Nhiều thành tựu của CNTT đượcứng dụng trong dạy học và quản lý giáo dục đã góp phần thay đổi theo chiều hướngtích cực, thực tiễn đã chứng minh
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ápdạ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ấp thiết BộGiáo dục và Ðào tạo (GD&ÐT) chủ trương từng bước đưa phương pháp trắc nghiệmkhách quan (TNKQ) vào áp dụng trong các kỳ thi quốc gia và từng bước áp dụng rộngrãi để đánh giá kết quả học tập tại các bậc học Bộ GD&ÐT đã có Chỉ thị số55/2008/CT-BGDÐT ngày 30/9/2008 của Bộ trưởng Bộ GDÐT và thực hiện chủ đề
“Năm học đẩy mạnh ứng dụng CNTT” yêu cầu các đơn vị đào tạo, các sở GD&ÐT tạicác địa phương triển khai các phần mềm ứng dụng CNTT trong công tác dạy học tạicác trường phổ thông và trong công tác quản lý
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; tính khách quan trong cáchđánh giá kết quả của người học; kết quả của bài thi cũng được biết ngay sau khi thísinh hoàn thành bài 2 thi, cho nên làm tăng tính hiệu quả trong việc tổ chức thi Do đó
từ năm 2007, ở nước ta đã bắt đầu áp dụng hình thức thi trắc nghiệm cho các kỳ thi
Trang 5tuyển sinh cao đẳng, đại học Từ năm học 2014-2015, Bộ GD&ĐT đã ghép 2 kỳ thitốt nghiệp THPT và tuyển sinh đại học, cao đẳng thành 1 đợt thi với 8 môn thi trong
đó có 4 môn thi theo hình thức trắc nghiệm
Nhằm tạo điều kiện cho SV tại trường có điều kiện học và ôn thi tốt hơn cũng nhưgiúp cho GV có thể thuận tiện hơn trong quá trình tạo đề thi (có thể tạo offline hoặconline), nhóm chúng em quyết định chọn đề tài “Xây dựng chương trình chia sẻ đề vàthi trắc nghiệm ” làm đồ án kết thúc môn học của mình
1.2 Yêu cầu của đề tài
Xây dựng hệ thống phục vụ cho việc thi trắc nghiệm trực tuyến gồm: tạo kho đềthi, tổ chức thi và luyện thi cho sinh viên, học sinh
1.3 Phạm vi của đề tài
Giới hạn việc nghiên cứu ở các lĩnh vực sau:
- Phương pháp ra đề thi trắc nghiệm với nhiều lựa chọn
- Các tập tin có định dạng *.doc, *.xml, *.pdf, *.html
- Giới hạn ở nội dung phục vụ ôn và thi theo hình thức trắc nghiệm
Trang 6Chương 2: CƠ SỞ LÝ THUYẾT2.1 Lý thuyết
2.1.1 Mô Hình 3 Lớp
Hình 2.1.1 Mô hình 3 lớp
Mô hình 3 lớp hay còn được gọi là mô hình Three Layer (3-Layer), môhình này ra đời nhằm phân chia các thành phần trong hệ thống, các thành phầncùng chức năng sẽ được nhóm lại với nhau và phân chia công việc cho từngnhóm để dữ liệu không bị chồng chéo và chạy lộn xộn [1]
Phân loại mô hình 3 lớp ( 3-layer)
Mô hình 3-Layers có tính logic thường được sử dụng trong các dự án lớn
Nó góp phần quản lý các thành phần của hệ thống Mô hình cho phép lập trình.NET, lập trình ứng dụng, lập trình C#,
Mô hình 3-layer được biết đến với 3 phần chính là:
● GUI (Presentation Layer)
Mô hình thực hiê Œn nhiệm vụ giao tiếp với người dùng trước khi gọi lớpBLL Gồm: các thành phần giao diện ( winform, webform,…) thực hiện nhiê Œmvụ:
Trang 71 Nhập liệu
2 Hiển thị dữ liệu
3 Kiểm tra tính đúng đắn dữ liệu
● BLL (Business Logic Layer)
Mô hình thực hiên 2 nhiệm vụ chính bao gồm :
Mô Œt là, đáp ứng và xử lý các yêu cầu thao tác dữ liệu của GUI layer Nóphải đảm bảo hoàn thành trước truyền xuống DAL và lưu xuống hệ quản trịCSDL
Hai là, kiểm tra các ràng buộc, tính toàn vẹn, tính hợp lệ dữ liệu Trướckhi trả kết quả về GUI, tại BLL sẽ thực hiện tính toán và xử lý các yêu cầunghiệp vụ
DAL (Data Access Layer)
Ứng dụng thực hiê Œn chức năng giao tiếp với hệ quản trị CSDL Đồngthời, tham gia lưu trữ và truy vấn dữ liệu ( tìm kiếm, sửa, thêm, xóa,…).Như vâ Œy, mô hình quản lý 3 lớp hoạt động theo sơ đồ như sau:
1 GUI liên kết với BLL và Data Transfer Objects ( DTO thành phầnthuô Œc lớp BLL)
2 BLL liên kết tới được DAL và DTO
3 DAL chỉ liên kết tới DTO
2.1.2 Mô hình Client - Server
Mô hình client - server là mô hình giúp các máy tính giao tiếp truyền tải dữ liệucho nhau Nhắc đến Client với Server thì đây là 2 từ khóa khá phổ biến và ai cũngbiết Và cũng nhắc lại tóm tắt về client - server
Client và server về bản chất thì nó là 2 máy tính giao tiếp và truyền tải dữ liệu chonhau
Trang 8Máy tính đóng vai trò là máy khách – Client: Với vai trò là máy khách, chúng sẽkhông cung cấp tài nguyên đến các máy tính khác mà chỉ sử dụng tài nguyên đượccung cấp từ máy chủ Một client trong mô hình này có thể là một server cho mô hìnhkhác, tùy thuộc vào nhu cầu sử dụng của người dùng.
Máy tính đóng vai trò là máy chủ – Server: Là máy tính có khả năng cung cấp tàinguyên và các dịch vụ đến các máy khách khác trong hệ thống mạng Server đóng vaitrò hỗ trợ cho các hoạt động trên máy khách client diễn ra hiệu quả hơn
Trong mô hình Client Server, server chấp nhận tất cả các yêu cầu hợp lệ từ mọinơi khác nhau trên Internet, sau đó trả kết quả về máy tính đã gửi yêu cầu đó Máy tính được coi là máy khách khi chúng làm nhiệm vụ gửi yêu cầu đến các máychủ và đợi câu trả lời được gửi về
Hình 2.1.2 Miêu tả Client - Server
Để máy khách và máy chủ có thể giao tiếp được với nhau thì giữa chúng phải cómột chuẩn nhất định, và chuẩn đó được gọi là giao thức (Giao thức là gì thì các bạn
có thể tham khảo tại đây) Một số giao thức được sử dụng phổ biến hiện nay như:HTTPS, TCP/IP, FTP,
Nếu máy khách muốn lấy được thông tin từ máy chủ, chúng phải tuân theo mộtgiao thức mà máy chủ đó đưa ra Nếu yêu cầu đó được chấp nhận thì máy chủ sẽ thuthập thông tin và trả về kết quả cho máy khách yêu cầu Bởi vì Server - máy chủ luônluôn trong trạng thái sẵn sàng để nhận request từ client nên chỉ cần client gửi yêu cầu
Trang 9tín hiệu và chấp nhận yêu cầu đó thì server sẽ trả kết quả về phía client trong thời gianngắn nhất.
Nguyên lý hoạt động của TCP:
TCP là giao thức được sử dụng phổ biến nhất trên Internet Khi bạn yêu cầu mộttrang web trong trình duyệt, máy tính sẽ gửi các gói tin TCP đến địa chỉ của máy chủweb, yêu cầu nó gửi lại trang web Máy chủ web phản hồi bằng cách gửi một luồngcác gói tin TCP, mà trình duyệt web của bạn kết hợp với nhau để tạo thành trang web.Khi click vào liên kết, đăng nhập, đăng nhận xét hoặc làm bất kỳ điều gì khác, trìnhduyệt web của bạn sẽ gửi gói tin TCP tới máy chủ và máy chủ gửi lại các gói tin choTCP
Giao thức TCP có độ tin cậy cao, các gói tin được gửi bằng TCP sẽ được theo dõi
do vậy dữ liệu sẽ không bị mất hoặc hỏng trong quá trình vận chuyển Đó là lý do tạisao file tải xuống không bị hỏng ngay cả khi mạng có vấn đề Tất nhiên, nếu bên nhậnhoàn toàn ngoại tuyến, máy tính của bạn sẽ từ bỏ và bạn sẽ thấy một thông báo lỗi ghi
nó không thể giao tiếp với máy chủ lưu trữ từ xa
Giao thức TCP đạt được điều này theo hai cách Đầu tiên, nó yêu cầu các gói tinbằng cách đánh số chúng Thứ hai, nó kiểm tra lỗi bằng cách yêu cầu bên nhận gửiphản hồi đã nhận được cho bên gửi Nếu bên gửi không nhận được phản hồi đúng, nó
có thể gửi lại gói tin để đảm bảo bên nhận nhận chúng một cách chính xác
Nguyên lý hoạt động của UDP:
Trang 10Giao thức UDP hoạt động tương tự như TCP, nhưng nó bỏ qua quá trình kiểm tralỗi Khi một ứng dụng sử dụng giao thức UDP, các gói tin được gửi cho bên nhận vàbên gửi không phải chờ để đảm bảo bên nhận đã nhận được gói tin, do đó nó lại tiếptục gửi gói tin tiếp theo Nếu bên nhận bỏ lỡ một vài gói tin UDP, họ sẽ mất vì bên gửikhông gửi lại chúng Do đó thiết bị có thể giao tiếp nhanh hơn.
UDP được sử dụng khi cần tốc độ nhanh và không cần thiết sửa lỗi Ví dụ, UDPthường được sử dụng cho các chương trình phát sóng trực tiếp và game online Cácvideo được phát trực tiếp thường sử dụng giao thức UDP thay vì TCP Máy chủ sẽ gửimột luồng liên tục các gói tin UDP tới máy tính đang xem Nếu bạn mất kết nối trongvài giây, video sẽ bị dừng hoặc bị giật trong giây lát và sau đó chuyển sang bit hiện tạicủa chương trình phát sóng Nếu bạn chỉ bị mất gói tin nhỏ, video hoặc âm thanh cóthể bị méo trong giây lát vì video sẽ tiếp tục phát mà không có dữ liệu bị thiếu Điều này hoạt động tương tự trong các trò chơi trực tuyến Nếu bạn bỏ lỡ một sốgói tin UDP, nhân vật người chơi có thể dịch chuyển trên bản đồ khi bạn nhận gói tinUDP mới Việc bỏ qua sửa lỗi sẽ giúp tăng tốc kết nối trò chơi và giảm độ trễ
Hình 2.1.3 mô tả TCP VÀ UDP
Trang 112.1.4 Mã hóa dữ liệu RSA/AES
RSA:
Giả sử bạn muốn nói với bạn mình một bí mật Nếu bạn ở ngay bên cạnh họ, bạnchỉ cần thì thầm điều gì đó Nếu bạn ở hai phía đối nhau của đất nước, điều đó sẽkhông an toàn Bạn có thể viết nó ra và gửi cho họ qua đường bưu điện hoặc sử dụngđiện thoại Những cách này sẽ không an toàn và bất kỳ ai có động cơ đủ mạnh đều cóthể chặn được tin nhắn [3]
Một giải pháp để ngăn chặn kẻ nghe trộm và truy cập nội dung tin nhắn là mã hóa
nó Về cơ bản, điều này có nghĩa là thêm một mã vào tin nhắn, nó sẽ làm cho tin nhắnthành một mớ hỗn độn Nếu mã của bạn đủ phức tạp, thì những người duy nhất có thểtruy cập vào thư gốc là những người có quyền truy cập vào mã
Trang 12Nếu bạn có cơ hội chia sẻ mã với bạn mình trước đó, thì một trong hai người cóthể gửi tin nhắn được mã hóa bất cứ lúc nào Nhưng nếu bạn không có cơ hội chia sẻ
mã đó thì sao?
Đây là một trong những vấn đề cơ bản của mật mã, đã được giải quyết bằng các
sơ đồ mã hóa public-key (còn được gọi là mã hóa bất đối xứng) như RSA
Theo mã hóa RSA, các tin nhắn được mã hóa bằng một mã gọi là public key, mãnày có thể được chia sẻ công khai Do một số đặc thù tính toán khoa học khác biệt củathuật toán RSA, một khi một thông điệp đã được mã hóa bằng public key, nó chỉ cóthể được giải mã bằng một key được gọi là private key Mỗi người dùng RSA có cặpkey bao gồm public key và private key của riêng họ Private key cần được giữ bí mật
Các lược đồ public key khác với key symmetric, trong khi đó cả quá trình mã hóa
và giải mã đều phải sử dụng private key Những khác biệt này làm cho mã hóa publickey như RSA hữu ích để giao tiếp trong các tình huống mà trước đó không có cơ hội
để phân phối key một cách an toàn
Các thuật toán key đối xứng có các ứng dụng riêng của chúng Chẳng hạn như
mã hóa dữ liệu cho mục đích sử dụng các nhân hoặc khi có các kênh bảo mật màprivate có thể được chia sẻ
AES :
AES gồm ba mật mã khối AES-128, AES-192, AES-256 tương ứng với độ dài củakey là 128 bit, 192 bit và 256 bit Số vòng của key khác nhau, cụ thể 10 vòng cho 128bit, 12 vòng cho 192 bit và 14 vòng cho 256 bit Mỗi vòng đều thực hiện ba bước thaythế, biến đổi và hòa trộn khối plain text (văn bản thuần túy) đầu vào để biến nó thànhCiphertext (văn bản đã mã hóa)
Trang 13Hình 2.1.5 Mô tả AES
Thông tin được chính phủ phân loại theo ba cấp độ: bảo mật, bí mật, tối mật Tất
cả các độ dài của key từ 128, 192 và 256 bit đều được dùng ở cấp độ bảo mật, bí mật.Riêng với những thông tin tối mật để đảm bảo không xảy ra bất cứ sai sót nào phảicần đến key 192 hoặc 256 bit Mật mã sẽ dùng một key riêng tư để mã hóa và giải mã
dữ liệu và tất nhiên cả người gửi và người nhận đều phải nhận biết và sử dụng đượckey này
Trang 142.2 Mô hình đề xuất
2.2.1 Sơ đồ tổng quát
Hình 2.2.1 Sơ đồ tổng quát
Trang 16(data modification) Trigger được lưu trữ và quản lý trong Server DB, được dùngtrong trường hợp ta muốn kiểm tra các ràng buộc toàn vẹn trong DB.
Trigger thường được sử dụng trong :
+ Trigger thường được sử dụng để kiểm tra ràng buộc (check constraints) trênnhiều quan hệ (nhiều bảng/table) hoặc trên nhiều dòng (nhiều record) của bảng.+ Ngoài ra việc sử dụng Trigger để chương trình có những hàm chạy ngầm nhằmphục vụ những trường hợp hữu hạn và thường không sử dụng cho mục đíchkinh doanh hoặc giao dịch
+ Ngăn chặn việc xóa những dữ liệu quan trọng (có thể dùng back up các dữ liệuquan trọng sang table khác phòng khi …bị xóa ngoài ý muốn)
Ưu điểm của Trigger
● Trigger có thể bắt lỗi business logic ở mức csdl
● Có thể dùng trigger là một cách khác để thay thế việc thực hiện những côngviệc hẹn giờ theo lịch
● Trigger rất hiệu quả khi được sử dụng để kiểm soát những thay đổi của dữliệu trong bảng
Nhược điểm của Trigger
● Trigger chỉ là một phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệuchứ không thay thế được hoàn toàn công việc này