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

Nghiên cứu xây dựng phần mềm tối ưu hóa phương án đi lại bằng phương tiện giao thông công cộng,luận văn thạc sĩ xây dựng đường ô tô và đường thành phố

120 5 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 120
Dung lượng 2,62 MB

Nội dung

MỤC LỤC Nội dung Trang Tranh Phụ…………………………………………………………………………… a Mục lục……………………………………………………………………………… b Danh mục bảng………………………………………………………………… f Danh mục hình vẽ, đồ thị……………………………………………………… g MỞ ĐẦU ………………………………………….……………………………… Chương TỔ CHỨC GIAO THÔNG VÀ GIAO THÔNG CÔNG CỘNG……… 1.1 Mục đích biện pháp tổ chức giao thơng 1.1.1 Mục đích tổ chức giao thông 1.1.2 Các biện pháp tổ chức giao thông 1.2 Tổ chức hệ thống giao thông công cộng 1.2.1 Vai trò hệ thống giao thông công cộng 1.2.2 Các loại hình giao thơng cơng cộng 1.3 Hiện trạng sử dụng phương tiện giao thông công cộng – xe buýt thành phố Hồ Chí Minh 15 1.3.1 Hệ thống phương tiện giao thông công cộng – xe buýt thành phố Hồ Chí Minh 1.3.2 Hiện trạng sử dụng phương tiện giao thông công cộng – xe buýt b 15 thành phố Hồ Chí Minh 26 1.4 Các biện pháp thúc đẩy việc sử dụng phương tiện giao thông công cộng – xe buýt 27 1.4.1 Các biện pháp thúc đẩy việc sử dụng phương tiện giao thông công cộng 27 1.4.2 Các biện pháp thúc đẩy việc sử dụng phương tiện giao thông công cộng – xe buýt Tại thành phố Hồ Chí Minh 30 1.5 Các phương pháp tra cứu tuyến xe buýt, thơng tin xe bt thành phố Hồ Chí Minh 31 Chương TỔNG QUAN VỀ KIẾN TRÚC CHƯƠNG TRÌNH 36 2.1 Ứng dụng web 36 2.2 Lựa chọn hình thức ứng dụng Web để thực đề tài 40 2.3 Khái niệm lập trình Web 41 2.3.1 Các khái niệm lập trình Web 41 2.3.2 Hệ toạ độ địa lý 45 2.3.3 Giới thiệu - chức Google map 47 2.4 Sơ đồ kiến trúc 52 2.4.1 Kiến trúc hệ thống 53 2.4.2 Luồng liệu 55 c 2.4.3 Giới hạn Google map ảnh hưởng đến thiết kế hệ thống 56 2.4.4 Cơ ngơn ngữ lập trình sử dụng đề tài sở liệu 57 Chương THIẾT KẾ MODULE TÌM ĐƯỜNG 81 3.1 Thiết kế sở liệu…………………………………………………… 82 3.2 Module truy vấn liệu…………………………….…………………… 84 3.2.1 Các đối tượng lưu trữ………………………………………………… 84 3.2.2 Công nghệ Hibernate……………………….…………… ………… 86 3.3 Module tìm đường……………………………………………………… 87 3.3.1 Giới thiệu giải thuật tối ưu tìm đường 87 3.3.2 Giải thuật tìm đường chuyển tuyến nhất…………………………… 89 3.3.3 Giải thuật tìm đường ngắn nhất…………………………………… 93 3.4 Thu thập xử lý số liệu 96 3.4.1 Thu thập số liệu 96 3.4.2 Xử lý số liệu…………………………………………………………… 97 Chương THIẾT KẾ MODULE GIAO DIỆN VÀ TƯƠNG TÁC NGƯỜI DÙNG 99 4.1 Module hiển thị Google map………………………… ……………… 99 d 4.1.1 Hiển thị đồ lần 99 4.1.2 Vẽ lại đồ sau có kết tìm đường 100 4.2 Module tương tác với Google map service……………………………… 101 4.3 Module tương tác với Web server……………………………………… 101 4.4 Cách sử dụng chương trình……………………………………………… 102 4.4.1 Cách sử dụng tổng quát……………………………………………… 102 4.4.2 Thực chức chương trình…………………………… 104 KẾT LUẬN VÀ KIẾN NGHỊ 109 TÀI LIỆU THAM KHẢO j PHỤ LỤC 1_P PHỤ LỤC – Danh sách vị trí trạm dừng tuyến xe buýt địa bàn quận – quận Thủ Đức 1_P PHỤ LỤC – Tọa độ trạm dừng tuyến xe buýt địa bàn quận – quận Thủ Đức 58_P PHỤ LỤC – Biểu đồ chạy xe tuyến xe buýt địa bàn quận – quận Thủ Đức e 97_P DANH MỤC CÁC BIỂU BẢNG Bảng 1.1 Hệ thống xe buýt thành phố Hồ Chí Minh Bảng 1.2 Số lượng sức chứa bình quân hệ thống xe buýt Bảng 1.3 Chủng loại xe buýt năm 2010 Bảng 1.4 Hệ thống sở hạ tầng tuyến xe buýt thành phố Hồ Chí Minh Bảng 1.5 Khối lượng thực vận tải hành khách công cộng Bảng 2.1 Một vài tag thường sử dụng Bảng 2.2 Danh sách thuộc tính thơng dụng StyleSheet Bảng 2.3 Tập hợp kiểu liệu JavaScript Bảng 2.4 Các toán tử số học JavaScript Bảng 2.5 Các toán tử so sánh JavaScript Bảng 2.6 Ví dụ sở liệu để lưu trữ đối tượng xe Bảng 3.1 Bảng mẫu thông tin trạm xe buýt Bảng 3.2 Bảng mẫu thông tin tuyến xe buýt Bảng 3.3 Bảng miêu tả đoạn đường nối hai trạm xe buýt Bảng 3.4 Bảng miêu tả đoạn đường qua tuyến xe buýt Bảng 3.5 Bảng miêu tả điểm trung gian nằm đoạn đường kết nối trạm xe buýt Bảng 3.6 Giải thuật tìm số lần chuyển tuyến it Bản 3.7 Giải thuật tìm đường ngắn f DANH MỤC CÁC HÌNH ẢNH – ĐỒ THỊ Hình 1.1 Tỷ lệ diện tích đường thành phố Hồ Chí Minh năm 2009 Hình 1.2 Tỷ lệ đường có xe bt hoạt động Hình 1.3 Tỷ lệ mạng lưới đường có xe buýt hoạt động Hình 1.4 Tỷ lệ loại phương tiện giao thơng thành phố Hồ chí Minh Hình 1.5 Chương trình “nào ta buýt” Hình 1.6 Hình ảnh trang Web http://www.buyttphcm.com.vn Hình 1.7 Bản đồ hệ thống xe buýt thành phố Hồ Chí Minh Hình Tương tác web browser - web server Hình 2.2 Web tĩnh (static web) Hình 2.3 Web động (Dynamic web) Hình Sơ đồ chi tiết tương tác web browser - web server Hình 2.5 Cấu trúc URL Hình 2.6 Hệ tọa độ địa lý tồn cầu Hình 2.7 Kinh độ - vĩ độ điểm trái đất Hình 2.8 Minh hoạ đồ trang wed google map Hình 2.9 Vị trí người sử dụng Tp Hồ Chí Minh g Hình 2.10 Minh họa trước sau người dùng thao tác phóng to đồ googlemap Hình 2.11 Minh họa điều khiển dịch chuyển để thay đổi vị trí đồ Hình 2.12 Minh họa thao tác đánh dấu đồ Hình 2.13 Minh họa đường gấp khúc thể đồ Hình 2.14 Minh họa chuyển địa thành địa điểm đồ Hình 2.15 Minh họa tìm đường ngắn hai điểm đồ Hình 2.16 Kiến trúc hệ thống Hình 2.17 Minh họa hiển thị cú pháp HTML Web Hình 2.18 Minh họa thẻ Heading (tiêu đề) - HTML Web Hình 2.19 Minh họa thẻ khối - HTML Web Hình 2.20 Minh họa thẻ danh sách - HTML Web Hình 2.21 Minh họa thẻ hình ảnh - HTML Web Hình 2.22 Minh họa StyleSheet Web Hình 3.1 Quy trình xử lý trog Server Hình 3.2 Đồ thị đỉnh cạnh Hình 3.3 Sơ đồ mô tả trạm tuyến xe buýt Hình 4.1 Vị trí người dùng ứng dụng Web h Hình 4.2 Kéo - trượt vị trí đồ ứng dụng Web Hình 4.3 Phần mở rộng tồn hình ứng dụng Web Hình 4.4 Tuỳ chọn tìm đường ứng dụng Web Hình 4.5 Chọn điểm xuất phát ứng dụng Web Hình 4.6 Chọn điểm đến xuất phát ứng dụng Web Hình 4.7 Nhập điểm xuất phát điểm đến ứng dụng Web Hình 4.8 Kết tìm kiếm ứng dụng Web i TÀI LIỆU THAM KHẢO [1] – Sở Giao thông vận tải TP Hồ Chí Minh (năm 2009), Báo cáo tình hình giao thơng thành phố Hồ Chí Minh năm 2009 [2] - Trung tâm điều hành vận tải hành khách công cộng-Sở giao thông vận tải HCM (năm 2011), Báo cáo tổng kết 15 năm Trung tâm điều hành vận tải hành khách công cộng-Sở giao thông vận tải thành phố Hồ Chí Minh [3] – Giáo trình hướng dẫn hệ cao học môn tổ chức giao thông – Trường đại học Giao thông vận tải năm 2009 [4] - Các trang web tối ưu việc tìm đường nước ngồi [5] - Các thơng tin từ trang web http://www.buyttphcm.com.vn [6] - Các thông tin từ trang web http://vi.wikipedia.org [7] - Các thông tin từ trang web http://vivui.net [8] – Trang Web http://maps.google.com/ [9] – Trang Web http://code.google.com/apis/maps/documentation/javascript/examples [10] – Trang Web http://www.ibm.com/developerworks/vn/edu/j-introjava/index.html [11] – Trang Web http://www.primefaces.org/showcase/ui/home.jsf [12] – Trang Web http://www.w3schools.com/html/ [13] – Trang Web http://download.oracle.com/javase/tutorial/ [14] – Trang Web http://docs.jboss.org/hibernate/core/3.3/reference/en/html/tutorial.html [15] – Trang Web http://en.wikipedia.org/wiki/Shortest_path_problem [16] – Trang Web http://en.wikipedia.org/wiki/A*_search_algorithm [17] – Trang Web http://www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5c5a585857 [18] - Thinking in java 4th edition, tác giả Bruce Eckel j [19] - Christian Bauer, Gavin King - Java persistence with Hibernate 1st edition [20] - Ed Burns, Chris Schalk, Neil Griffin - JavaServer Face 2.0 k 3.4 Thu thập xử lý số liệu 3.4.1 Thu thập số liệu Do thời gian thực đề tài không nhiều số lượng trạm, tuyến xe buýt địa bàn thành phố Hồ Chí Minh lớn (hơn 135 tuyến xe buýt) nên khuôn khổ đề tài xin phép xây dựng demo phần mềm mẫu cho tuyến xe buýt địa bàn quận – quận Thủ Đức Để cung cấp thông tin cho sở liệu đề tài tác giả tiến hành thu thập thông tin cần thiết theo nhiều phương pháp với nội dung cần thu thập sau:  Xác định số liệu trạm xe buýt địa bàn quận – quận Thủ Đức Các số liệu trình bày Phụ lục (nguồn: Trung tâm điều hành vận tải hành khách công cộng-Sở giao thông vận tải HCM năm 2011), số liệu cung cấp gần 300 trạm xe buýt có địa bàn quận – quận Thủ Đức Các trạm xe buýt cung cấp với thông tin sau : - Mô tả vị trí trạm (địa nơi đặt trạm hay mốc cố định xác định vị trí trạm); - Thông tin tuyến xe buýt qua trạm  Tọa độ trạm xe buýt địa bàn quận – quận Thủ Đức Các số liệu xác định từ vị trí trạm mổ tả thu thập, việc mơ tả có số trạm khó xác định tọa độ thao tác máy tính nên phải đến trạm để xác đinh tọa độ trạm với hỗ trợ thiết bị định vị tọa độ Các số liệu trình bày Phụ lục 96  Danh sách vị trí trạm dừng tuyến xe buýt có qua địa bàn quận – quận Thủ Đức Từ số liệu tuyến xe buýt có qua trạm ta lọc lại danh sách tuyến xe buýt qua địa bàn quận – quận Thủ Đức Từ xác định lộ trình tuyến Các số liệu trình bày Phụ lục (nguồn: Trung tâm điều hành vận tải hành khách công cộng-Sở giao thông vận tải HCM năm 2011)  Biểu đồ xe chạy tuyến xe buýt có qua địa bàn quận – quận Thủ Đức Để xác định thời gian di chuyển thời gian đợi đổi tuyến trạm, cần thu thập thông tin thời gian giãn cách chuyến xe Các số liệu trình bày Phụ lục (nguồn: Trung tâm điều hành vận tải hành khách công cộng-Sở giao thông vận tải HCM năm 2011) 3.4.2 Xử lý số liệu Các số liệu sau thu thập tổng hợp chuyển đổi theo yêu cầu nguồn sở liệu làm sở cho việc truy vấn liệu Các số liệu tổng hợp theo bảng: Bảng 3.1, Bảng 3.2, Bảng 3.3, Bảng 3.4 Do thời gian vận hành, giãn cách chuyến tuyến xe phụ thuộc vào nhiều yếu tố khác thời tiết, cao điểm ngày, ngày thường hay thứ 7, chủ nhật, ngày lễ, tuyến có nhu cầu vận chuyển khác nhau…nên có nhiều thơng tin khác Do để giản tiện, đề tài xin chọn yếu tố chung sau: 97  Chọn thời gian giãn cách chuyến tuyến theo thông số phổ biến cao điểm thấp điểm thông thường;  Chọn thời gian giãn cách chuyến tuyến theo lịch trình phổ biến (nếu tuyến có nhiều lịch trình chạy khác chọn lịch trình ngày thường);  Vận tốc xe chạy lấy bình quân 30 Km/h cao điểm 15 Km/h thấp điểm (do tính thời gian dừng đón - trả khách trạm);  Vận tốc người lấy bình quân 5Km/h;  Thời gian dừng đợi tuyến chuyển tuyến lấy thời gian giãn cách chuyến tuyến đó;  Khoảng cách tối đa người đi đến trạm xe buýt 600m * Kết chương: Chương trình bày rõ tài liệu cần thu thập để cung cấp xây dựng nguồn sở liệu để truy vấn Module truy vấn, thành phần Module truy vấn liệu ‘các đối tượng lưu trữ’ cơng nghệ hỗ trợ sau Hibernate Thuật tốn tìm đường tối ưu sử dụng để thiết kế chương trình, nhiệm vụ module tìm đường dựa liệu lưu database, thực giải thuật định trước để tìm kết người dùng mong muốn Có giải thuật thực tài liệu này: tìm đường cho chuyển tuyến tìm đường cho khoảng cách gần Các số liệu cần thiết thu thập xử lý làm sở cho nguồn liệu để truy vấn đề tài trình bày theo bảng phần phụ lục Đây sở quan trọng để thực hoàn thiện ứng dụng Web xây dựng đề tài 98 Chương THIẾT KẾ MODULE GIAO DIỆN VÀ TƯƠNG TÁC NGƯỜI DÙNG Quá trình xử lý bên phía Browser chia thành module hình Nhiệm vụ khối gọi API cung cấp Google map để thao tác đồ số Chúng ta vào tìm hiểu chức module cách chúng tương tác với Google map Chương trình bày nội dung sau: 4.1 Module hiển thị Google map 4.2 Module tương tác với Google map service 4.3 Module tương tác với Web server 4.4 Cách sử dụng chương trình 4.1 Module hiển thị Google map Trong toàn hoạt động hệ thống, Module sử dụng bước chính: Hiển thị đồ người sử dụng vào trang web lần vẽ lại đồ sau có kết tìm đường 4.1.1 Hiển thị đồ lần Sau trình thực hiện: 99 Tạo đối tượng đồ // Thiết lập cấu hình cho đồ var myOptions = { zoom : 15, // Tỷ lệ phóng đại đồ mapTypeControl : false, // Hiển thị điều kiển mapTypeId : google.maps.MapTypeId.ROADMAP // Loại đồ }; // Tạo đối tượng đồ (map) với cấu map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); Xác định vị trí người dùng hiển thị đồ vị trí // Xác định vị trí người dùng navigator.geolocation.getCurrentPosition(function(position) { userPosition = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); // Hiển thị đồ vị trí người dùng map.setCenter(userPosition); }); 4.1.2 Vẽ lại đồ sau có kết tìm đường Sau trình thực Tạo mảng điểm hình thành nên đường gấp khúc 100 // interLocations tập hợp điểm hai trạm // Vòng lặp tạo mảng điểm for (var i=0; i < interLocations.length; i++) { if (interLocations[i] != null) { coordinates[pos] = new google.maps.LatLng( interLocations[i].latitude, interLocations[i].longitude); pos = pos + 1; } } // Tạo đường gấp khúc dựa mảng vừa tạo var path = new google.maps.Polyline({ path : coordinates, strokeColor : "#7A72D1", strokeOpacity : 1.0, strokeWeight : }); Hiển thị đường gấp khúc lên đồ path.setMap(map); 4.2 Module tương tác với Google map service Nhiệm vụ module gọi API Google map để chuyển đổi địa thành toạ độ địa lý // from_address địa cần chuyển đổi geocoder.geocode( { 'address': from_address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { // Toạ độ sau chuyển đổi lưu biến results } }); 4.3 Module tương tác với Web server Module không sử dụng API google map mà sử dụng API JavaScript để gửi yêu cầu tìm đường lên server theo dạng URL 101 Tìm đường chuyển tuyến nhất: http://localhost:8080/hcmbus/services/min_switch_routes Tìm đường khoảng cách ngắn nhất: http://localhost:8080/hcmbus/services/min_distance // searchURL URL gửi lên web server để yêu cầu tìm đường $.getJSON(searchURL, { fromLat: // vĩ độ điểm đầu fromLng: // kinh độ điểm đầu toLat: // vĩ độ điểm cuối toLng: // vĩ độ điểm cuối }, function(data) { // data kết web server trả // sau tìm đường theo yêu cầu người dùng }); 4.4 Cách sử dụng chương trình 4.4.1 Cách sử dụng tổng quát Khi ứng dụng Web thực thi, đồ hiển thị vị trí người dùng 102 Hình 4.1 Vị trí người dùng ứng dụng Web Người dùng kéo-trượt đồ để di chuyển đến vùng khác đồ Hình 4.2 minh hoạ đồ di chuyển cho vị trí người dùng di chuyển xuống góc trái hình Hình 4.2 Kéo - trượt vị trí đồ ứng dụng Web 103 Chức mở rộng phần đồ tồn hình cách chọn vào dấu (+) bên góc phải hình Hình 4.3 Phần mở rộng tồn hình ứng dụng Web 4.4.2 Thực chức chương trình Bước 1: Chọn nhu cầu sử dụng theo tùy chọn Có tuỳ chọn: chuyển tuyến khoảng cách ngắn Việc chọn lựa nhu cầu người sử dụng Người sử dụng muốn chọn tùy chọn click vào đó, chương trình chọn đường theo tùy chọn chọn Hình 4.4 Tuỳ chọn tìm đường ứng dụng Web 104 Bước 2: Chọn điểm xuất phát điểm đến Để tìm kiếm đường đi, người dùng có hai cách để thực  Cách thứ 1: tìm kiếm đồ Sau bước thực hiện: Chọn điểm đầu: click chuột phải vị trí bắc đầu đi, màng hình xuất hộp thoại Chọn A - Chọn điểm xuất phát  chương trình hiểu vị trí click chuột điểm xuất phát Hình 4.5 Chọn điểm xuất phát ứng dụng Web 105 Chọn điểm cuối: click chuột phải vị trí cần đến, màng hình xuất hộp thoại Chọn B - Chọn điểm đến  chương trình hiểu vị trí click chuột vị trí cần đến Hình 4.6 Chọn điểm đến xuất phát ứng dụng Web  Cách thứ 2: nhập địa điểm đầu (A) điểm cuối (B) chọn nút “Tìm đường” Nhập địa điểm A, B hộp thoại chọn nút tìm đường Điểm A : Điểm xuất phát Điểm B : Điểm cần đến 106 Địa địa cụ thể hay tên địa danh hiểu Googlemap Hình 4.7 Nhập điểm xuất phát điểm đến ứng dụng Web Bước 3: Hiển thị kết tìm kiếm Hình 4.8 Kết tìm kiếm ứng dụng Web Kết tìm kiếm hiển thị bên phải màng hình 107 Kết tìm kiếm nhận thông tin : - Thời gian dự kiến từ A đến B, thời gian có dự kiến thời gian bộ; - Quảng đường từ vị trí bắt đầu đến trạm xe buýt cần đi; - Quảng đường xe buýt; - Quảng đường từ trạm xe buýt cuối đến điểm cần đến; - Tại trạm ta nhận tuyến xe buýt đón trạm xuống để đổi tuyến Các thông tin nhận dựa tùy chọn bước Kết tìm kiếm hiển thị “Hai điểm A B xác định, khơng tìm thấy trạm xe bt vịng 600m để đến đích” nguyên nhân hiểu bán kính 600m hai điểm điểm đến khơng có trạm xe buýt có tuyến nối hai điểm đến * Kết chương: Việc thiết kế Module hiển thị Google map, Module tương tác với Google map service Module tương tác với Web server giúp hồn thiện chương trình Thơng qua hướng dẫn sử dụng chương trình đơn giản, rõ ràng giao diện giúp việc sử dụng chương trình tương đối đơn giản, dễ thao tác giúp người dùng sử dụng dễ dàng Chương trình đáp ứng nhu cầu theo ý muốn người dùng theo phần lựa chọn họ qua thao tác thực với chương trình Do hạn chế đề tài nên trạm xe dừng lại địa bàn quận quận Thủ Đức số tuyến chưa cập nhật hết nên hạn chế hiển thị kết tìm kiếm 108 KẾT LUẬN VÀ KIẾN NGHỊ Đề tài xây dựng chương trình ứng dụng Wed Googlemap, hỗ trợ người sử dụng xe buýt lựa chọn trạm xe buýt tuyến xe buýt cần theo ý muốn Chương trình xây dựng ngôn ngữ Java JavaScript để hỗ trợ việc viết chương trình sở hệ thống liệu thu thập như: thông tin trạm dừng, xuất bến tuyến xe buýt tọa độ trạm xe búyt Người sử dụng chọn tuyến theo hai yêu cầu sau:  Số lần chuyển tuyến nhất;  Quãng đường ngắn đồng thời nhận thơng tin từ chương trình :  Số lần phải chuyển tuyến xe buýt;  Thời gian dự kiến tồn hành trình;  Qng đường đến trạm xe buýt;  Quãng đường xe buýt;  Tại trạm ta nhận tuyến xe buýt đón trạm xuống để đổi tuyến;  Các trạm nêu rõ số trạm ứng với địa trạm Các thông tin giúp người dùng thuận tiện dễ dàng Khuyến khích người dân sử dụng xe buýt nhiều hơn, giảm sử dụng phương tiện cá nhân từ tạo thói quen sử dụng phương tiện giao thông công cộng giúp giải vấn đề giao thơng mục đích đặt đề tài 109 Tuy nhiên thời gian thực ngắn nên đề tài nhiều hạn chế như: số liệu thu thập hạn chế địa bàn quận 9, quận Thủ Đức; vận tốc xe buýt người củng thời gian giản cách tuyến mang tính tương đối; chưa kết hợp việc hành trình; người sử dụng phải có Internet sử dụng chương trình… Hướng phát triển đề tài: đầu tư nhiều đề tài phát triển địa bàn rộng không dừng lại với phương tiện xe buýt mà kết hợp phương tiện giao thơng cơng cộng khác; để người dùng sử dụng dễ dàng cần xây dựng trang Wed để ứng dụng chương trình Để làm điều cần có hỗ trợ đơn vị có thẩm quyền, nhà tài trợ để đưa chương trình đến người sử dụng 110

Ngày đăng: 31/05/2023, 10:24

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

TÀI LIỆU LIÊN QUAN