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

Nghiên cứu xây dựng hệ thống hỗ trợ PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình (TT)

24 297 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

Định dạng
Số trang 24
Dung lượng 295,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu bài toán Bài toán bao gồm tất cả các vấn đề có liên quan đến việcPCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình, chẳng hạn GV một trường được chia ra nhiều nhóm và đi coi

Trang 1

MỞ ĐẦU

1 Lý do chọn đề tài

- Việc PCCT vào lớp 10 THPT tại tỉnh Quảng Bình là một vấn

đề tuy cũ nhưng chưa có phần mềm nên dẫn đến tốn nhiều thời gian

và công sức, bên cạnh đó để đảm bảo quy chế, quy định là vấn đề hếtsức khó khăn

- Việc ứng dụng công nghệ thông tin vào công tác quản lý giáodục hiện nay rất phổ biến

- Nếu như có phần mềm PCCT vào lớp 10 THPT sẽ tiết kiệmđược rất nhiều chi phí, thời gian và nhân lực Ngoài ra, nó còn giúptăng độ chính xác hiệu quả và đảm bảo tính khách quan

2 Mục tiêu và nhiệm vụ nghiên cứu

Phân tích các đặc thù chung và riêng biệt, đề ra giải pháp hợp

lý một cách tự động trong việc xây dựng và triển khai hệ thống.Nghiên cứu kết hợp các thuật toán để giải quyết bài toánPCCT tuyển sinh vào lớp 10 THPT

Xây dựng sản phẩm hoàn thiện sử dụng tại Sở GDĐT QuảngBình

3 Phương pháp nghiên cứu

3.1 Tư liệu

Trang 2

Tổng hợp các tài liệu liên quan đến thuật toán, cũng như cácquy chế của Bộ GDĐT và quy định của Sở GDĐT Quảng Bình.

Xây dựng một chương trình phục vụ nhu cầu thực hiện PCCT

tự động nhằm giảm thời gian và chi phí bằng tay như hiện nay

5 Nội dung của luận văn

Luận văn được trình bày có 3 chương chính

Chương 1 Bài toán PCCT tuyển sinh vào lớp 10 THPT tại

tỉnh Quảng Bình

Chương 2 Phân tích thiết kế hệ thống

Chương 3 Xây dựng chương trình và thử nghiệm

Trang 3

CHƯƠNG 1 BÀI TOÁN PCCT TUYỂN SINH VÀO LỚP 10 THPT

TẠI TỈNH QUẢNG BÌNH 1.1 GIỚI THIỆU

1.3 PCCT TUYỂN SINH VÀO LỚP 10 THPT

1.3.1 Giới thiệu bài toán

Bài toán bao gồm tất cả các vấn đề có liên quan đến việcPCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình, chẳng hạn

GV một trường được chia ra nhiều nhóm và đi coi thi tại nhiều hộiđồng khác nhau, phân công sao cho tương ứng về số lượng, tránhphân công một người nhiều việc tại nhiều hội đồng CB, GV, nhânviên của tất cả các đơn vị phải thực hiện nhiệm vụ coi thi theo quyđịnh trong bảng phân công, đảm bảo quy chế thi của Bộ GDĐT vàquy định của Sở GDĐT Quảng Bình Vấn đề của bài toán là ngoàiviệc thực hiện đúng, chính xác, còn phải tốt hơn, nhanh hơn và hiệuquả hơn công việc phân công bằng tay mà chúng ta còn phải đảmbảo các yêu cầu tương đương nhau về: Độ tuổi trung bình của cáchội đồng, giới tính (tỷ lệ nam nữ), khoảng cách ngắn nhất (GV coithi gần đơn vị công tác nhất); tỷ lệ GV THPT, THCS (điều động hết

GV THPT, còn lại điều động GV THCS, tỷ lệ GV tương đươngnhau); CB, GV không đến những đơn vị mà năm trước đã đến coithi, không đổi chéo GV coi thi giữa các trường … tại mỗi Hội đồng

Trang 4

1.3.2 Phát biểu bài toán

Ngay khi vấn đề được đặt ra, chúng ta đã thấy bài toán phảiđược giải quyết trên hai nền tảng cơ bản: nghiệp vụ và kỹ thuật Đểtạo ra những sản phẩm phù hợp với thực tiễn, nhu cầu của ngành, củabài toán PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình, yêucầu dữ liệu của bài toán phải được hiển thị đầy đủ, không thiếu sót,không bị sai lệch, hệ thống các ràng buộc của bài toán phải logic,trùng khớp với nhau, không chồng chéo và phải phù hợp với yêu cầu

đề ra Phần kỹ thuật cũng vậy, phải xử lý tất cả những yêu cầu chungcũng như những yêu cầu riêng biệt từ các đối tượng gửi đến, chúngđược xem như là thành phần ràng buộc của bài toán, bắt buộc vấn đềphải thỏa mãn và đáp ứng hoàn toàn Vì vậy, tôi sẽ phân tích bài toántrên hai thành phần đó

1.3.3 Dữ liệu bài toán

a Các đối tượng sử dụng

Các đối tượng chính yếu xung quanh mô hình phân công GTcoi thi tại các HĐCT chính là thành phần đầy đủ tính năng củachương trình trong bài toán Tất cả được liệt kê như sau: CB, GV;Trường học; HĐCT; Phòng thi; Môn thi; Huyện thị; Khoảng cáchgiữa các hội đồng

b Mối quan hệ giữa các đối tượng

Quyết định thành lập HĐCT là phần thể hiện mối quan hệ củacác đối tượng: HĐCT, CB, GV, nhân viên làm nhiệm vụ coi thi Saunày HĐCT đặt tại một điểm cụ thể với số lượng phòng thi cụ thểtương ứng số lượng thí sinh dự thi cụ thể, gây phát sinh mới, tạo quan

hệ thứ hai giữa GT làm nhiệm vụ thi và phòng thi Đó là mối quan hệ

cơ sở

Trang 5

1.3.4 Các ràng buộc bài toán

+ Khoảng cách ngắn nhất (GV coi thi gần đơn vị công tácnhất)

+ Tỷ lệ GV THPT, THCS

+ CB, GV không đến những đơn vị mà năm trước đã coi thi.+ Không đổi chéo GV coi thi

+ GV coi thi không dạy cùng trường với CTHĐ coi thi

+ Đảm bảo đủ về số lượng GT để CTHĐ phân công theonguyên tắc: hai GT trong một phòng thi phải là GV dạy khác trường;

GT không coi thi quá một môn đối với mỗi phòng thi; hai GT khôngcùng coi thi quá một lần; GT trong phòng thi là những người khôngdạy môn đang thi

+ Không có CB, GV, nhân viên nào được phân công hai nhiệm

d Chức năng chiết xuất

1.3.6 Các yêu cầu phi chức năng

- Giao diện đồ họa gần gũi, dễ sử dụng

- Dữ liệu dạng Excel có thể trực tiếp truy xuất bằng chươngtrình khác

1.4 CÁC CÔNG CỤ HỖ TRỢ HIỆN TẠI

1.5 MỘT SỐ THUẬT TOÁN SỬ DỤNG ĐỂ GIẢI QUYẾT BÀI TOÁN PCCT

1.5.1 Giới thiệu

Trang 6

Chúng tôi đã chọn kết hợp thuật toán cặp ghép và thuật toántham lam giải quyết bài toán PCCT tuyển sinh vào lớp 10 THPT.

- Những 0_cạnh thuộc M gọi là những 0_cạnh đã ghép, những0_cạnh còn lại là những 0_ cạnh chưa ghép

- Nếu ta định hướng lại các 0_cạnh như sau: Những 0_cạnhchưa ghép cho hướng từ tập X sang tập Y, những 0_cạnh đã ghépcho hướng từ tập Y về tập X

- Đường pha (Alternating Path) là một đường đi cơ bản xuấtphát từ một X_đỉnh chưa ghép đi theo các 0_cạnh đã định hướng ởtrên

- Một đường mở (Augmenting Path) là một đường pha đi từmột X đỉnh chưa ghép tới một Y đỉnh chưa ghép

b Thuật toán Hungari (cặp ghép)

Bước 1: Khởi tạo:

Một bộ ghép M := Ø

Bước 2: Với mọi đỉnh x*X, ta tìm cách ghép x* như sau:Bắt đầu từ đỉnh x* chưa ghép, thử tìm đường mở bắt đầu ở x*bằng thuật toán tìm kiếm trên đồ thị (BFS hoặc DFS - thông thườngnên dùng BFS để tìm đường qua ít cạnh nhất) có hai khả năng xảy ra:

- Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏnhững cạnh đã ghép khỏi M và thêm vào M những cạnh chưa ghép,

Trang 7

ta được một bộ ghép mới nhiều hơn bộ ghép cũ 1 cạnh và đỉnh x* trởthành đã ghép.

- Hoặc không tìm được đường mở thì do ta sử dụng thuật toántìm kiếm trên đồ thị nên có thể xác định được hai tập:

* VisitedX = {Tập những X_đỉnh có thể đến được từ x* bằngmột đường pha}

* VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằngmột đường pha}

Gọi Δ là trọng số nhỏ nhất của các cạnh nối giữa một đỉnhthuộc VisitedX với một đỉnh không thuộc VisitedY Dễ thấy Δ > 0bởi nếu Δ = 0 thì tồn tại một 0_cạnh (x, y) với xVisitedX và yVisitedY Vì x* đến được x bằng một đường pha và (x, y) là một0_cạnh nên x* cũng đến được y bằng một đường pha, dẫn tới y VisitedY, điều này vô lý

Biến đổi đồ thị G như sau: Với x  VisitedX, trừ Δ vàotrọng số những cạnh liên thuộc với x, Với y  VisitedY, cộng Δvào trọng số những cạnh liên thuộc với y

Lặp lại thủ tục tìm kiếm trên đồ thị thử tìm đường mở xuấtphát ở x* cho tới khi tìm ra đường mở

Bước 3: Sau bước 2 thì mọi X_đỉnh đều được ghép, in kết quả

Trang 8

<Tìm đường mở xuất phát ở x*>;

if <Không tìm thấy đường mở> then <Biến đổi đồ thị G: Chọn

Δ := …>;

until <Tìm thấy đường mở>;

<Dọc theo đường mở, loại bỏ những cạnh đã ghép khỏi M vàthêm vào M những cạnh chưa ghép>;

end;

<Kết quả>; [4]

c Cài đặt thuật toán

- Sơ đồ cài đặt phương pháp Kuhn-Munkres

Bước 1: Khởi tạo

M := Ø;

Việc khởi tạo các Fx, Fy có thể có nhiều cách chẳng hạnFx[i] := 0; Fy[j] := 0 với i, j Hoặc: Fx[i] := min(c[i, j]) với i Sau

đó đặt Fy[j] := min(c[i, j] Fx[i]) với  Fx[i]) với j

Bước 2: Với mọi đỉnh x*X, ta tìm cách ghép x* như sau:Bắt đầu từ đỉnh x*, thử tìm đường mở bắt đầu ở x* bằng thuậttoán tìm kiếm trên đồ thị (BFS hoặc DFS) Lưu ý rằng 0_cạnh làcạnh thoả mãn c[i, j] = Fx[i] + Fy[j] Có hai khả năng xảy ra:

Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏnhững cạnh đã ghép khỏi M và thêm vào M những cạnh chưa ghép.Hoặc không tìm được đường mở thì xác định được hai tập:

- VisitedX = {Tập những X_đỉnh có thể đến được từ x* bằngmột đường pha}

- VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằngmột đường pha}

Trang 9

Đặt  := min{c[i, j] - Fx[i] - Fy[j] X[i] X[i]  VisitedX; Y[j] X[i] VisitedY}

Với X[i] VisitedX: Fx[i] := Fx[i] + ;

Với Y[j]  VisitedY: Fy[j] := Fy[j] - ;

Lặp lại thủ tục tìm đường mở xuất phát tại x* cho tới khi tìm

Tính chất lựa chọn tham lam

Chúng ta có thể lựa chọn giải pháp nào được cho là tốt nhất ởthời điểm hiện tại và sau đó giải bài toán con nảy sinh từ việc thựchiện lựa chọn vừa rồi Lựa chọn của thuật toán tham lam có thể phụthuộc vào các lựa chọn trước đó Nhưng nó không thể phụ thuộc vàomột lựa chọn nào trong tương lai hay phụ thuộc vào lời giải của cácbài toán con Thuật toán tiến triển theo kiểu thực hiện các chọn lựatheo một vòng lặp, cùng lúc đó thu nhỏ bài toán đã cho về một bàitoán con nhỏ hơn

S = Ø //S là giải pháp tối ưu

While ( C Ø và S chưa là giải pháp) do

Trang 10

X = chọn( C) // chọn x từ tập c theo tiêu chí của hàm chọn

Trang 11

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 BIỂU ĐỒ CA SỬ DỤNG

2.2.1 Mức 1 (Tổng quát hóa)

Hình 2.1 Usecase Tổng quát hóa

2.2.2 Mức 2 (Chi tiết từng Usecase)

2.2.3 Biểu đồ tuần tự

2.2.4 Biểu đồ hoạt động

2.2.4 Biểu đồ hoạt động

2.2.5 Biểu đồ trạng thái đối tượng GV

2.3 THIẾT KẾ CƠ SỞ DỮ LIỆU

Lớp CSDL chính là các bảng dữ liệu được xây dựng bằng hệquản trị CSDL MS SQL Server 2005

Sau đây là cách xây dựng các bảng dữ liệu cùng với các thuộctính của chúng:

Trang 12

2.3.10 Sơ đồ quan hệ giữa các bảng

Hình 2.15 Sơ đồ quan hệ giữa các bảng

Trang 13

2.4 TỔNG KẾT CHƯƠNG 2

Trong chương này, tôi đã trình bày quá trình sử dụng ngônngữ UML để phân tích và thiết kế CSDL cho hệ thống phần mềm.Nội dung chính của chương trình này là trình bày các usecase và cácluồng thao tác của các usecase đó Ngoài ra, chương này còn trìnhbày thiết kế các bảng dữ liệu từ các đối tượng tham gia trong hệthống và mối quan hệ giữa các bảng

Trang 14

CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ THỬ NGHIỆM 3.1 THIẾT KẾ CHI TIẾT CÁC THUẬT TOÁN

3.1.1 Quản lý PCCT

Quy chế về việc PCCT THPT do Bộ Giáo dục và Đào tạo banhành chỉ nêu rõ các bước triển khai và yêu cầu chung từng bước Tuynhiên, việc triển khai PCCT THPT tại mỗi tỉnh lại có từng đặc thùkhác nhau nên việc áp dụng quy chế của Bộ Giáo dục và Đào tạomỗi nơi một khác Vì vậy, tại Việt Nam mỗi tỉnh lại có quy địnhPCCT khác nhau không tỉnh nào giống tỉnh nào

3.1.2 Giải pháp chính cho bài toán PCCT

Việc PCCT lớp 10 THPT tỉnh Quảng Bình có những đặc thùrất riêng biệt và rất khác so với các tỉnh khác trên toàn quốc Vì vậy,

để giải quyết này cần phải có mô hình và giải pháp riêng

Trước hết, dùng thuật toán cặp ghép để phân công CT, PCT và

TK hội đồng Sau đó, tiếp tục dùng giải thuật cặp ghép để chọn cáccặp GV - HĐCT thỏa mãn các yêu cầu theo quy chế Sau đó dùngthuật toán tham lam đồng thời kiểm tra các yêu cầu của những GVcòn lại nhằm thỏa mãn các ràng buộc của bài toán PCCT, để cho radanh sách PCCT thô và tinh chỉnh để xuất ra tệp Excel, pdf ( hình3.2)

Trang 15

Hình 3.2 Giải pháp cho bài toán PCCT.

Yêu cầu của

GV

Bảng danh sách GV

Dùng thuật toán Cặp ghép để ghép từng cặp Nhóm GV – Hội đồng để phân công GT, đồng thời kiểm tra yêu cầu của

GV

Danh sách PCCT chưa hoàn chỉnh

Dùng thuật toán Tham lam để phân công cho các GV

còn lại, đồng thời kiểm tra các ràng buộc của các GV

phân công TK Hội đồng

Trang 16

3.1.3 Kết hợp thuật toán cặp ghép và tham lam trong bài toán PCCT

a Thuật toán cặp ghép

Từ bảng danh sách GV, sau khi phân công CT, PCT và TKHội đồng, ta lọc những GV còn lại, đồng thời chúng ta kiểm tra cácràng buộc nếu thỏa mãn ta dùng thuật toán cặp ghép PCCT chonhững GV này Thuật toán được mô tả qua hình 3.3

Hình 3.3 Thuật toán cặp ghép PCCT

Khởi tạo dữ liệu

Tìm đường mở có trong số = min

Tìm thấy

Mở rộng đường mở

Hoàn tất ?

Trang 17

b Xây dựng bộ ghép đầy đủ

Áp dụng thuật toán cặp ghép để chọn ra nhóm cặp GV thỏa

mãn các yêu cầu ràng buộc của bài toán PCCT nhằm xây dựng được

bộ ghép đầy đủ cho những GV này được mô tả qua hình 3.4

Hình 3.4 Sơ đồ ghép cặp GV có tổng số khoảng cách di chuyển ngắn nhất.

Trang 18

c Thuật toán tham lam

Sau khi áp dụng thuật toán cặp ghép phân công coi thi chonhững nhóm GV có khoảng cách di chuyển ngắn nhất, chúng ta ápdụng thuật toán tham lam để giải quyết các GV còn lại, cho ra đượcmột danh sách coi thi thô của toàn trường được mô tả qua hình 3.5 Hình 3.5 thể hiện việc ứng dụng thuật toán tham lam để phâncông coi cho những nhóm GV trong một trường có tổng GV nhỏ hơn

5 Lựa chọn tham lam trong trường hợp này là tập các GV trong mộttrường có số lượng chưa xét nhỏ hơn 5, ta sắp xếp theo chiều giảmdần của số lượng, đồng thời giải quyết tất cả các trường này và cho

ra được danh sách PCCT dưới dạng bảng

Sau bước này ta có thể sử dụng các chức năng tinh chỉnh nhằm tạo ramột danh sách coi thi tốt nhất dưới dạng bảng, tại đây ta sẽ xuất ratệp Excel

3.2 THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

3.2.1 Phân công tự động hoàn toàn

Nếu không có lỗi dữ liệu đầu vào thì phần mềm sẽ tiến hànhPCCT cho toàn bộ các hội đồng trong thời gian một vài phút

3.2.2.Tinh chỉnh dữ liệu của các GV tham gia

Do không thể tự động đánh giá các GV bị thay đổi dữ liệu này

là tốt lên hay xấu đi, yêu cầu bắt buộc phải có của một lệnh tinhchỉnh dữ liệu là cho phép người dùng quan sát các thay đổi trước vàsau khi thực hiện lệnh tinh chỉnh của các GV trung gian NgườiPCCT quan sát và quyết định cuối cùng xem có thực hiện thao táctinh chỉnh đó không

Trang 19

3.2.3 Cách thức tinh chỉnh thủ công PCCT lớp 10 THPT

Sau khi phần mềm phân công tự động xong, chúng ta xem kếtquả phân công từ bảng thống kê số lượng GT theo từng hội đồng

Từ bảng thống kê này chúng ta có thể thấy hội đồng nào thiếu

GT Đó là căn cứ để ta tinh chỉnh cho phù hợp Để tinh chỉnh thủcông, chúng ta vào chức năng phân công thủ công

Hình 3.5 Thuật toán tham lam PCCT cho nhóm GV của 1 trường

có số GV nhỏ hơn 5

Tìm nhóm GV M1 ở trường L1 mà sogiaovien(M1,L1) ≤ 4

Tìm thấySai

Đúng

Tìm Hội đồng sao cho sao cho

sogiaovien(M1,L1)≤hoidongt

hieu() vàsogiaovien(M1,L1) thỏa yêu

cầu

Tìm thấy

Ghép xen kẽ nhóm GV vào danh sách coi thi

Đúng

S ai

Bắt đầu

Kết thúcSai

Đúng

Trang 20

3.2.4 Thử nghiệm thực tế với dữ liệu kỳ thi tuyển sinh vào lớp 10 THPT.

Thực hiện đúng, chính xác, còn phải tốt hơn,

nhanh hơn và hiệu quả hơn công việc phân công

6 GV coi thi không dạy cùng trường với CTHĐ coi

7 Số lượng GV trùng môn < ½ số lượng phòng thi Đạt

8 Hội đồng tới coi thi khác huyện với trường đang

9 Mỗi hội đồng phải có một PCT, TK sở tại Đạt

10 Nếu hội đồng có nhiều hơn một TK thì hội đồng

Trang 21

b Khả năng áp dụng

Phần mềm PCCT đã được kiểm thử rất nhiều lần và đã triểnkhai áp dụng PCCT cho kỳ thi tuyển sinh vào lớp 10 THPT tại tỉnhQuảng Bình năm 2013 với kết quả kỳ thi diễn ra thành công tốt đẹp.Hơn nữa có thể sử dụng phần mềm này vào PCCT cho các kỳ thi Tốtnghiệp trung học phổ thông, các kỳ thi chọn học sinh giỏi, kiểm trakhảo sát chất lượng giáo dục trên toàn tỉnh, thi tốt nghiệp nghề phổthông, thi tuyển công chức,

3.3 TỔNG KẾT CHƯƠNG 3

Trong chương này, chúng tôi đã phân tích chi tiết bài toánPCCT lớp 10 THPT; thể hiện được giải pháp chính của bài toán, ứngdụng thuật toán cặp ghép và thuật toán tham lam trong khi giải quyếtbài toán Sử dụng bộ dữ liệu thực của tỉnh Quảng Bình trong việcPCCT lớp 10 THPT làm dữ liệu cơ sở để minh họa cho bài toán,đồng thời đưa ra được một số chức năng tinh chỉnh thủ công và đãgiải quyết tốt hơn bài toán PCCT

Ngày đăng: 06/07/2015, 10:25

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Usecase Tổng quát hóa - Nghiên cứu xây dựng hệ thống hỗ trợ PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình (TT)
Hình 2.1. Usecase Tổng quát hóa (Trang 11)
Hình 3.2. Giải pháp cho bài toán PCCT. - Nghiên cứu xây dựng hệ thống hỗ trợ PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình (TT)
Hình 3.2. Giải pháp cho bài toán PCCT (Trang 15)
Hình 3.3. Thuật toán cặp ghép PCCT - Nghiên cứu xây dựng hệ thống hỗ trợ PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình (TT)
Hình 3.3. Thuật toán cặp ghép PCCT (Trang 16)
Hình 3.4. Sơ đồ ghép cặp GV có tổng số khoảng cách di chuyển ngắn nhất. - Nghiên cứu xây dựng hệ thống hỗ trợ PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình (TT)
Hình 3.4. Sơ đồ ghép cặp GV có tổng số khoảng cách di chuyển ngắn nhất (Trang 17)
Hình 3.5. Thuật toán tham lam PCCT cho nhóm GV của 1 trường - Nghiên cứu xây dựng hệ thống hỗ trợ PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình (TT)
Hình 3.5. Thuật toán tham lam PCCT cho nhóm GV của 1 trường (Trang 19)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w