Bài Giảng Visual Basic Chuẩn (Mỹ Linh)

84 672 6
Bài Giảng Visual Basic Chuẩn (Mỹ Linh)

Đ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

1. Giới thiệu Visual Basic 6.0Visual Basic 6.0 (VB) là một ngôn ngữ lập trình hướng đối tượng, trực quan trên môi trường Windows. VB cung cấp một bộ công cụ hoàn chỉnh để đơn giản hóa việc triển khai lập trình ứng dụng, có thể nói đây là cách nhanh và tốt nhất để học và lập trình ứng dụng trên Microsoft Windows.Phần "Visual- Trực quan" đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người dùng (GUI - Graphical User Interface). VB có sẵn rất nhiều những bộ phận trực quan gọi là các điều khiển (Controls) mà người lập trình có thể sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung giao diện màn hình, gọi là form. Việc thiết kế các giao diện người dùng ứng dụng trên VB có thể hình dung đơn giản như việc vẽ giao diện trên Word hoặc trên Paint Prush của Windows....

Bài giảng Visual Basic G G I I Ớ Ớ I I T T H H I I ỆU ỆU Lập trình ứng dụng là môn học rất quan trọng đối với sinh viên ngành công nghệ thông tin (CNTT). Hiện nay có rất nhiều các ngôn ngữ lập trình chuyên nghiệp có thể sử dụng tốt để lập trình các ứng dụng như: Microsoft .NET, C++ Buider, Delphi, v.v. Nhưng Visual Basic 6.0 (VB6), từ đây gọi tắt là VB có thể coi là một trong những công cụ dễ học nhất. Bài giảng này phục vụ nhu cầu học môn Lập trình Visual Basic cho các sinh viên trường cao đẳng nghề Nguyễn Văn Trỗi học chuyên ngành CNTT. Sau những nội dung về lập trình VB căn bản, giáo trình sẽ hướng học sinh đến các kỹ thuật lập trình cơ sở dữ liệu (CSDL) trên VB. kết quả cuối cùng là tạo ra các ứng dụng quản lý sử dụng VB như là một công cụ phát triển trên hệ CSDL Access. Thời lượng thiết kế 90 tiết. Trong đó 25 tiết lý thuyết, 60 tiết thực hành và 5 tiết dành cho kiểm tra. Trang 1 Bài giảng Visual Basic Chương I. MỞ ĐẦU A. MỤC TIÊU: Nội dung bài học này cung cấp cái nhìn tổng quan về ngôn ngữ Visual Basic: tính năng, môi trường và cách thức làm việc. Tuy không nặng về kiến thức lập trình Visual Basic, nhưng nội dung bài học này là rất quan trọng giúp học sinh tiếp cận ngôn ngữ này một cách thuận lợi. Đặc biệt, nếu đây là lần đầu tiên học kỹ thuật lập trình trên windows. B. NỘI DUNG 1. Giới thiệu Visual Basic 6.0 Visual Basic 6.0 (VB) là một ngôn ngữ lập trình hướng đối tượng, trực quan trên môi trường Windows. VB cung cấp một bộ công cụ hoàn chỉnh để đơn giản hóa việc triển khai lập trình ứng dụng, có thể nói đây là cách nhanh và tốt nhất để học và lập trình ứng dụng trên Microsoft Windows. Phần "Visual- Trực quan" đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người dùng (GUI - Graphical User Interface). VB có sẵn rất nhiều những bộ phận trực quan gọi là các điều khiển (Controls) mà người lập trình có thể sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung giao diện màn hình, gọi là form. Việc thiết kế các giao diện người dùng ứng dụng trên VB có thể hình dung đơn giản như việc vẽ giao diện trên Word hoặc trên Paint Prush của Windows. Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được viết ra cho các khoa học gia, những người không có thì giờ để học lập trình điện toán sử dụng. Tuy nhiên, ngôn ngữ Basic trong VB đã được cải thiện rất nhiều để phù hợp với phong cách lập trình hiện đại. Visual Basic còn có hai dạng khác là Visual Basic for Application (VBA) - một ngôn ngữ nằm phía sau các chương trình Word, Excel, VB, Project, .v.v còn gọi là Macros. Dùng VB trong Microsoft Office, ta có thể làm tăng chức năng các ứng dụng bằng cách tự động hóa các chương trình. Và VBScript được dùng lập trình phục vụ các tương tác trên giao diện web. Visual Basic đã có rất nhiều phiên bản, 2 phiên bản tốt nhất có thể nói đến là Visual Basic 6.0 (VB6) và Visual Basic .NET (VB7 hay VB.NET). Về mặt kiến trúc, hai phiên bản này gần khác nhau hoàn toàn. VB6 phát triển ứng dụng dựa trên công nghệ COM (Common Object Model)- một công nghệ rất phát triển. Còn VB.NET dựa trên nền tảng công Trang 2 Bài giảng Visual Basic nghệ .NET Framework - một công nghệ hiện đại hơn và đang rất được ưa chuộng. Bài giảng này chỉ đề cập đến việc sử dụng và phát triển phần mềm ứng dụng trên phiên bản VB (gọi tắt là VB). Bởi lẽ phiên bản này rất dễ học và phát triển. Để cài đặt VB, yêu cầu tối thiếu phải có đĩa 1 - bộ Microsoft Visual Studio (bộ này đầy đủ gồm 4 đĩa). Tuy nhiên cũng nên cài cả đĩa 2 và 3 để có được đầy đủ các tài nguyên đi cùng giúp việc nghiên cứu và tìm hiểu VB được thuận lợi. 2. Khởi động: Chúng ta khởi động Visual Basic như sau: Chọn Start -> All programs -> Microsoft Visual Basic …-> Microsoft Visual Basic. Xuất hiện hộp thoại sau: Để bắt đầu một ứng dụng mới, từ thẻ New, chọn Standard EXE, nhấn Open. Môi trường làm việc VB xuất hiện: Trang 3 1 2 2 4 3 5 Bài giảng Visual Basic Có rất nhiều các thành phần trong môi trường làm việc của VB. Ở mức đơn giản nhất có 5 thành phần được khoanh tròn trong hình trên đó là: (1). Thanh thực đơn và thanh công cụ chuẩn của VB; (2). Cửa sổ Project Explorer – nơi quản lý toàn bộ các thành phần mà người lập trình đã làm được trên dự án của VB hiện thời. Làm việc trên VB là làm việc trên các dự án (Projects). Mỗi dự án cần phải tạo ra nhiều thành phần để cấu thành như: giao diện, biểu mẫu báo cáo, thư viện, tất cả những thành phần này sẽ được quản lý trên cửa sổ Project Explorer; (3). Biểu mẫu Form – nơi thường dùng để thiết kế các hộp thoại, cửa sổ - giao diện của người sử dụng với ứng dụng phần mềm; (4). Thanh công cụ ToolBox- nơi chứa các điều khiển (Control) giúp người lập trình dễ dàng tạo ra những giao diện thân thiện và lập trình trên chúng một cách thuận lợi, đa năng; Tên gọi Thông dụng pointer Dùng để điều tác các đối tượng sau khi đã tạo chúng như nhấp con trỏ khi ta muốn chọn, định lại kích cỡ, di chuyển Command Button Tạo nút lệnh, cho phép quyết định thực thi một công việc nào đó. Image Đối tượng này cho phép người dùng đưa hình ảnh vào Form. Text Box Đối tượng này cho phép đưa các chuỗi kí tự vào Form. Label Dùng để ghi chú một đối tượng nào đó, hoặc thể hiện một dòng chữ khi chạy chương trình. ChekBox Dùng kiểm tra một hay nhiều điều kiện của chương trình ứng dụng. Tại một thời điểm có thể có nhiều hộp kiểm tra được đánh dấu. Option Button Dùng để chọn một trong những lựa chọn đưa ra. Như vậy, tại một thời điểm chỉ có một trong các nút chọn được chọn PictureBox Giữ và đặt hình ảnh lên Form, cũng giống như đối tượng Image ở trên. ListBox Thường được dùng để liệt kê một danh sách gồm nhiều mục và cho phép lựa chọn ComboBox Là một đối tượng kết hợp giữa Textbox và ListBox. Trong đó ta có thể chọn một mục nào đó trong danh sách có sẵn của nó hay có thể nhập một nội dung bất kỳ trong TextBox bên trên. Time Dùng để xử lý các sự kiện về thời gian qua một thời gian Trang 4 Bài giảng Visual Basic nhất định nào đó thì sự kiện đó sẽ lặp lại. Frame Nó chỉ trình bày một khung hình chữ nhật ở trên Form, thường dùng để chứa các đối tượng khác. Line Chỉ trình bày một đường thẳng trên Form. Shape Dùng để thể hiện các hình chữ nhật, hình vuông, hình elipse, hình tròn tuỳ theo cách mà ta chọn để trình bày lên Form. DriveListBox Là một ComboBox trong đó liệt kê tất cả các tên ổ đĩa có trong hệ thống, nó dùng để chọn ổ đĩa nào đó cho dễ dàng. DirListBox Là một ListBox trình bày cấu trúc thư mục của ổ đĩa đang chọn hiện thời, dùng để chọn thư mục FileListBox Là một ListBox trình bày các File trong thư mục nào đó HscrollBar Thanh cuốn ngang cho ta chọn một số nguyên khi ta di chuyển con chạy (Từ giá trị Min đến giá trị Max) VscrollBar Thanh cuôn dọc cho ta chọn một số nguyên khi ta di chuyển con chạy( Từ giá trị Min đến giá trị Max) Data Dùng để kết hợp với các cơ sở dữ liệu khác như FoxPro, Access, để lấy thông tin từ các Table ( Rất quan trọng trong việc quản trị CSDL !) (5). Cửa sổ Properties – nơi để thiết lập các thuộc tính cho những đối tượng, những điều khiển trong quá trình làm việc trên VB. 3. Lưu trữ Làm việc trên VB là làm việc trên các dự án (Project). Tại một thời điểm có thể chỉ làm việc với một dự án nào đó, cũng có khi làm việc trên một tập hợp các dự án (Project Group). Tuy nhiên khuôn khổ giáo trình này chỉ nói về làm việc trên một dự án đơn lẻ.Dự án là công cụ quản lý tất cả những gì cần phải tạo ra cho một dự án phần mềm viết trên VB. Hình dưới mô tả các nội dung có thể được quản lý bởi một dự án mang tên quan ly canbo. Trong dự án trên có các thành phần: - Forms – để tạo ra các giao diện người sử dụng phần mềm như là các hộp thoại, biểu nhập dữ liệu, cửa sổ giao diện. Có 4 form được tạo ra trong dự án trên. Trang 5 Bài giảng Visual Basic - Modules – là nơi chứa những thư viện khai báo phục vụ việc phát triển phần mềm. Trong mỗi Module có thể chứa các chương trình con, các khai báo biến, hằng, môi trường làm việc mà các thành phần thư viện này có thể dùng riêng hoặc chia sẻ dùng chung trong toàn bộ dự án. Có 2 module được tạo ra trong dự án trên là Module1 và Module2. - Class Modules – nơi tạo ra các lớp đối tượng do người lập trình tự định nghĩa phục vụ các nhu cầu phát triển riêng. Dự án trên có một tệp lớp là Class1. - User Controls – nơi cho phép người lập trình tự định nghĩa ra các điều khiển phục vụ mục đích công việc riêng để phát triển trong dự án. Dự án trên có một đối tượng điều khiển tự định nghĩa là UserCo. - Designers – nơi tạo ra các môi trường dữ liệu (data environment) và các báo biểu (Data report) phục vụ nhu cầu xử lý, truy xuất và in ấn dữ liệu trong dự án. Để ghi lại một dự án, nhấn thực đơn File | Save hoặc nút Save trên thanh công cụ hoặc nhấn tổ hợp phím nóng Ctrl + S. VB sẽ lần lượt yêu cầu nhập vào tên tệp tin của các đối tượng đã tạo được trên dự án (việc đặt tên này chỉ xuất hiện ở lần ghi đầu tiên). 4. Mở dữ án đã có Để mở một dự án ra làm việc trên VB thao tác như sau: Nhấn nút Open trên thanh công cụ, hoặc nhấn tổ hợp phím tắt Ctrl + O, một hộp thoại xuất hiện để chọn dự án cần mở: Ở thẻ Existing có thể tìm đến dự án cần mở và nhấn nút Open Hoặc ở thẻ Recent có thể chọn dự án từ danh sách làm việc gần nhất để mở. Trang 6 Bài giảng Visual Basic Sau thao tác này, dự án cần làm việc sẽ được mở ra trên môi trường làm việc của VB. 5. Thoát khỏi Visual Basic Thực hiện lệnh : Alt + F4 ; Click Mouse vào nút Close hoặc vào File\Exit 6. Các khái niệm cơ bản trong Visual Basic a. Màn hình giao tiếp (Form) Là đối tượng chính trong quá trình xây dựng ứng dụng. b. Đối tượng điều khiển (Control) Là các thành phần sẽ được vẽ trên màn hình giao tiếp để tạo thành giao diện của một ứng dụng. Các thành phần này có thể là các nhãn, ô nhập liệu, nút lệnh, c. Thuộc tính (Properties) Tập hợp các thong tin liên quan đến trạng thái của một đối tượng như tên, vị trí, màu sắc hiển thị, được gọi là thuộc tính của đối tượng. Ta có thể thay đổi trạng thái của các đối tượng bằng cách thay đổi giá trị của các thuộc tính. d. Phương thức (Method) Ngoài thuộc tính là những thông tin chỉ ra tình trạng, các đối tượng còn có những hành động xử lý liên quan đến chúng. Các hành động liên quan đến một đối tượng được gọi là các phương thức của đối tượng. Thực chất mỗi phương thức là một tập hợp các lệnh đã được Visual Basic xây dựng sẵn cho đối tượng. e. Biến cố (Event) - Thủ tục xử lý biến cố (Event Sub) Biến cố là thông tin cho biết những gì đang xảy ra với một ứng dụng đang chạy. Khi biến cố phát sinh đối với một ứng dụng thì hệ điều hành sẽ gọi thực hiện các lệnh có trong thủ tục xử lý biến cố (Event Sub) tương ứng. Mật định lúc ban đầu, các thủ tục xử lý biến cố Trang 7 Bài giảng Visual Basic là rỗng. Visual Basic cho phép người lập trình khai báo các lệnh cần thiết có trong những thủ tục xử lý biến cố. 7. Tạo ứng dụng với Visual Basic a. Tạo và chạy chương trình: Để tạo một chương trình ứng dụng trong Visual Basic, chúng ta cần thực hiện các bước sau: - Vẽ các giao diện màn hình Form. - Đặt tên, giá trị những thuộc tính cần thiết cho các điều khiển trên Form. - Thêm lệnh cho các thủ tục xử lý biến cố. Sau khi xây dựng hoàn tất chương trình theo ba bước trên chúng ta có thể chạy và kiểm tra lỗi chương trình bằng cách nhấn phím F5. b. Ví dụ minh họa. Yêu cầu chức năng: Hình 1 (Chương trình Tính tổng) - Nút tính: Tính tổng hai giá trị a và b. Tổng tính được sẽ gán vào ô ‘’Kết quả’’. Private Sub cmdtinh_Click() Dim a As Double, b As Double Dim tong As Double a = Val (txta) b = Val (txtb) tong = a + b txtkq.Text = tong End Sub - Nút tiếp: Xóa dữ liệu có sẵn ở các ô Textbox. Đặt con trỏ vào ô ‘’Giá trị a.’’ Private Sub cmdtiep_Click() txta = ‘’’’ Trang 8 Bài giảng Visual Basic txtb = ‘’’’ txtkq = ‘’’’ txta.SetFocus End Sub - Nút thoát: Thoát khỏi ứng dụng Private Sub cmdthoat_Click() End End Sub Trang 9 Bài giảng Visual Basic Chương II. CÁC BƯỚC THIẾT KẾ MỘT CHƯƠNG TRÌNH A. MỤC TIÊU: Ở chương này chúng ta tìm hiểu các bước thiết kế một chương trình bằng Visual Basic như thế nào? Các thuộc tính của một số đối tượng thường dùng như: Form, TextBox, Label, Image, CommandButton, CheckBox, OptionButton, ComboBox, ListBox,… B. NỘI DUNG 1. Một số định nghĩa: Một chương trình Visual Basic gồm có 2 phần: Form và Code Form là biểu mẫu của một ứng dụng trong Visual Basic. Người sử dụng sẽ làm việc với chương trình thông qua Form, trên đó thể hiện các nút điều khiển hay một trình đơn quy định cách làm việc của Form. Code là phần bên trong của chương trình gồm những đoạn lệnh để điều khiển toàn chươn g trình. Khi đã thực hiện xong việc toạ hai bước trên là ta đã lập một dự án (Project). Mỗi dự án có thể có nhiều Form, hoặc cần có những tập tin chứa mã lệnh riêng để xử lý những thao tác đặc biệt, hoặc một số tập tin dùng để quản lý toàn bộ dự án Một dự án gồm có: - Tập tin màn hình (.FRM): Tập tin văn bản chứa thông tin, các thủ tục xử lý biến cố, biến, thủ tục, hàm của một màn hình giao tiếp. - Tập tin (.FRX)cho Form: Được thiết kế vơí các công cụ có dữ liệu đặc biệt. - Tập tin (.BAS): Tập tin văn bản khai báo các hằng, biến toàn cục,các hàm. thủ tục dùng chung của toàn bộ ứng dụng. - Tập tin (.RES): Chứa các tài nguyên của dự án như bitmap, icon, - Tập tin project (.VBP): Tập tin chứa thông tin chung của một ứng dụng. Mỗi ứng dụng khi lưu trữ sẽ chỉ có đúng một tập tin này. 2. Các bước để thiết kế một ứng dụng bằng ngôn ngữ Visual Basic a. Thêm một đối tượng trên thanh ToolBox - Right Click vào đối tượng Pointer trên thanh ToolBox, chọn Component. Hộp thoại Component xuất hiện. - Đánh dấu Check vào đối tượng muốn chọn, sau đó Click OK để ghi nhận. b. Tạo mới Project Trang 10 [...]... hiệu kết thúc hàm Chú ý: - Visual Basic có khả năng tự động kiểm tra cú pháp trong khi viết lệnh và báo lỗi nếu gặp lỗi sai Dòng lệnh trong Visual Basic không cho phép ngắt xuống dòng, ta phải dùng dấu gạch nối (_) khi muốn xuống dòng mà không ảnh hưởng đến cú pháp của câu lệnh - Visual Basic xử lý mã chỉ để đáp ứng sự kiện Các dòng mã thi hành trong một chương trình Visual Basic phải nằm trong các thủ... hoặc True e Kiểu Variant (16 byte + 1 Byte cho 1 Ký tự) Lưu tất cả các dữ liệu khác nhau, nếu trong phần khai báo biến, ta không thông báo kiểu thì Visual Basic sẽ dùng kiểu dữ liệu này & tự động thực hiện các chuyển đổi dữ liệu Trang 25 Bài giảng Visual Basic lưu trữ trong Variant thành dữ liệu kiểu khác Dùng kiểu này cũng có nhiều bất lợi trong lập trình & tốn nhiều bộ nhớ Ví dụ : Dim So ‘Định sẵn... Global Const tên_hằng [As ] = 3 Biến Trong Visual Basic, tên biến có thể dài tới 255 kí tự & trừ kí tự đầu tiên phải là một mẫu tự, ta có thể gộp một tổ hợp mẫu tự, con số & dấu gạch dưới bất kỳ Chữ hoa, chữ thường trong tên biến không quan trọng a Chứa & lấy dữ liệu trong các Biến Trang 26 Bài giảng Visual Basic Lệnh gán tính toán & gán giá trị kết quả cho biến Bien = 8 ‘Gán... là cố định Cấu trúc này thường sử dụng khi ta biết trước số bước lặp Ơ cấu trúc này câu lệnh được thực hiện từ đầu cho đến khi hết số bước lặp Đây là cấu trúc lặp hay dùng nhất trong Visual Basic Trang 32 Bài giảng Visual Basic Trong đó: - Biến: Biến đếm kiểu số nguyên - STEP: là bước lặp sau mỗi lần lặp Nếu giá trị Step này không có, mặc định bước lặp này là 1 - [EXIT FOR]: Nếu có thì sẽ cho dừng ngay... Dùng để đặt tiêu chuẩn cho Form Nếu đặt True thì cửa sổ có nút Minmize MaxButton Nếu đặt False thì ngược lại Nếu đặt True thì cửa sổ có nút Maxmize Moveable Nếu đặt False thì ngược lại Nếu đặt là True thì có thể nhấn mouse vào tiêu đề và kéo đi nơi khác ShowinTaskba Nếu False thì không kéo đi được Nếu đặt True, khi cửa sổ này hiện lên tên của nó cũng thể Trang 12 Bài giảng Visual Basic r Visible hiện... định hộp Textbox có hoặc không có thanh cuốn dọc, thanh cuốn ngang hoặc có cả hai với điều kiện thuộc tính Multiline = True 0 Non: không có thanh cuốn 1 Horizoltal: chỉ có thanh cuốn dọc Trang 15 Bài giảng Visual Basic 2 Vertical: chỉ có thanh cuốn dọc Text 3 Both: chỉ có thanh cuốn dọc và ngang Thuộc tính này cho phép chúng ta truy xuất nội dung của hộp Visible văn bản Quy định Textbox có được nhìn thấy... làm thủ tục Canh nội dung của Checkbox 0 Appearance Left Justify: ô chọn nằm bên trái dòng tiêu đề 1 Right Justifi: ô chọn nằm bên phải dòng tiêu đê Quy định các thể hiện của Checkbox Trang 16 Bài giảng Visual Basic 0 Flat: bình thường Caption Font 1 3D: 3 chiều Định dòng tiêu đề của Checkbox Chọn Font Name, chọn Font size, chọn Font Style cho dòng ForeColor Text Value chữ trong Checkbox Quy định màu... BorderStyle ảnh”) Quy định kiểu khung 0 1 Align None: Không có border Fixed Single: một khung đơn và không thay đổi kích thước Quy định các cách bố trí đặc biệt của PictureBox trên Form Trang 17 Bài giảng Visual Basic 0 None: bình thường 1 Align Top Picture: sẽ tự đặt sao cho luôn luôn nằm ở phần phía trên Form và có bề rộng luôn luôn bằng bề rộng của vùng làm việc của Form 2 Align bottom: như trên nhưng... cho thủ tục Nó được dùng để giữ bức hình mà ta muốn trình bày, các hình ảnh này là trường hợp tập tin có phần mở rộng là BMP, GIF, JPG, WMF, EMF, CUR, ICO Khi muốn gán lại hình cho đối Trang 18 Bài giảng Visual Basic tượng, ta dùng hàm: Loadpicture (“đường dẫn và tên tập tin hình ảnh”) Quy định kiểu khung BorderStyle 0 None: Không có border 1 Fixed Single: một khung đơn và không thay đổi kích thước Nếu... sự kết hợp gữa một Textbox và một Listbox, vì vậy nó có các đặc tính của cả hai đối tượng này Một số thuộc tính hay dùng của đối tượng ComboBox Thuộc tính Thể hiện với giá trị xác lập Trang 19 Bài giảng Visual Basic Name Đặt tên cho ComboBox, nên đặt Cbo tên này sẽ được VB Style dùng là tên cho thủ tục Quy định kiểu của ComboBox 0 1 Sort DropDown Combo: loại này chỉ trình bày Listbox Simple: loại này . nhất có thể nói đến là Visual Basic 6.0 (VB6 ) và Visual Basic .NET (VB7 hay VB. NET). Về mặt kiến trúc, hai phiên bản này gần khác nhau hoàn toàn. VB6 phát triển ứng dụng dựa trên công nghệ. trình Word, Excel, VB, Project, .v.v còn gọi là Macros. Dùng VB trong Microsoft Office, ta có thể làm tăng chức năng các ứng dụng bằng cách tự động hóa các chương trình. Và VBScript được dùng. dung về lập trình VB căn bản, giáo trình sẽ hướng học sinh đến các kỹ thuật lập trình cơ sở dữ liệu (CSDL) trên VB. kết quả cuối cùng là tạo ra các ứng dụng quản lý sử dụng VB như là một công

Ngày đăng: 26/05/2014, 09:10

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan