1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website thi trắc nghiệm trực tuyến.

58 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Thi Trắc Nghiệm Trực Tuyến
Tác giả Nguyễn Đức Quang Kim
Trường học Đại học Đà Nẵng
Chuyên ngành Khoa Tin
Thể loại Khóa Luận Tốt Nghiệp
Định dạng
Số trang 58
Dung lượng 1,34 MB

Cấu trúc

  • PHẦN I: CƠ SỞ LÝ THUYẾT (6)
    • I. TÌM HIỂU VỀ FRAMEWORK CAKEPHP (6)
    • II. CẤU TRÚC CỦA FRAMEWORK CAKEPHP (7)
    • III. GIỚI THIỆU MÔ HÌNH MVC (8)
      • 2. Hoạt động của MVC (9)
        • 2.1. Model (9)
        • 2.2. View (10)
        • 2.3. Controller (10)
    • IV. TẠO CƠ SỞ DỮ LIỆU TRONG CAKE PHP (12)
    • V. CÀI ĐẶT CAKE PHP- XÂY DỰNG TÀI LIỆU KỸ THUẬT VỀ CÁCH XÂY DỰNG MỘT ỨNG DỤNG TRÊN FRAMEWORK CAKE PHP THEO MÔ HÌNH MVC (13)
      • 1. Cài đặt CakePHP (13)
  • PHẦN II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG (23)
    • I. KHẢO SÁT BÀI TOÁN (23)
      • 1. Mô tả bài toán (23)
      • 2. Phương pháp (24)
      • 3. Phạm vi sản phẩm (25)
    • II. MÔ TẢ CHUNG (25)
      • 1. Các chức năng chính của ứng dụng (25)
      • 2. Phân loại người dùng sản phẩm (26)
      • 3. Các ràng buộc trong thiết kế và thực hiện (26)
      • 4. Giao diện người dùng (26)
      • 5. Yêu cầu thực thi (26)
      • 6. Yêu cầu an toàn (27)
      • 7. Yêu cầu bảo mật (27)
    • III. THIẾT KẾ HỆ THỐNG (27)
      • 1. Phân tích yêu cầu (27)
      • 2. Sơ đồ phân rã chức năng (29)
      • 3. Xây dựng biểu đồ Use Case tổng quát (29)
      • 4. Biểu đồ hoạt động một vài Use Case (29)
        • 4.1. Đăng nhập (29)
        • 4.2. Biểu đồ cập nhật sinh viên (30)
        • 4.3. Biểu đồ cập nhật khoa (32)
      • 5. Xây dựng biểu đồ lớp (33)
  • PHẦN III: XÂY DỰNG CHƯƠNG TRÌNH (33)
    • I. THIẾT KẾ CƠ SỞ DỮ LIỆU (34)
      • 1. Các bảng (34)
      • 2. Từ điển dữ liệu (34)
      • 3. Lược đồ quan hệ (36)
    • II. DEMO ỨNG DỤNG (37)
      • 1. Giao diện chính (37)
      • 2. Giao diện từng chức năng (38)
        • 2.1. Sinh viên đăng nhập (38)
        • 2.2. Giao diện bắt đầu thi (39)
        • 2.3. Thực hiện bài thi (40)
        • 2.4. Kết quả sau khi thi (41)
        • 2.5. Đăng nhập quản trị (42)
        • 2.6. Giao diện quản lý của quản trị (43)
        • 2.7. Giao diện quản lý học kỳ (43)
        • 2.8. Giao diện quản lý môn học (44)
        • 2.9. Giao diện quản lý học phần (45)
        • 2.10. Giao diện quản lý đề thi (46)
        • 2.11. Giao diện quản lý câu hỏi (47)
        • 2.12. Giao diện quản lý phương án trả lời (48)
        • 2.13. Giao diện quản lý sinh viên (49)
        • 2.14. Giao diện quản lý quản trị (50)
        • 2.15. Giao diện quản lý sinh viên đăng kí thi học phần (51)
  • PHẦN IV: KIỂM THỬ (52)
    • I. YÊU CẦU KIỂM THỬ (53)
      • 1. Mục đích (53)
      • 2. Mục tiêu và phạm vi tổ chức dự án (53)
      • 3. Tính năng của sản phẩm (53)
      • 4. Môi trường vận hành (54)
      • 5. Yêu cầu về chất lượng sản phẩm (54)
    • II. XÂY DỰNG KẾ HOẠCH KIỂM THỬ (54)
      • 2. Mô tả kế hoạch (55)
      • 3. Tài nguyên yêu cầu (55)
      • 4. Quy trình thực hiện (55)
  • Kết luận (56)
  • KẾT LUẬN (57)
  • TÀI LIỆU THAM KHẢO (58)

Nội dung

CƠ SỞ LÝ THUYẾT

TÌM HIỂU VỀ FRAMEWORK CAKEPHP

CakePHP là một framework mã nguồn mở và miễn phí dành cho lập trình web bằng ngôn ngữ PHP, giúp lập trình viên xây dựng ứng dụng web một cách hiệu quả.

CakePHP là tạo ra cách viết code có cấu trúc và nhanh chóng nhưng không mất đi tính linh hoạt của việc lập trình

CakePHP cung cấp đầy đủ công cụ cần thiết để lập trình viên tập trung vào việc áp dụng logic nghiệp vụ mà không phải lo lắng về các chi tiết nhỏ nhặt Nhờ vào các công cụ của CakePHP, lập trình viên có thể phát triển ứng dụng một cách hiệu quả hơn.

CakePHP sở hữu một đội ngũ phát triển và cộng đồng năng động, tạo ra giá trị lớn cho dự án Việc sử dụng CakePHP giúp lập trình viên tiết kiệm thời gian bằng cách giảm thiểu việc viết lại mã, đồng thời cung cấp cho ứng dụng web một nền tảng đã được kiểm tra kỹ lưỡng và liên tục phát triển.

Có khả năng tương thích PHP 4 và 5.Tích hợp các thao tác CRUD với CSDL: các thao tác Thêm/ Xem/ Sửa/ Xóa được hỗ trợ thực hiện tự động

CakePHP có khả năng tự hiểu và nhận diện các tên trường dữ liệu như created, modified, username, password Bằng cách tuân thủ quy ước đặt tên cho bảng và các trường dữ liệu, CakePHP hỗ trợ nhiều thao tác và đảm bảo tính toàn vẹn của dữ liệu.

Cung cấp khả năng tự sinh mã lệnh giúp lập trình viên tiết kiệm thời gian bằng cách tự động hóa những câu lệnh lặp đi lặp lại, từ đó nâng cao hiệu suất làm việc.

Bộ biên dịch yêu cầu với URL rất thân thiện và rõ ràng, dễ hiểu: giúp cho các yêu cầu theo dạng QueryString trở nên dễ đọc hơn

Tích hợp bộ kiểm tra dữ liệu đầu vào: VD như kiểm tra địa chỉ email phải có

Trong quá trình điền thông tin, cần lưu ý rằng không được để trường nào trống và số điện thoại không được chứa ký tự chữ Hệ thống cung cấp khuân mẫu dễ dàng và linh hoạt, cho phép người dùng thay đổi và áp dụng các khuân mẫu một cách nhanh chóng và hiệu quả.

Chúng tôi cung cấp các Helper hỗ trợ AJAX, Javascript, và HTML Form, giúp lập trình viên dễ dàng và nhanh chóng viết các thẻ HTML và Javascript với cú pháp chính xác.

Cung cấp các Component hỗ trợ Email, Cookie, Security, Session và Request Handling

Hỗ trợ Danh sách Điều khiển Truy cập linh hoạt

Cung cấp một thư viện giúp chống các lỗi liên quan đến Injection

Hỗ trợ bản địa hóa: cung cấp giải pháp và các thư viện liên quan để có thể thay đổi ngôn ngữ một cách linh hoạt và triệt để

Hoạt động trong bất kỳ thư mục web nào, với rất ít hoặc hoàn toàn không cần cấu hình Apache.

CẤU TRÚC CỦA FRAMEWORK CAKEPHP

Sau khi tải về CakePHP, bạn sẽ thấy ba thư mục chính: thư mục app dùng để phát triển ứng dụng, thư mục cake chứa mã nguồn lõi của CakePHP do các nhà phát triển cung cấp, và thư mục vendors dành cho các thư viện PHP bổ sung cần thiết cho ứng dụng của bạn Thư mục giải nén sẽ có phiên bản cakephp1x-1.2.6-0.

Thư mục app là nơi ta sẽ phát triển ứng dụng Hãy xem xét kỹ hơn thư mục app:

Thư mục Mô tả config

CakePHP sử dụng một số file cấu hình quan trọng để lưu trữ thông tin kết nối cơ sở dữ liệu, file cấu hình lõi và các file khác Thư mục controllers chứa các controller và components của ứng dụng, trong khi thư mục locale lưu trữ các file chuỗi cho việc quốc tế hóa Thư mục models chứa các model, behavior và nguồn dữ liệu của ứng dụng Thư mục plugins là nơi chứa các gói mở rộng, và thư mục tmp lưu trữ dữ liệu tạm thời như mô tả model, nhật ký và thông tin về session, tùy thuộc vào cấu hình của CakePHP.

Tất cả các class và thư viện khác cần được đặt trong thư mục này để có thể truy cập thông qua hàm App::import('vendor', 'name') Thư mục này hoàn toàn khác với thư mục vendors đã đề cập trước đó, điều này sẽ trở nên rõ ràng khi quản lý nhiều ứng dụng và cài đặt các hệ thống phức tạp Các file trình diễn như elements, trang báo lỗi, helpers, layouts và các file view cũng được lưu trữ trong thư mục views, trong khi thư mục webroot chứa các tài nguyên công khai của ứng dụng.

Khi cài đặt ứng dụng, thư mục gốc sẽ được tạo ra và các thư mục con sẽ được thiết lập để chứa các file CSS, hình ảnh và Javascript.

GIỚI THIỆU MÔ HÌNH MVC

Mô hình MVC (Model – View – Controller) là một kiến trúc quan trọng trong phát triển phần mềm, giúp tách biệt logic chương trình và giao diện người dùng Sự tách rời này cho phép người phát triển dễ dàng thay đổi logic hoặc chỉnh sửa giao diện mà không ảnh hưởng đến phần còn lại của ứng dụng, từ đó nâng cao tính linh hoạt và khả năng bảo trì của phần mềm.

CakePHP tuân theo mô hình thiết kế phần mềm chuẩn (design pattern) MVC MVC chia chương trình thành 3 phần riêng lẻ:

 Model: Mô tả dữ liệu của ứng dụng

 View: Hiển thị dữ liệu của model

 Controller: Xử lý và điều hướng các yêu cầu của client

Hình 1: Một yêu cầu đơn giản của mô hình MVC

Model là các lớp cung cấp dữ liệu, dịch vụ liên quan đến dữ liệu và business logic Chúng có thể là:

 Đánh giá tính hợp lệ của dữ liệu

 Đưa ra quyết định về nghiệp vụ

 Thực hiện việc xử lý dữ liệu theo một quy trình (workflows)

Business logic primarily involves the processing of rules and policies related to operations and business workflows This layer incorporates various rule engines and integration engines, including Spring for Java and Flow3, Scarlet, Seasar, and PHPCrafty for PHP.

Dữ liệu miền đóng vai trò quan trọng trong việc cung cấp và lưu trữ thông tin, đồng thời chuyển đổi dữ liệu thành các định dạng khác nhau theo yêu cầu Tầng Persistent Layer chứa các lớp như PDO (PHP Data Object), Pear MDB2, PHP Doctrine, JDBC, JTA, JPA, Hibernate, JDO và các lớp thực hiện DAO Tương tự như cách mà Controller lấy trạng thái từ Model, Controller cũng cần cung cấp thông số cho Model để nhận lại trạng thái mong muốn, đồng thời phải định nghĩa một interface chung.

View là các lớp định nghĩa cách thức trình bày dữ liệu (không update dữ liệu) Trong các web framework, nó gồm 2 phần chính:

 Template file định nghĩa cấu trúc và cách thức trình bày dữ liệu cho user

Logic xử lý dữ liệu là quá trình áp dụng dữ liệu vào cấu trúc trình bày, bao gồm việc kiểm tra và chuyển đổi định dạng dữ liệu sang dạng trung gian để hiển thị phù hợp với template hiện có Đồng thời, cần kiểm tra trạng thái và đặc tính của dữ liệu để lựa chọn cấu trúc hiển thị thích hợp Trong mô hình Passive View, việc lựa chọn cấu trúc hiển thị đôi khi cũng do Controller đảm nhận.

Vai trò của View cần thay đổi đặc biệt là các ứng dụng web thiên về View phức tạp khi vai trò của Model đã trở nên ổn định

Controller là các lớp điều khiển luồng ứng dụng, tiếp nhận dữ liệu từ người dùng thông qua HTTP header và chuyển tiếp đến các lớp xử lý yêu cầu Tùy thuộc vào thiết kế lớp, Controller thường bao gồm nhiều thành phần khác nhau.

 Action: lớp xử lý các sự kiện chính, nơi dẫn đến application flow chủ yếu (Main Event Handler)

 Request: xử lý một phần user input ở mức GET, POST và PUT

 Session: xử lý một phần user input ở mức SESSION

Controller đóng vai trò quan trọng trong việc xử lý input từ người dùng, thực hiện các phép lọc và tính toán lựa chọn dựa trên kiến trúc và cấu hình của ứng dụng Nó xác định thành phần lớp chính để đáp ứng yêu cầu của người dùng, đồng thời điều khiển luồng ứng dụng Các thành phần xử lý form, như ActionForm trong Struts, thường thuộc về Controller, nơi cũng thực hiện chức năng xác thực form đơn giản nhằm đảm bảo kiểm soát hiệu quả luồng dữ liệu.

Khi xuất hiện các sự kiện phức tạp, Controller cần bổ sung các lớp mới để xử lý chúng theo quy trình độc lập, giúp phân tán mã nguồn khỏi lớp Action Là thành phần điều phối, Controller không nhất thiết phải tương tác với Model trước khi tương tác với View Nếu xảy ra lỗi ngoại lệ hoặc trạng thái request không mong muốn, Controller có thể phản ứng bằng cách chọn View trực tiếp.

Khi giao tiếp với Model, Controller sẽ tiến hành 2 cách:

 extract dữ liệu hay state

Sau khi thu thập dữ liệu, View sẽ được lựa chọn theo cách hành xử thông thường Controller sẽ chuyển tiếp dữ liệu đến View để xử lý Do tính chất công việc của Controller khá phức tạp và đa dạng, việc tách Event Handler Controller thành các phần nhỏ hơn là cần thiết, thay vì xử lý tất cả các tín hiệu và đầu vào của người dùng trên cùng một lớp.

Ví dụ: Hình 1 ở trên là một ví dụ về yêu cầu cơ bản của MVC trong

CakePHP Giả sử một client tên là "Ricardo" click vào link "Buy A Custom Cake Now" trên trang chủ của ứng dụng

Ricardo click vào link trỏ đến địa chỉ http://www.example.com/cakes/buy , và tình duyệt của Ricardo gửi một yêu cầu đến máy chủ web (web server)

Bộ phận điều vận của máy chủ web sẽ kiểm tra URL (/cakes/buy) và chuyển giao yêu cầu này cho controller phù hợp để xử lý.

Controller sẽ tiến hành xử lý các logic của ứng dụng Ví dụ như kiểm tra xem Ricardo đã đăng nhập hay chưa

Controller có thể sử dụng model để truy cập dữ liệu của ứng dụng, thường mô tả các bảng của cơ sở dữ liệu, nhưng cũng có thể mô tả các mục của LDAP, RSS feed hoặc file trên ổ cứng Trong ví dụ này, controller lấy thông tin về lần mua hàng gần nhất của Ricardo từ cơ sở dữ liệu thông qua model.

Sau khi controller hoàn tất việc xử lý, dữ liệu sẽ được chuyển đến view View tiếp nhận và hiển thị dữ liệu cho client, thường ở định dạng HTML trong CakePHP, nhưng cũng có thể là PDF, XML hoặc JSON tùy theo nhu cầu.

TẠO CƠ SỞ DỮ LIỆU TRONG CAKE PHP

Khi tạo cơ sở dữ liệu (CSDL) trên MySQL, trước khi sử dụng PHP, cần chú ý đến quy tắc đặt tên bảng của CakePHP Tên bảng và tên trường phải được đặt theo tiếng Anh.

Dựa vào các yêu cầu như trên, ta xây dựng một CSDL như sau:

 Formats ( id, name, slug, description, created, modified, status)

 Types ( id, name, slug, description, created, modified, status)

 Locations ( id, name, slug, description, created, modified, status)

 DVDs ( id, format_id, type_id, location_id, name, slug, image, website, imdb, rating, discs, episodes, created, modified, status)

 Genres ( id, name, slug, created, modified, status)

 DVDS_Genres ( id, dvd_id, genre_id)

 Templates ( id, name, layout_name, description, image, created, modified, status)

 Admins ( id, username, password, last_login, status)

Trong các bảng ở trên, các tên bảng và tên trường đã được đặt đúng theo quy ước Cụ thể, các quy ước đã được tuân theo là:

Tên bảng phải là số nhiều (có thêm S)

Các khóa chính của các bảng đều phải có tên là id

Với quan hệ 1-n, VD là quan hệ giữa Locations – DVDs, thì trong bảng DVDs phải có trường tên là location_id

Với quan hệ n-n, VD là quan hệ giữa Genres – DVDs, thì tạo một bảng mới với 2 trường dvd_id và genre_id

Status là biến dùng để nhận biết các bản ghi có được đăng lên hay không Status = 1 là có đăng, status = 0 tức là không đăng

Slug, nếu bạn chưa biết, thì nó là một giá trị để giúp cho người dùng dễ hiểu hơn

Khi sử dụng địa chỉ ID như http://www.abc.com/dvd/view/1, người đọc sẽ gặp khó khăn trong việc nhận diện nội dung Thay vào đó, việc sử dụng slug như http://www.abc.com/dvd/view/Bee_movie sẽ giúp người truy cập dễ dàng nhận biết phần nội dung mà họ đang xem.

CÀI ĐẶT CAKE PHP- XÂY DỰNG TÀI LIỆU KỸ THUẬT VỀ CÁCH XÂY DỰNG MỘT ỨNG DỤNG TRÊN FRAMEWORK CAKE PHP THEO MÔ HÌNH MVC

CakePHP cũng giống với một số framework về các cài đặt

Ta phải cài đặt một webserver để cho web hoạt động: Vertrigo, wampserver, apache

Sau khi download mã nguồn cakePHP về, ta tiến hành giải nén và tiến hành đổi tên thành ứng dụng mà ta đang tiến hành

Ví dụ: cakephp-cakephp1x-1.2.6-0 đổi thành eduportal sau đó copy folder eduportal vào trong thư mục www của webser của ta

Sau đó vào folder app/config chỉnh sửa 2 file sau:

 Mở file core.php di chuyển đến dòng:

To enhance data encryption, replace the string 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi' in the configuration with a new string This string serves as a security salt, crucial for the encryption process Remember to save the updated file for effective implementation.

 Đổi tên fiel database.php.default thành database.php

Sau đó di chuyển đến dòng: class DATABASE_CONFIG { var $default = array(

'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', < localhost 'login' => 'root', 'vertrigo', 'test_cake', '',

Mở Vertrigo lên Vào địa chỉ: http://127.0.0.1/phpmyadmin/ sau đó tạo một database có tên test_cake

Sau đó truy cập vào địa chỉ http://127.0.0.1/eduportal Nếu bạn thấy xuất hiện như hình sau thì bạn đã cài đặt cakePHP kết nối đến database thành công

Bước tiếp theo, ta tạo các table cho database test_cake đúng theo qui tắt tạo table trong cake Ta có Table: users có nội dung sau

2.Xây dựng một ứng dụng trên Framework cakephp theo mô hình MVC:

Ta tiến hành xây dựng một framework cakePHP theo mô hình MVC với database test_cake Tạo các lớp Model, View, Controller bằng cake bake console:

To configure the environment variable for Cake Bake to function properly, right-click on My Computer, select Properties, navigate to the Advanced tab, and click on the Environment Variables button A dialog box will then appear.

Chọn new một hộp thoại xuất hiện:

Gõ vào nội dung như trên trong đó:

C:\ProgramFiles\VertrigoServ\Php;C:\ProgramFiles\VertrigoServ\www\eduporta l\cake\console C:\ProgramFiles\VertrigoServ\Php chứa một số file thực thi của PHP

C:\ProgramFiles\VertrigoServ\www\eduportal\cake\console chứa console của cakePHP

 Bước 2: Vào StartRun gõ cmddi chuyển đến đường dẫn

C:\ProgramFiles \VertrigoServ \www \eduportal\cake\console Gõ lệnh: cake bake all

Gõ 1 chọn table users để tạo các Model, View, Controller

Bây giờ ta vào đường dẫn:

C:\Program Files\VertrigoServ\www\eduportal\app\models thấy 1 file user.php nội dung file đó như sau:

Ngày đăng: 09/05/2022, 01:05

HÌNH ẢNH LIÊN QUAN

Hình giúp người ta  có  thể tạo ra  một ứng dụng  mà  trong đó, ta có  thể dễ  dàng  thay đổi logic của chương trình hay chỉnh sửa giao diện của người dùng mà hoàn  toàn không ảnh hưởng đến nhau - Xây dựng website thi trắc nghiệm trực tuyến.
Hình gi úp người ta có thể tạo ra một ứng dụng mà trong đó, ta có thể dễ dàng thay đổi logic của chương trình hay chỉnh sửa giao diện của người dùng mà hoàn toàn không ảnh hưởng đến nhau (Trang 9)
2. Sơ đồ phân rã chức năng: - Xây dựng website thi trắc nghiệm trực tuyến.
2. Sơ đồ phân rã chức năng: (Trang 29)
Hình 1: Giao diện chính  Đặc tả: - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 1 Giao diện chính Đặc tả: (Trang 37)
Hình 2: Sinh viên đăng nhập  Đặc tả: - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 2 Sinh viên đăng nhập Đặc tả: (Trang 38)
Hình  3: Bắt đầu thi  Đặc tả: - Xây dựng website thi trắc nghiệm trực tuyến.
nh 3: Bắt đầu thi Đặc tả: (Trang 39)
Hình  4: Sinh viên thực hiện bài thi  Đặc tả: - Xây dựng website thi trắc nghiệm trực tuyến.
nh 4: Sinh viên thực hiện bài thi Đặc tả: (Trang 40)
Hình  5: Kết quả thi - Xây dựng website thi trắc nghiệm trực tuyến.
nh 5: Kết quả thi (Trang 41)
Hình 6: Đăng nhập quản trị             Đặc tả: - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 6 Đăng nhập quản trị Đặc tả: (Trang 42)
Hình 8: Quản lý học kỳ  Quản trị tạo hoặc thay đổi thông tin học kỳ - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 8 Quản lý học kỳ Quản trị tạo hoặc thay đổi thông tin học kỳ (Trang 43)
Hình 7: Quản lý các danh mục             Đặc tả: - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 7 Quản lý các danh mục Đặc tả: (Trang 43)
Hình 9: Quản lý môn học  Quản trị viên tạo hoặc thay đổi thông tin môn học - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 9 Quản lý môn học Quản trị viên tạo hoặc thay đổi thông tin môn học (Trang 44)
Hình 10: Quản lý học phần    Quản trị viên tạo hoặc thay đổi thông tin học phần - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 10 Quản lý học phần Quản trị viên tạo hoặc thay đổi thông tin học phần (Trang 45)
Hình  11: Quản lý đề thi    Quản trị viên tạo hoặc thay đổi thông tin bộ đề thi - Xây dựng website thi trắc nghiệm trực tuyến.
nh 11: Quản lý đề thi Quản trị viên tạo hoặc thay đổi thông tin bộ đề thi (Trang 46)
Hình 12: Quản lý câu hỏi    Quản trị viên tạo hoặc thay đổi thông tin câu hỏi trong bộ đề  thi - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 12 Quản lý câu hỏi Quản trị viên tạo hoặc thay đổi thông tin câu hỏi trong bộ đề thi (Trang 47)
Hình 13: Quản lý phương án trả lời - Xây dựng website thi trắc nghiệm trực tuyến.
Hình 13 Quản lý phương án trả lời (Trang 48)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w