Hướng tiếp cận của đề tài
Khảo sát chi tiết các yêu cầu từ phía nhà trường và khảo sát qua website
Thông qua các website về trắc nghiệm trực tuyến.
Ý nghĩa lý luận và ý nghĩa thực tiễn của đề tài: vai trò quan trọng trong việc thực hiện đề tài
trong việc thực hiện đề tài
Việc nghiên cứu đề tài giúp cho bản thân em có thể nắm vững hơn về ngôn ngữ PHP, cách lập trình một trang web
Đề tài chú trọng nghiên cứu về việc học tập cũng nhƣ cách làm tăng khả năng nhanh nhạy của học sinh Tiểu học
Giúp cho các học sinh có thể kiểm tra lại kiến thức nhanh hơn, tiết kiệm thời gian và tiền bạc hơn
Giúp cho nhà trường có hình thức thi mới tiết kiệm hơn và tránh học sinh gian lận hơn.
Cấu trúc của báo cáo
Báo cáo gồm có 5 phần:
Phần mở đầu: Giới thiệu về đề tài
Chương I: Cơ sở lý thuyết của đề tài Xây dựng hệ thống thi trắc nghiệm trực tuyến dành cho học sinh tiểu học
Chương II: Phân tích, thiết kế hệ thống thông tin của đề tài Xây dựng hệ thống thi trắc nghiệm trực tuyến dành cho học sinh tiểu học
Chương III: Xây dựng hệ thống thi trắc nghiệm trực tuyến dành cho học sinh tiểu học
Phần Kết luận và tài liệu tham khảo
Giới thiệu về ngôn ngữ lập trình PHP
- PHP (Hypertext Preprocessor) là ngôn ngữ script trên server đƣợc thiết kế để dễ dàng xây dựng các trang Web động Mã PHP có thể thực thi trên
Webserver tạo mã HTML và gửi đến trình duyệt web theo yêu cầu người dùng Ngôn ngữ PHP, được Rasmus Lerdorf phát triển từ năm 1994, đã trải qua nhiều phiên bản và hiện tại là PHP 5, được công bố vào tháng 7 năm 2004.
- Có nhiều lý do khiến cho việc sử dụng ngôn ngữ này chiếm ƣu thế xin nêu ra đây một số lý do cơ bản:
+ Mã nguồn mở (open source code) + Miễn phí, download dễ dàng từ Internet + Ngôn ngữ rất dễ học, dễ viết
+ Mã nguồn không phải sửa lại nhiều khi viết chạy cho các hệ điều hành từ Windows, Linux, Unix
Connecting to various DBMS is straightforward, including popular systems such as MySQL, Microsoft SQL Server 2000, Oracle, and PostgreSQL Additionally, it supports other databases like Adabas, dBase, Empress, FilePro, Informix, InterBase, mSQL, Solid, Sybase, Velocis, and many Unix-based database systems (Unix dbm) Furthermore, any DBMS that supports the ODBC (Open Database Connectivity) mechanism can also be easily integrated.
Connectivity) ví dụ nhƣ DB2 của IBM
- PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML Chỉ khác, đối với PHP chúng ta có nhiều cách để thể hiện
Cách 2: Cú pháp ngắn gọn
Cách 3: Cú pháp giống với ASP
Cách 4: Cú pháp bắt đầu bằng script
- Mặc dù có 4 cách thể hiện Nhƣng đối với 1 lập trình viên có kinh nghiệm thì việc sử dụng cách 1 vẫn là lựa chon tối ƣu
Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";"
1.1.3 Khái niệm biến, hằng, chuỗi và các kiểu dữ liệu
Biến là vùng nhớ dữ liệu tạm thời có giá trị thay đổi Một biến bắt đầu bằng ký hiệu "$" và theo sau là một từ hoặc cụm từ được viết liền hoặc có gạch dưới.
Một biến đƣợc xem là hợp lệ khi nó thỏa các yếu tố:
+ Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới
+ Tên của biến không đƣợc phép trùng với các từ khóa của PHP
Trong PHP, việc khai báo biến trước khi sử dụng là cần thiết, nhưng nhiều lập trình viên thường thực hiện đồng thời việc khai báo và gán giá trị cho biến.
Trong PHP, hằng được định nghĩa là những giá trị không thể thay đổi, khác với biến có thể thay đổi Để tạo một hằng, chúng ta sử dụng hàm define với cú pháp: define(string tên_hằng, giá_trị_hằng).
Cũng giống với biến hằng đƣợc xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố:
+ Hằng không có dấu "$" ở trước tên
+ Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh
+ Hằng chỉ đƣợc phép gán giá trị duy nhất 1 lần
+ Hằng thường viết bằng chữ in để phân biệt với biến
Chuỗi là một nhóm các ký tự, số, khoảng trắng, dấu ngắt đƣợc đặt trong các dấu nháy
- Kiểu dữ liệu trong PHP:
Các kiểu dữ liệu khác nhau sử dụng lượng bộ nhớ khác nhau và được xử lý theo các phương thức khác nhau trong một script.
1.1.4 Cách xuất giá trị ra trình duyệt
- Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau:
Thông tin bao gồm: biến, chuỗi, hoặc lệnh HTML …
- Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."
1.1.5 Đặc điểm của ngôn ngữ PHP a) Giá thành rẻ
PHP là một ngôn ngữ mã nguồn mở, giúp người dùng tiết kiệm chi phí khi sử dụng Nhiều sản phẩm nổi tiếng đã được phát triển dựa trên nền tảng PHP, chứng tỏ sự phổ biến và hiệu quả của ngôn ngữ này.
Nguyễn Thị Diễm – 11CNTT1 chắc chắn bạn đã nghe đến các nền tảng như WordPress, Joomla, và Drupal, tất cả đều miễn phí Điều này thật tuyệt vời! Những phần mềm này hỗ trợ tối đa cho người dùng trong việc xây dựng và quản lý nội dung trực tuyến.
Ngôn ngữ PHP hỗ trợ trên hầu hết các hệ điều hành nhƣ Windows, RISC
PHP có khả năng hoạt động trên nhiều hệ điều hành như OS, Mac OS X, Linux và các biến thể khác của Unix Tương tự, PHP cũng tương thích tốt với hầu hết các máy chủ web, bao gồm Apache và IIS Một trong những ưu điểm nổi bật của PHP là khả năng hỗ trợ đa dạng các loại cơ sở dữ liệu, giúp lập trình viên dễ dàng hơn trong việc phát triển các trang web sử dụng cơ sở dữ liệu.
Hình dưới đây thể hiện các Database được PHP hỗ trợ
Hình 1 PHP hỗ trợ nhiều Database khác nhau giúp việc phát triển Web tiện lợi hơn
Thêm vào đó, PHP có một thành phần mở rộng Database với tên gọi DBX
Nó cho phép chúng ta sử dụng một cách công khai các loại cơ sở dữ liệu khác cùng đƣợc hỗ trợ bởi thành phần này
PHP hỗ trợ ODBC, một chuẩn kết nối cơ sở dữ liệu mở, cho phép lập trình viên sử dụng đồng thời nhiều loại cơ sở dữ liệu khác nhau.
Nguyễn Thị Diễm – 11CNTT1 d) Dễ dàng huy động đƣợc nguồn nhân lực
Khó khăn lớn nhất trong thiết kế và phát triển website là huy động nguồn tài nguyên cho dự án Tuy nhiên, với sự phổ biến của PHP, một trong những ngôn ngữ lập trình hàng đầu, bạn sẽ dễ dàng tìm được sự hỗ trợ từ cộng đồng Tại Việt Nam, có nhiều lập trình viên PHP tài năng sẵn sàng giúp đỡ những người mới bắt đầu học ngôn ngữ này.
Vì tính dễ phát triển của PHP, nhiều ứng dụng không bảo mật đã xuất hiện trên mạng Sự hiện diện của mã nguồn PHP kém chất lượng khiến nhiều người không chuyên lập trình dễ dàng sử dụng mà không xem xét vấn đề bảo mật Điều này đã dẫn đến nhận thức sai lầm rằng PHP vốn dĩ không an toàn.
PHP có sự tương đồng với C nhưng loại bỏ những yếu tố không cần thiết như quản lý bộ nhớ, con trỏ và biên dịch, do đó PHP được xem là một ngôn ngữ thông dịch.
PHP rất linh hoạt; có rất nhiều cách và framework để thực hiện một việc tương tự
Thư viện và các phần mở rộng trong ngôn ngữ lập trình này có sự đóng góp của cộng đồng rất phong phú Tuy nhiên, với quá nhiều lựa chọn có sẵn, việc tìm kiếm một thư viện hoặc framework phù hợp có thể tiêu tốn nhiều thời gian.
PHP giao tiếp với ít ngôn ngữ hơn so với ASP.net, được thiết kế tối ưu để tương tác hiệu quả với các ngôn ngữ lập trình như C#, J#, C++ và VB.net.
Người lập trình PHP không có nhưng công cụ phát triển Visual như
Giới thiệu về HTML, CSS, JavaSript, MySQL
HTML, viết tắt của Hyper Text Markup Language, là ngôn ngữ được sử dụng để tạo ra các trang web với thông tin được trình bày trên Internet Được duy trì bởi tổ chức World Wide Web Consortium (W3C), HTML đã trở thành một tiêu chuẩn quan trọng cho việc phát triển nội dung trên web.
Ngôn ngữ đánh dấu là một tập hợp các thẻ đánh dấu
Tài liệu HTML đƣợc mô tả bởi các thẻ HTML
Mỗi thẻ HTML mô tả nội dung tài liệu khác nhau
Các DOCTYPE khai báo xác định các loại tài liệu là HTML
Các văn bản giữa và mô tả một tài liệu HTML
Các văn bản giữa và cung cấp thông tin về tài liệu
Các văn bản giữa và cung cấp một tiêu đề cho tài liệu
Các văn bản giữa và mô tả nội dung trang có thể nhìn thấy
Các văn bản giữa và mô tả một đề mục
Các văn bản giữa
và mô tả đoạn
Sử dụng mô tả này, một trình duyệt web có thể hiển thị một tài liệu với một tiêu đề và đoạn văn.[2]
CSS (Cascading Style Sheets) is used to describe the presentation of documents written in HTML and XHTML It was developed by the World Wide Web Consortium (W3C).
Thay vì đặt các thẻ qui định kiểu dáng cho văn bản HTML (hoặc
XHTML) ngay trong nội dung của nó, bạn nên sử dụng CSS
Có 3 cách sử dụng CSS
Inline CSS: Áp dụng trực tiếp trên một đối tƣợng nhất định bằng thuộc tính style:
Đoạn text cần in đậm, gạch chân, màu đỏ
Internal CSS allows you to apply styles to an entire webpage by placing CSS rules within a tag located in the header section of the HTML document, specifically between the and tags.
body {font-family:verdana;color:#0000FF;} /* Kiểu chữ trong trang Web là "Verdana", màu chữ thông thường là màu xanh dương */
External CSS: Đặt các thuộc tính CSS vào một tệp tin riêng biệt (*.css), khi đó có thể tham chiếu đến từ nhiều trang Web khác nhau:
Ví dụ về nội dung tệp style.css: body {font-family:verdana;color:#0000FF;}
Tham chiếu tới tệp tin CSS trên từ trang Web bằng đoạn mã (mã có thể nằm ngoài thẻ ):
[3]
JavaScript là một ngôn ngữ lập trình kịch bản phía người dùng (Client-Side Script Language), được thực thi tại máy người dùng Và vì javascript là một
Client-Side Script Language nên nó ko có khả năng kết nối và thao tác với CSDL trên Server
Trước đây, Javascript được xem là ngôn ngữ lập trình dựa vào đối tượng, nhưng sự ra đời của Ajax đã làm cho Javascript trở nên hướng đối tượng hơn Ajax giúp tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ hiển thị những gì cần thiết, thay vì tải lại toàn bộ trang web Do đó, Javascript hiện nay được coi là một ngôn ngữ lập trình hướng đối tượng.
(Object-Oriented programming) Về cú pháp, Javascript cũng tương tự như C, Perl và Java…ví dụ mệnh đề lặp if, while, for, tương tự nhau
JavaScript được sử dụng nhằm bổ sung sự tương tác cho các trang HTML
JavaScript có thể đáp ứng các sự kiện nhƣ tải hay loại bỏ các form Khả năng này cho phép JavaScript trở thành một ngôn ngữ script động
JavaScript có thể được sử dụng để xác nhận dữ liệu người dùng nhập vào trước khi nó được chuyển đến server
Sử dụng Javascript có thể giúp website của bạn tương tác với người dùng một cách uyển chuyển hơn
Nhúng trực tiếp mã JavaScript vào trong tập tin HTML
Ta có thể viết mã JavaScript trực tiếp trong file HTML với cú pháp nhƣ sau
Sử dụng tập tin JS (*.js) bên ngoài
Ngoài ra, chúng ta có thể viết mã javascript vào 1 file bên ngoài và lưu lại với đuôi
*.js sau đó triệu gọi nó vào file HTML với đoạn mã nhƣ sau:
Thuộc tính src: của thẻ cho phép bạn chỉ rõ đường dẫn (link) file nguồn JavaScript đƣợc sử dụng [4]
1.2.4 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu miễn phí, thường được sử dụng cùng với Apache và PHP, nhờ vào sự phát triển mạnh mẽ trong cộng đồng mã nguồn mở Mặc dù MySQL sử dụng cú pháp truy xuất và lệnh tương tự như SQL, nhưng nó không hỗ trợ đầy đủ các truy vấn nâng cao Thực chất, MySQL chủ yếu đáp ứng các truy vấn đơn giản trong quá trình vận hành của website, nhưng vẫn có khả năng giải quyết hầu hết các bài toán trong PHP.
1.2.5 Kết hợp PHP và MySQL trong ứng dụng website Để làm việc với MySQL và PHP chúng ta cần nắm 6 hàm cơ bản:
+ Kết nối cơ sở dữ liệu:
Cú pháp: mysql_connect ("hostname","user","pass")
+ Lựa chọn cơ sở dữ liệu:
Cú pháp: mysql_select_db ("tên_CSDL")
Ví dụ: $conn=mysql_connect ("localhost","root","root") or die ("không thể kết nối"); mysql_select_db ("demo");
+ Thực thi câu lệnh truy vấn:
Cú pháp: mysql_query ("Câu truy vấn ở đây");
+ Đếm số dòng dữ liệu trong bảng:
Cú pháp: mysql_num_rows ();
+ Lấy dữ liệu từ bảng đƣa vào mảng:
Cú pháp: mysql_fetch_array ();
+ Đóng kết nối cơ sở dữ liệu:
Phân tích yêu cầu
2.1.1 Mô tả hệ thống thi trắc nghiệm cho học sinh tiểu học
Mục đích hệ thống: Xây dựng hệ thống thi trắc nghiệm trực tuyến dành cho học sinh tiểu học Yêu cầu cụ thể nhƣ sau:
Người quản trị hệ thống có khả năng tạo đề thi cho từng môn học theo từng khối lớp, giúp học sinh tham gia thi Trong mỗi đợt thi giữa kỳ hoặc cuối kỳ, người quản trị sẽ tạo tài khoản cho thí sinh để họ có thể truy cập vào hệ thống Bên cạnh đó, người quản trị cũng sẽ cung cấp thông tin và thông báo cần thiết liên quan đến học sinh trên nền tảng này.
Học sinh sử dụng hệ thống để chọn đề thi và tham gia thi Để đảm bảo tính chính xác của kết quả, mỗi học sinh chỉ được thi một lần; nếu đăng nhập để thi lần thứ hai, hệ thống sẽ hiển thị thông báo không cho phép thi Ngoài ra, học sinh có thể truy cập hệ thống để xem thông tin và thông báo liên quan đến khối học từ người quản trị.
Nếu người chưa có tài khoản đăng nhập thì có thể vào hệ thống để xem các thông tin, thông báo quan trọng
Một số bước xây dựng cơ bản sau:
Phân tích yêu cầu của người sử dụng
Phân tích và thiết kế hệ thống
Để xây dựng hệ thống, có thể sử dụng các giải pháp công nghệ như ngôn ngữ lập trình HTML, CSS, JavaScript, PHP và hệ quản trị cơ sở dữ liệu MySQL.
2.1.2 Phân tích yêu cầu hệ thống a Yêu cầu chức năng
Học sinh có thể dễ dàng đăng nhập vào hệ thống bằng tài khoản được cấp bởi Người quản trị, nhằm đảm bảo quản lý người dùng hiệu quả trong phạm vi trường học Trong trường hợp quên tên hoặc mật khẩu, học sinh chỉ cần liên hệ với Người quản trị để được cấp lại tài khoản.
Học sinh có thể tìm kiếm, chọn đề thi phù hợp với khối học của mình
Học sinh có quyền tham gia thi một lần khi được cấp tài khoản bởi Người quản trị Để quản lý hiệu quả, mỗi lần thi, học sinh cần được kích hoạt tài khoản Sau khi hoàn thành bài thi, hệ thống sẽ hiển thị điểm số và số câu trả lời đúng để học sinh có thể nắm bắt kết quả.
Học sinh có thể xem hướng dẫn sử dụng hệ thống
Học sinh có cơ hội tìm hiểu về hệ thống, nhận thông tin và thông báo từ Người quản trị, cũng như theo dõi các tin tức và sự kiện phù hợp với độ tuổi của mình mà Người quản trị đã cập nhật.
Người quản trị có quyền quản lý tài khoản của học sinh, bao gồm các chức năng như tìm kiếm học sinh, thêm học sinh mới, chỉnh sửa thông tin của học sinh và xóa học sinh khỏi danh sách người dùng.
Quản lý đề thi, bao gồm: thêm thông tin đề thi, sửa đề thi, xóa đề thi
Quản lý câu hỏi, bao gồm: thêm câu hỏi vào đề thi, sửa, xóa câu hỏi
Quản lý tin tức, bao gồm: thêm tin tức, sửa tin tức, xóa tin tức
Nguyễn Thị Diễm – 11CNTT1 b Yêu cầu phi chức năng
Hệ thống phải đảm bảo hoạt động đƣợc 24/24
Giao diện thân thiện, dễ nhìn
Dễ sửa đổi bổ sung, phát triển thêm các chức năng và tiện ích khác
Bảo mật ngăn chặn người dùng truy cập trái phép
2.1.3 Xác định các chức năng chính của hệ thống
Các chức năng chính của hệ thống:
Thống kê điểm của học sinh
Phân tích và thiết kế hệ thống
Hệ thống thi trắc nghiệm trực tuyến cho học sinh tiểu học bao gồm ba thành phần chính: Người quản trị (quản lý hệ thống), Học sinh (người dùng chính) và Người dùng chung.
Phía Người quản trị: thực hiện các chức năng Quản lý học sinh, Quản lý đề thi, Quản lý câu hỏi, Quản lý tin tức
Hệ thống dành cho học sinh cho phép người dùng thực hiện các chức năng chính như tìm kiếm đề thi, tham gia thi, và liên hệ với người quản trị để phản hồi ý kiến Ngoài ra, hệ thống còn cung cấp các tính năng bổ sung như xem giới thiệu về hệ thống, hướng dẫn sử dụng, đọc thông tin và thông báo quan trọng từ người quản trị, cũng như cập nhật tin tức và sự kiện liên quan.
Người dùng chung: được quyền sử dụng hệ thống để xem tin tức
2.2.2 Biểu đồ use case sử dụng a Sơ đồ use case tổng quát
Hình 2 Sơ đồ Use case tổng quát
Nguyễn Thị Diễm – 11CNTT1 b Phân rã Use case Đăng nhập của học sinh
Hình 3 Use case Đăng nhập
Bảng 1 Mô tả chức năng Đăng nhập
Học sinh Điều kiện trước
Chƣa ở trạng thái đăng nhập ứng dụng Điều kiện sau
Thông tin phiên đăng nhập của học sinh được lưu vào biến SESSION
Mô tả Học sinh sử dụng đăng nhập để vào ứng dụng và sử dụng các dịch vụ của hệ thống
Hành động của tác nhân
Hành động của hệ thống
Nhập thông tin đăng nhập (tài khoản, mật khẩu)
Lấy thông tin (tài khoản, mật khẩu), tiến hành kiểm tra và gởi yêu cầu về server
Nếu thành công thì đăng nhập vào ứng dụng Nếu thất bại thì trả về lỗi c Phân rã Use case Thi
Hình 4 Use case Thi dành cho Học sinh
Bảng 2 Mô tả chức năng Thi
Học sinh Điều Đăng nhập thành công ứng dụng với quyền đăng nhập của
Nguyễn Thị Diễm – 11CNTT1 kiện trước học sinh Điều kiện sau
Kết quả thi của học sinh được lưu vào cơ sở dữ liệu
Mô tả Học sinh thực hiện các việc chọn đề thi, và thi, sau khi nộp bài hệ thống sẽ hiển thị kết quả thi
Hành động của tác nhân
Hành động của hệ thống
Gởi yêu cầu tới server, tìm xem người dùng ở đây là học sinh thuộc khối lớp mấy để load đề thi phù hợp theo khối đó
Chọn đề thi Hiển thị bài thi của đề thi đó
Nếu chưa có đề thi, hệ thống sẽ hiển thị thông báo "Đề thi đang được cập nhật" Nếu học sinh đã tham gia thi đề này trước đó, sẽ có thông báo lỗi không cho phép thi lần thứ hai.
Thi : Tích vào đáp án đúng -> Nộp bài
Kiểm tra xem đáp án của học sinh có khớp với đáp án đúng trong cơ sở dữ liệu Xuất kết quả thi của học sinh một cách chính xác.
Xem kết quả thi Lưu kết quả thi của học sinh vào cơ sở dữ liệu
Nguyễn Thị Diễm – 11CNTT1 d Use case xem tin tức
Hình 5 Use case Xem tin tức
Bảng 3 Mô tả chức năng Xem tin tức Thuộc tính Mô tả
Tác nhân Học sinh/ người dùng chung Điều kiện trước
Không có điều kiện trước
Nguyễn Thị Diễm – 11CNTT1 Điều kiện sau
Không có điều kiện sau
Mô tả Học sinh/ Người dùng chung xem các tin tức trong hệ thống
Kịch bản Hành động của tác nhân
Hành động của hệ thống
Học sinh/ Người dùng chung kích vào các mục danh sách đề thi, thông tin – thông báo, tin tức – sự kiện, giới thiệu, hướng dẫn để xem tin tức
Hệ thống hiển thị tin tức tương ứng ra màn hình e Phân rã Use case Đăng nhập của Người quản trị
Hình 6 Use case Đăng nhập của Người quản trị
Bảng 4 Mô tả chức năng Đăng nhập của Người quản trị
Người quản trị cần đảm bảo rằng ứng dụng được đăng nhập thành công với quyền hạn của mình Sau khi đăng nhập, hệ thống sẽ lưu trữ thông tin phiên đăng nhập của người dùng thông qua biến SESSION.
Mô tả Người quản trị thực hiện đăng nhập vào hệ thống quản lý dành cho người quản trị
Kịch bản Hành động của tác nhân
Hành động của hệ thống
Nhập thông tin đăng nhập trên màn hình đăng nhập
Gửi yêu cầu đến máy chủ để kiểm tra tính hợp lệ của thông tin đăng nhập Nếu thông tin hợp lệ, người dùng sẽ được chuyển đến trang chủ Quản lý hệ thống của quản trị viên Ngược lại, nếu thông tin không hợp lệ, hệ thống sẽ hiển thị thông báo lỗi đăng nhập.
Nguyễn Thị Diễm – 11CNTT1 f Phân rã chức năng quản lý học sinh
Hình 7 Use case Quản lý học sinh
- Sơ đồ hoạt động của chức năng quản lý học sinh
Hình 8 Sơ đồ hoạt động của chức năng Quản lý học sinh
Bảng 5 Mô tả chức năng Quản lý học sinh Thuộc tính Mô tả
Tác nhân Người quản trị Điều kiện trước Đăng nhập thành công ứng dụng với quyền đăng nhập của Người quản trị Điều kiện sau
Cập nhật các thông tin liên quan vào cơ sở dữ liệu
Mô tả Người quản trị thực hiện các chức năng Tìm kiếm học sinh, thêm học sinh mới, xóa học sinh, chỉnh sửa thông tin học sinh
Kịch bản Hành động của tác nhân
Hành động của hệ thống
Nhập từ cần tìm kiếm về một học sinh vào ô „Tìm kiếm học sinh‟
Gởi yêu cầu tới server, trả lại tên các học sinh có thông tin chứa từ giống từ Người quản trị đã nhập
+ Nhập thông tin học sinh và nhấn cập nhật
+ Cập nhật thông tin Người quản trị đã nhập vào cơ sở dữ liệu
+ Tích vào các nút chọn phía trước mỗi dòng thông tin học sinh trong màn hình Quản lý học sinh Nhấn nút
+ Hệ thống xóa thông tin về học sinh tương ứng trong cơ sở dữ liệu
+ Nhấn nút „Sửa‟ trên mỗi dòng thông tin học sinh trong màn hình Quản lý học sinh
+ Nhập thông tin cần chỉnh sửa và nhấn
+ Hệ thống chuyển sang trang „Chỉnh sửa thông tin học sinh‟
+ Hệ thống cập nhật thông tin của học sinh tương ứng vào cơ sở dữ liệu
Nguyễn Thị Diễm – 11CNTT1 g Quản lý đề thi
Hình 9 Use case Quản lý đề thi
- Sơ đồ hoạt động của chức năng Quản lý đề thi
Hình 10 Sơ đồ hoạt động của chức năng Quản lý đề thi
Bảng 6 Mô tả chức năng Quản lý đề thi
Tác nhân Người quản trị Điều kiện trước Đăng nhập thành công ứng dụng với quyền đăng nhập là Người quản trị Điều kiện sau
Cập nhật các thay đổi về đề thi vào cơ sở dữ liệu
Mô tả Người quản trị thực hiện các chức năng Tìm kiếm đề thi, thêm đề thi mới, xóa đề thi, chỉnh sửa thông tin đề
Nguyễn Thị Diễm – 11CNTT1 thi
Kịch bản Hành động của tác nhân
Hành động của hệ thống
Nhập từ cần tìm kiếm về một học sinh vào ô „Tìm kiếm đề thi‟
Gởi yêu cầu tới server, trả lại tên các đề thi có thông tin chứa từ giống từ Người quản trị đã nhập
+ Nhấn nút „Thêm đề thi mới‟
+ Nhập thông tin đề thi (có chọn ảnh) và nhấn cập nhật
+ Cập nhật thông tin Người quản trị đã nhập vào cơ sở dữ liệu
+ Tích vào các nút chọn phía trước mỗi dòng thông tin đề thi trong màn hình Quản lý đề thi Nhấn nút „Xóa‟
+ Hệ thống xóa thông tin về đề thi tương ứng trong cơ sở dữ liệu
+ Nhấn nút „Sửa‟ trên mỗi dòng thông tin đề thi trong màn hình Quản lý đề thi
+ Nhập thông tin cần chỉnh sửa và nhấn
+ Hệ thống chuyển sang trang „Chỉnh sửa thông tin đề thi‟
+ Hệ thống cập nhật thông tin của đề thi tương ứng vào cơ sở dữ liệu
Nguyễn Thị Diễm – 11CNTT1 h Chức năng quản lý câu hỏi
Hình 2 1 Use case Quản lý câu hỏi
- Sơ đồ hoạt động của chức năng Quản lý câu hỏi
Hình 11 Sơ đồ hoạt động của chức năng Quản lý câu hỏi
Bảng 7 Mô tả chức năng Quản lý câu hỏi
Tác nhân Người quản trị Điều kiện trước Đăng nhập thành công ứng dụng với quyền đăng nhập là Người quản trị Điều kiện sau
Cập nhật các thay đổi về câu hỏi vào cơ sở dữ liệu
Mô tả Người quản trị thực hiện các chức năng Tìm kiếm đề thi, thêm đề thi mới, xóa đề thi, chỉnh sửa thông tin đề
Nguyễn Thị Diễm – 11CNTT1 thi
Kịch bản Hành động của tác nhân
Hành động của hệ thống
Nhập từ cần tìm kiếm về một học sinh vào ô „Tìm kiếm câu hỏi‟
Gởi yêu cầu tới server, trả lại tên các câu hỏi có thông tin chứa từ giống từ Người quản trị đã nhập
+ Nhấn nút „Thêm câu hỏi mới‟
+ Nhập thông tin câu hỏi (có chọn tệp) và nhấn cập nhật
+ Cập nhật thông tin Người quản trị đã nhập vào cơ sở dữ liệu
+ Tích vào các nút chọn phía trước mỗi dòng thông tin câu hỏi trong màn hình Quản lý câu hỏi
+ Hệ thống xóa thông tin về câu hỏi tương ứng trong cơ sở dữ liệu
+ Nhấn nút „Sửa‟ trên mỗi dòng thông tin câu hỏi trong màn hình Quản lý câu hỏi
+ Nhập thông tin cần chỉnh sửa và nhấn
+ Hệ thống chuyển sang trang „Chỉnh sửa thông tin câu hỏi‟
+ Hệ thống cập nhật thông tin của câu hỏi tương ứng vào cơ sở dữ liệu
Nguyễn Thị Diễm – 11CNTT1 i Use case quản lý tin tức
Hình 12 Use case Quản lý tin tức
- Sơ đồ hoạt động của chức năng Quản lý tin tức
Hình 13 Sơ đồ hoạt động của chức năng Quản lý tin tức
Bảng 8 Mô tả chức năng Quản lý tin tức
Tác nhân Người quản trị Điều kiện trước Đăng nhập thành công ứng dụng với quyền đăng nhập là Người quản trị Điều kiện sau
Cập nhật các thay đổi về tin tức vào cơ sở dữ liệu
Mô tả Người quản trị thực hiện các chức năng Tìm kiếm tin tức, thêm tin tức mới, xóa tin tức, chỉnh sửa tin tức
Kịch bản Hành động của tác nhân
Hành động của hệ thống
Nhập từ cần tìm kiếm về một học sinh vào ô „Tìm kiếm tin tức‟
Gởi yêu cầu tới server, trả lại tên các tin tức có thông tin chứa từ giống từ Người quản trị đã nhập
+ Nhập thông tin tin tức (có chọn ảnh) và nhấn „Cập nhật‟
+ Cập nhật thông tin Người quản trị đã nhập vào cơ sở dữ liệu
+ Tích vào các nút chọn phía trước mỗi dòng thông tin tin tức trong màn hình Quản lý tin tức Nhấn nút „Xóa‟
+ Hệ thống xóa thông tin về tin tức tương ứng trong cơ sở dữ liệu
+ Nhấn nút „Sửa‟ trên mỗi dòng thông tin tin tức trong màn hình Quản lý tin tức
+ Nhập thông tin cần chỉnh sửa và nhấn
+ Hệ thống chuyển sang trang „Chỉnh sửa thông tin tin tức‟
+ Hệ thống cập nhật thông tin của tin tức tương ứng vào cơ sở dữ liệu
Nguyễn Thị Diễm – 11CNTT1 k Use case quản lý nhân viên
Hình 14 Use case Quản lý nhân viên
- Sơ đồ hoạt động của chức năng quản lý nhân viên
Hình 15 Sơ đồ hoạt động của chức năng Quản lý nhân viên
Bảng 9 Mô tả chức năng Quản lý nhân viên
Người quản trị Điều kiện trước Đăng nhập thành công ứng dụng với quyền đăng nhập là Người quản trị Điều kiện sau
Cập nhật các thay đổi về nhân viên vào cơ sở dữ liệu
Mô tả Người quản trị thực hiện các chức năng Tìm kiếm nhân viên, thêm nhân viên mới, xóa nhân viên, chỉnh sửa nhân viên
Hành động của tác nhân
Hành động của hệ thống
Nhập từ cần tìm kiếm về một học sinh vào ô „Tìm kiếm nhân viên‟
Gởi yêu cầu tới server, trả lại tên các nhân viên có thông tin chứa từ giống từ Người quản trị đã nhập
+ Nhấn nút „Thêm nhân viên mới‟
+ Nhập thông tin nhân viên và nhấn „Cập nhật‟
+ Cập nhật thông tin Người quản trị đã nhập vào cơ sở dữ liệu
+ Tích vào các nút chọn phía trước mỗi dòng thông tin nhân viên trong màn hình Quản lý nhân viên
+ Hệ thống xóa thông tin về nhân viên tương ứng trong cơ sở dữ liệu
Nguyễn Thị Diễm – 11CNTT1 l Phân ra chức năng thống kê
Hình 16 Use case Thống kê
Bảng 10 Mô tả chức năng Thống kê
Người quản trị Điều kiện trước Đăng nhập thành công ứng dụng với quyền đăng nhập là Người quản trị
Nguyễn Thị Diễm – 11CNTT1 Điều kiện sau
Mô tả Người quản trị thực hiện các chức năng Thống kê kết quả thi của học sinh, tìm kiếm kết quả thi của một học sinh nhất định
Hành động của tác nhân
Hành động của hệ thống
Nhập từ cần tìm kiếm về một học sinh vào tab
Gởi yêu cầu tới server, trả lại danh sách kết quả thi của các thi sinh, đã sắp xếp theo thứ tự điểm giảm dần
+ Nhấn nút „Tìm kiếm‟ Nhập thông tin tìm kiếm
Hiển thi kết quả thi của thí sinh có thông tin chứa từ khóa tìm kiếm.
Thiết kế cơ sở dữ liệu
2.3.1 Mô tả chi tiết các bảng dữ liệu
Bảng tbl_hocsinh (Học sinh)
Cột "idhs" có kiểu dữ liệu Varchar(20) và không cho phép giá trị null, dùng để lưu mã học sinh Cột "hoten" cũng có kiểu dữ liệu Varchar(100), không cho phép giá trị null, dùng để lưu họ tên học sinh Cuối cùng, cột "pass" có kiểu dữ liệu Varchar(100) và không cho phép giá trị null, dùng để lưu mật khẩu của học sinh.
Nguyễn Thị Diễm, học sinh lớp 11CNTT1, có ngày sinh được lưu trữ dưới dạng Varchar(100), giới tính được ghi là Varchar(100), địa chỉ học sinh là Varchar(100), khối lớp là Varchar(50) và lớp học là Varchar(50).
Bảng tbl_dethi (Đề thi)
Bài viết mô tả cấu trúc bảng dữ liệu với các cột và thuộc tính như sau: Cột "made" có kiểu dữ liệu Int(10) và không cho phép null, dùng để lưu mã đề thi Cột "tende" có kiểu Varchar(70), không cho phép null, lưu tên đề thi Cột "thongtin" kiểu Text, không cho phép null, lưu thông tin chi tiết Cột "socau" kiểu Int(10), không cho phép null, lưu số câu hỏi Cột "tacgia" kiểu Varchar(50), không cho phép null, lưu tên tác giả Cột "hinhanh" kiểu Varchar(80), không cho phép null, lưu đường dẫn hình ảnh Cột "khoithi" kiểu Varchar(50), không cho phép null, lưu khối thi Cột "ngaydang" kiểu Varchar(50), không cho phép null, lưu ngày đăng Cuối cùng, cột "timer" kiểu Varchar(10), không cho phép null, lưu thời gian làm bài.
Bảng tbl_khoihoc (Khối học)
Tên cột Kiểu dữ liệu Allow
Mô tả thuộc tính makhoi Varchar(50) No Mã khối tenkhoi Varchar(50) No Tên khối
Bảng tbl_cauhoi (Câu hỏi)
Tên cột Kiểu dữ liệu Allow
Mô tả thuộc tính ma_ch là kiểu Int(10) và không bắt buộc Mã câu hỏi được lưu trữ dưới dạng Text và là bắt buộc Nội dung câu hỏi được định nghĩa bằng lc1 đến lc4, là các trường Varchar(80) và đều là bắt buộc Đáp án đúng được lưu trong trường dapan, cũng là Varchar(80) và bắt buộc Mã đề được xác định bởi trường made kiểu Int(10) và là bắt buộc Điểm số của câu hỏi được lưu trữ dưới dạng Double, trong khi trả lời của người dùng được ghi lại trong trường traloi kiểu Varchar(80) và là bắt buộc Cuối cùng, trạng thái của câu hỏi được lưu trong trường trangthai kiểu Int(11) và là bắt buộc.
Bảng tbl_ktbailam (Kiểm tra bài làm)
Tên cột Kiểu dữ liệu Allow
Mô tả thuộc tính id Int(11) No Mã bài làm idmade Varchar(50) Yes Mã đề iduser Varchar(50) No Mã học sinh
Bảng tbl_kqlambai (Kết quả làm bài)
Tên cột Kiểu dữ liệu Allow
Bài viết mô tả các thuộc tính của bảng kết quả làm bài, bao gồm các trường như id (Mã kết quả), idhs (Mã học sinh), made (Mã đề), socau (Số câu đã làm), caudung (Số câu đúng) và ketqua (Kết quả) Các thuộc tính này giúp quản lý và theo dõi kết quả học tập của học sinh một cách hiệu quả.
Bảng tbl_news (Tin tức)
Tên cột Kiểu dữ liệu Allow
Bài viết mô tả các thuộc tính của một bảng tin tức, bao gồm các trường như id (Mã tin tức), tieude (Tiêu đề tin tức), tomtat (Tóm tắt tin tức), chitiet (Chi tiết tin tức), hinhanh (Hình ảnh), linhvuc (Lĩnh vực), trangthai (Trạng thái) và ngaydang (Ngày đăng) Các trường này có các kiểu dữ liệu khác nhau như Int và Varchar, với một số trường yêu cầu và một số không.
Bảng tbl_nhanvien (Nhân viên)
Tên cột Kiểu dữ liệu Allow
Bài viết mô tả cấu trúc thuộc tính của bảng nhân viên với các trường dữ liệu quan trọng như mã nhân viên (idnv), tên đăng nhập (tendn), tên nhân viên (tennv), email (email), mật khẩu (password), mức quyền đăng nhập (level) và ngày thêm (ngaythem) Các trường dữ liệu này được định nghĩa với kiểu dữ liệu tương ứng, bao gồm Int(11) cho mã nhân viên và mức quyền, cùng với Varchar(100) cho các trường tên, email và mật khẩu Ngày thêm được lưu trữ dưới dạng Varchar(50), cho phép quản lý thông tin nhân viên một cách hiệu quả.
2.3.2 Sơ đồ cơ sở dữ liệu quan hệ
Hình 17 Sơ đồ cơ sở dữ liệu quan hệ
Xây dựng các màn hình chức năng của người dùng học sinh
Hình 18 Màn hình Trang Chủ Đây là màn hình trang chủ, bao gồm:
- Xem giới thiệu hệ thống
- Xem hướng dẫn sử dụng hệ thống
- Xem tin tức, sự kiện
Hình 19 Màn hình Giới thiệu hệ thống
Trên trang chủ, bạn có thể nhấn vào nút “Giới thiệu” để truy cập vào trang Giới thiệu, nơi cung cấp cái nhìn tổng quan về mục đích của hệ thống và thông tin về đội ngũ thiết kế.
Nhấn nút “Vào thi” để hệ thống hiển thị danh sách đề thi phù hợp với khối thi của bạn Sau khi chọn đề thi, bạn sẽ vào thi và màn hình thi sẽ hiển thị như hình trên.
Nguyễn Thị Diễm – 11CNTT1 b) Hiển thị kết quả thi
Hình 21 Màn hình Hiển thị kết quả thi
Sau khi học sinh nhấn nút “Nộp bài” hoặc hết thời gian thi, hệ thống sẽ hiển thị trang Kết quả làm bài thi Trang này cung cấp thông tin về kết quả thi (xuất sắc, khá, đạt, không đạt), cùng với đề thi và đáp án để học sinh có thể đối chiếu và nhận biết được câu hỏi nào mình đã trả lời đúng hoặc sai.
3.1.4 Hướng dẫn sử dụng hệ thống
Màn hình hướng dẫn sử dụng hệ thống cung cấp thông tin quan trọng như quy định chung, hướng dẫn đăng nhập, hướng dẫn thi và trợ giúp khi cần thiết Khi người dùng nhấp vào các liên kết, nội dung hướng dẫn tương ứng sẽ được hiển thị.
Xây dựng các màn hình chức năng của người quản trị
Hình 23 Màn hình Đăng nhập của người quản trị
Người quản trị nhập tên người dùng và mật khẩu để đăng nhập vào hệ thống quản trị trang web 3.2.2 Trang chủ
Hình 24 Màn hình Trang Chủ
Màn hình trang chủ bao gồm các tab Quản lý học sinh, quản lý đề thi, quản lý câu hỏi, quản lý tin tức, quản lý nhân viên, thoát
Hình 25 Màn hình Quản lý học sinh
Tại màn hình Quản lý học sinh, người quản trị có thể dễ dàng tìm kiếm học sinh, thêm học sinh mới và sửa đổi thông tin của học sinh bằng cách nhấn vào nút tương ứng.
“Sửa” trên mỗi dòng thông tin học sinh tương ứng), xóa học sinh (tích vào các nút chọn ở các học sinh tương ứng rồi nhấn nút “Xóa All”)
Nguyễn Thị Diễm – 11CNTT1 a) Tìm kiếm học sinh
Hình 26 Màn hình Tìm kiếm học sinh
Nguyễn Thị Diễm – 11CNTT1 b) Thêm học sinh mới
Hình 27 Màn hình Thêm học sinh mới c) Xóa học sinh
Hình 28 Màn hình Xóa học sinh
Nguyễn Thị Diễm – 11CNTT1 d) Sửa thông tin học sinh
Hình 29 Màn hình Sửa thông tin học sinh
Hình 30 Màn hình Quản lý đề thi
Tại màn hình Quản lý đề thi, người quản trị có thể tìm kiếm, thêm mới, sửa đổi thông tin, và xóa đề thi Để sửa thông tin, người dùng chỉ cần nhấn vào nút “Sửa” bên cạnh từng đề thi Để xóa đề thi, hãy chọn các đề thi cần xóa và nhấn nút “Xóa All”.
Nguyễn Thị Diễm – 11CNTT1 a) Tìm kiếm đề thi
Hình 31 Màn hình Tìm kiếm đề thi b) Thêm đề thi
Hình 32 Màn hình Thêm đề thi
Nguyễn Thị Diễm – 11CNTT1 c) Xóa đề thi
Hình 33 Màn hình trang Xóa đề thi d) Chỉnh sửa thông tin đề thi
Hình 34 Màn hình Sửa thông tin đề thi
Hình 35 Màn hình Quản lý câu hỏi
Tại màn hình Quản lý câu hỏi, người quản trị có thể tìm kiếm, thêm mới và sửa đổi thông tin của các câu hỏi một cách dễ dàng.
“Sửa” trên mỗi dòng thông tin câu hỏi tương ứng), xóa câu hỏi (tích vào các nút chọn ở các câu hỏi tương ứng rồi nhấn nút “Xóa All”)
Nguyễn Thị Diễm – 11CNTT1 a) Tìm kiếm câu hỏi
Hình 36 Màn hình Tìm kiếm câu hỏi b) Thêm câu hỏi mới
Hình 37 Màn hình Thêm câu hỏi mới
Nguyễn Thị Diễm – 11CNTT1 c) Xóa câu hỏi
Hình 38 Màn hình Xóa câu hỏi d) Chỉnh sửa câu hỏi
Hình 39 Màn hình Chỉnh sửa câu hỏi
Hình 40 Màn hình Quản lý tin tức
Tại màn hình Quản lý tin tức, người quản trị có thể thực hiện nhiều chức năng quan trọng như tìm kiếm, thêm mới, sửa đổi và xóa tin tức Để sửa thông tin tin tức, chỉ cần nhấn vào nút “Sửa” bên cạnh từng tin tức, trong khi việc xóa tin tức có thể thực hiện bằng cách chọn các mục cần xóa và nhấn nút “Xóa All”.
Nguyễn Thị Diễm – 11CNTT1 a) Tìm kiếm tin tức
Hình 41 Màn hình Tìm kiếm tin tức b) Thêm tin tức
Nguyễn Thị Diễm – 11CNTT1 c) Xóa tin tức
Hình 43 Màn hình Xóa tin tức d) Trang Chỉnh sửa tin tức
Hình 44 Màn hình trang Chỉnh sửa tin tức
Hình 45 Màn hình Quản lý nhân viên
Tại màn hình Quản lý nhân viên, quản trị viên có thể tìm kiếm, thêm mới, sửa thông tin phân quyền và xóa nhân viên dễ dàng Để phân quyền cho nhân viên, chỉ cần nhấn vào nút “Phân quyền” bên cạnh thông tin nhân viên Để xóa nhân viên, hãy tích chọn các nhân viên cần xóa và nhấn nút “Xóa All”.
Nguyễn Thị Diễm – 11CNTT1 a) Tìm kiếm nhân viên
Hình 3 1 Màn hình Tìm kiếm nhân viên b) Thêm nhân viên mới
Hình 46 Màn hình trang Thêm nhân viên mới
Nguyễn Thị Diễm – 11CNTT1 c) Xóa nhân viên
Hình 47 Màn hình Xóa nhân viên
Hình 48 Màn hình thống kê kết quả thi của học sinh
Khi bạn nhấp vào tab Thống kê trên màn hình, hệ thống sẽ hiển thị kết quả thi của các thí sinh Những kết quả này được sắp xếp theo thứ tự giảm dần.
Nếu muốn tìm kết quả thi của một thí sinh nào đó Nhập thông tin của thí sinh vào ô Tìm kiếm.
Giải pháp phát triển ứng dụng
Để giải quyết ứng dụng trên, nhóm em đã chọn các giải pháp nhƣ sau:
Ngôn ngữ lập trình: PHP, HTML, CSS, JavaScript
Về hệ quản trị cơ sở dữ liệu: MySQL
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết quả đạt đƣợc
Trong quá trình thực hiện đồ án tốt nghiệp, tôi đã nhận được sự hỗ trợ nhiệt tình từ thầy cô và bạn bè, giúp tôi hoàn thành đề tài Qua việc tìm hiểu về PHP và MySQL, tôi đã xây dựng thành công hệ thống thi trắc nghiệm trực tuyến và đạt được nhiều kết quả đáng khích lệ.
Hiểu đƣợc cơ bản về PHP
Hiểu đƣợc cơ bản về cơ sở dữ liệu phi quan hệ MySQL
Xây dựng đƣợc hệ thống thi trắc nghiệm trực tuyến
Hạn chế
Tuy đã đạt đƣợc những kết quả nhất định, nhƣng hệ thống vẫn có những hạn chế:
Giao diện chƣa đƣợc đẹp
Hệ thống Server đang trong quá trình xây dựng
Hướng phát triển
Triển khai ứng dụng vào thực tế
Hoàn thiện hệ thống Server
Xây dựng ứng dụng đa nền tảng
Hoàn thiện ứng dụng thêm chức năng quản lý nhân viên, phân quyền cho các nhân viên để hệ thống đƣợc quản lý dễ dàng hơn