Giao trinh lap trinh vb.net

69 23 0
  • Loading ...
1/69 trang

Thông tin tài liệu

Ngày đăng: 16/10/2018, 09:44

TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Mơn lập trình Windows mơn học bắt buộc chương trình đào tạo trình độ Trung cấp ngành Cơng nghệ thơng tin Giáo trình trình bày vấn đề cốt lõi mơn lập trình windows Các học trình bày ngắn gọn, dễ hiểu có nhiều ví dụ minh hoạ Giáo trình tài liệu giúp sinh viên học tập nghiên cứu môn học, đáp ứng yêu cầu nắm bắt vận dụng kiến thức môn học đề ra, phù hợp với khung chương trình đào tạo qui định Trong trình biên soạn giáo trình này, nhận động viên, giúp đỡ thầy Ban Giám Hiệu nhà trường ý kiến đồng nghiệp khoa Công nghệ thông tin – May thời trang Chúng xin chân thành cảm ơn hy vọng giáo trình giúp cho việc dạy học môn xây dựng phần mềm bán hàng nhà trường ngày tốt Thái Nguyên, ngày… tháng… năm…… Tham gia biên soạn Chủ biên: Nguyễn Thị Hường 2……… 3……… ……… Mục lục LỜI GIỚI THIỆU BÀI MỞ ĐẦU Ý nghĩa mô đun Giới thiệu nội dung mô đun Giới thiệu tài liệu học tập tham khảo .4 Bài 1: Giới thiệu Visual Studio.NET .5 Tổng quan Net Framework .8 Cấu trúc Net Framework 3.1 Hệ điều hành 3.2 Common Language Runtime (CLR) 3.3 Bộ thư viện lớp đối tượng (Base Class Library) .8 3.4 Phân nhóm đối tượng theo loại Bài 2: Mở chạy chương trình Visual Basic.NET 11 1 Khởi động visual studio.NET .11 1.2 Mở dự án visual basic 12 Dự án (Project) giải pháp (Solutions) 12 Các công cụ VS.NET 12 3.1 Bộ thiết kế Windows Forms Designer 13 3.2 Hiển thị thiết kế Form .13 Chạy chương trình Visual Basic 13 Cửa sổ thuộc tính Properties .13 Thoát khỏi VISUAL STUDIO.NET 13 Bài 3: Tạo ứng dụng Visual Studio.NET 14 Tạo Project 14 Chương trình đầu tay 15 2.1 Tìm hiểu chương trình 15 2.2 Xây dựng giao diện thuộc tính 16 2.3 Viết mã cho chương trình .16 2.4 Mã đầy đủ chương trình 19 Thực thi chương trình 19 Bài 4: Làm việc với điều khiển TOOLBOX .20 1.1 Tìm hiểu chương trình 20 1.2 Thiết kế chương trình .21 1.3 Thiết kế form 22 1.4 Viết mã 22 1.5 Chạy chương trình: 22 Sử dụng điều khiển DATETIMEPICKER 23 2.2 Xây dựng giao diện 23 Làm việc với điều khiển nhập liệu .24 Bài 5: Làm việc với Menu hộp thoại 26 2.1 Tìm hiểu chương trình 26 2.2 Thiết kế giao diện xây dựng chương trình 26 2.3 Cài đặt thủ tục kiện cho mục chọn menu 28 3.1 Thêm vào hộp thoại chuẩn .29 3.2 Thêm mục File vào menu chương trình 30 3.3 Viết mã chương trình .30 Gán phím tắt cho MENU 32 Sử dụng biến để chứa thông tin 33 1.1 Sử dụng biến chương trình 34 1.2 Sử dụng biến để chứa liệu nhập từ vào 35 1.3 Sử dụng biến nhận kết xuất .36 Làm việc với kiểu liệu đặc thù 37 Hằng số .41 Làm việc với toán tử VS.NET 42 4.1 Làm việc với phương thức thư viện NET .42 4.2 Thứ tự ưu tiên toán tử 42 Vòng lặp DO LOOP 48 Sử dụng đối tượng TIMER để hạn chế thời gian 50 Tìm kiếm hiệu chỉnh lỗi 52 Dò lỗi dòng lệnh 52 Theo dõi biến cửa sổ WATCH .54 Sử dụng cửa sổ COMMAND 55 Bài 10: Bẫy lỗi sử dụng cấu trúc xử lý lỗi 56 Cài đặt chế xử lý lỗi đọc đĩa 57 Bài 11: Phân phối đóng gói ứng dụng Visual Basic.NET 61 Hoạch định triển khai đóng gói dự án 61 Các cách đóng gói triển khai ứng dụng khác 62 Tạo dự án Deployment 62 Tùy biến lựa chọn đóng gói 64 4.1 Cấu hình thiết lập .64 4.2 Tạo shortcut cho ứng dụng cài đặt 65 4.3 Thiết lập tên công ty phiên chương trình 65 4.4 Đặt thuộc tính cho gói ứng dụng .66 Biên dịch đóng gói dự án – kiểm tra việc cài đặt 67 Tìm hiều file Setup gỡ chương trình 69 BÀI MỞ ĐẦU Ý nghĩa mơ đun Lập trình windows mơ đun giúp người học biết cách lập trình đối tượng cụ thể Trong giáo trình chúng tơi biên soạn kiến thức bản, ngắn gọn ví dụ dễ hiểu để người học có nhìn tổng qt mơ đun Ngồi ra, mơ đun giúp người học có tư lập trình sáng tạo để học tập môn xây dựng phần mềm quản lý bán hàng tốt Giới thiệu nội dung mơ đun Mơ đun cung cấp cho sinh viên kiến thức lập trình hướng đối tượng, cách khai báo sử dụng lớp, đối tượng Mơ đun gồm có 11 bài: Bài 1: Giới thiệu Visual Studio.NET Bài Mở chạy chương trình Visual Basic.NET Bài Tạo ứng dụng Visual Studio.NET Bài Làm việc với điều khiển TOOLBOX Bài Làm việc với Menu hộp thoại Bài 6: Biến toán tử Visual Basic.NET Bài Sử dụng cấu trúc điều khiển Bài Sử dụng cấu trúc lặp Bài Gỡ lỗi (DEBUG) chương trình Visual Basic.NET Bài 10 Bẫy lỗi sử dụng cấu trúc xử lý lỗi Bài 11 Phân phối đóng gói ứng dụng Visual Basic.NET Giới thiệu tài liệu học tập tham khảo − Đoàn Văn Ban, Phân tích - thiết kế lập trình hướng đối tượng, NXB Thống kê, 1997; − Nguyễn Ngọc Bình Phương, Các giải pháp lập trình Visual basic Net, NXB Giao thơng vận tải, 2006; − Phạm Hữu Khang, Ví dụ tập Visual Basic.Net: Lập trình windows form tập tin, NXB Lao động xã hội, 2006; − Connell–Coding Techniques for Microsoft Visual Basic NET– Copyright © 2002 by Microsoft Corporation; − Microsoft Visual Studio 2005 Documentation–Copyright © 2002 by Microsoft Corporation Bài 1: Giới thiệu Visual Studio.NET - Giới thiệu Visual Studio.NET công cụ giúp phát triển ứng dụng từ ứng dụng desktop đến ứng dụng mạng Nó mơi trường để phát triển tất ngôn ngữ Visual Basic.NET, Visual C++, Visual C#.Net mạnh mẽ thuận lợi Bài giới thiệu khái niệm cấu trúc NET Framework, đồng thời biết cách cài đặt ngơn ngữ lập trình Thơng qua mơi trường làm việc Visual Studio.NET để giới thiệu Visual Basic net - Mục tiêu + Biết cài đặt phần mềm Visual Studio.NET 2008, làm quen với giao diện VB.Net; + Hiểu tính Visual Studio.Net 2008; + Biết cấu trúc Net Framework; + Nghiêm túc, tỉ mỉ q trình tiếp cận với cơng cụ - Nội dung Tổng quan Visual Studio.NET 1.1 Cài đặt Visual Studio.NET Để cài đặt phần mềm Visual Studio 2008 ta cần tải File cài đặt máy, giải nén file tìm đến file setup.hta click đúp chuột vào đó, bước cài đặt sau: - Hộp thoại xuất hình: Chọn “Install Visual Studio 2008” - Click chọn “Next” Xuất cửa sổ yêu cầu đăng ký - Đăng ký cách lựa chọn click chuột vào “I have read and accept the license terms” Sau click chọn “Next” để sang trang - Chọn kiểu cài đặt Default (ngầm định) hay Full (đầy đủ) hay Custom (tự thiết lập thông số); sau click vào nút Install làm theo hướng dẫn hình Quá trình cài đặt diễn xong nhấn Finish để hồn tất q trình cài đặt Nhấn Exit để thoát Các bước thực hiện: Bước 1: Chuẩn bị phần mềm cài đặt Bước 2: Giải nén file tìm đến file setup.hta click đúp chuột vào Bước 3:Thực cài đặt: Chọn “Install Visual Studio 2008” Next  chọn vào “I have read and accept the license terms”  Next  Chọn kiểu cài đặt  Install Bài tập thực hành: Thực cài đặt phần mềm Visual Studio 2008 Yêu cầu đánh giá kết học tập Tiêu chí đánh giá Cách thức đánh giá Xác định bước cài đặt - Quan sát theo dõi trình thực hiện, đặt câu hỏi, kiểm tra kết Thực cài đặt phần mềm máy - Quan sát theo dõi q trình thực hiện, tính cá nhân đặt câu hỏi, kiểm tra kết Thời gian thực - Đúng thời gian theo quy định Ghi nhớ: Trong file giải nén có nhiều file nên phải tìm xác đến file setup.hta để cài đặt 1.2 Mơi trường lập trình VS.NET Nhiều lập trình viên quen với ngơn ngữ lập trình Visual Basic Microsoft phát triển dựa ngôn ngữ BASIC từ năm 1964 Từ đời đến nay, Visual Basic phát triển qua nhiều hệ kết thúc phiên VB 6.0 với nhiều modules, công cụ hay ứng dụng bổ sung vào đặc biệt phương pháp kết nối với sở liệu qua kết hợp ADO (Active Data Object) Tuy nhiên nhược điểm VB 6.0 không cung ứng tất đặc trưng ngơn ngữ lập trình hướng đối tượng (Object Oriented Language - OOL) ngôn ngữ C++ hay Java Thay cải thiện hay vá víu thêm thắt vào VB 6.0, Microsoft xóa bỏ tất để làm lại từ đầu ngơn ngữ lập trình hướng đối tượng hùng mạnh Đó ngơn ngữ lập trình Visual Basic NET C# (C Sharp) Có thể nói Visual Basic.NET (VB.NET) ngơn ngữ lập trình hướng đối tượng Microsoft thiết kế lại từ số VB.NET không kế thừa hay bổ sung, phát triển từ VB 6.0 mà ngơn ngữ lập trình hồn tồn Microsoft NET FrameWork VB.NET hỗ trợ đầy đủ đặc trưng ngôn ngữ hướng đối tượng trừu tượng, bao đóng, kế thừa, đa hình, đa luồng cấu trúc xử lý exception VB.NET ngôn ngữ lập trình cho phép người sử dụng thiết lập ứng dụng theo loại: - Ứng dụng Console chương trình chạy hệ điều hành MS-DOS thơng qua trình biên dịch Visual Studio 2005 Command Prompt - Ứng dụng Windows Form ứng dụng chạy hệ điều hành Windows với biểu mẫu (form) điều khiển (button, texbox, label, ) - Ứng dụng ASP.NET gồm WEB Form WEB Services Tổng quan Net Framework Sức mạnh Java dường lớn Microsoft phải chống trả cách loại bỏ Java Virtual Marchine khỏi phiên hệ điều hành Windows Windows XP Tuy nhiên, Microsoft thừa hiểu dù không cung cấp JVM, Sun tự cung cấp JVM package cho người dùng Windows Đó lý nhà khổng lồ định bắt tay xây dựng lại từ đầu tảng phát triển ứng dụng mới: Microsoft.NET Framework Hiểu cách đơn giản NET Framework thư viện dành cho lập trình viên NET Framework tập hợp hay thư viện lớp đối tượng hỗ trợ người lập trình xây dựng ứng dụng Bộ thư viện NET Framework bao gồm 5000 lớp đối tượng đủ sức hỗ trợ hầu hết yêu cầu từ phía lập trình viên Cơng nghệ mã nguồn mở đưa vào NET NET, thành phần kế thừa mở rộng Ngày 13/02/2002, Microsoft thức giới thiệu cơng cụ lập trình – Visual Studio.NET dựa cơng nghệ Microsoft NET Đó môi trường phát triển ứng dụng sử dụng giao diện đồ hoạ, tích hợp nhiều chức năng, tiện ích khác để hỗ trợ tối đa cho lập trình viên .NET Framework thành phần quan trọng kỹ thuật phát triển ứng dụng dựa NET Visual Studio giúp người lập trình nắm bắt tận dụng tốt chức NET Framework Cấu trúc Net Framework 3.1 Hệ điều hành Net Framework cần cài đặt sử dụng hệ điều hành Hiện tại, Net Framework có khả làm việc hệ điều hành Microsoft Win32 Win 64 Trong thời gian tới, Microsoft đưa hệ thống lên Windows CE cho thiết bị cầm tay mở rộng cho hệ điều hành khác Unix 3.2 Common Language Runtime (CLR) Là thành phần "kết nối" phần khác NET Framework với hệ điều hành Common Language Runtime (CLR) giữ vai trò quản lý việc thi hành ứng dụng viết NET Windows CLR thông dịch lời gọi từ chương trình cho Windows thi hành, đảm bảo ứng dụng không chiếm dụng sử dụng tràn lan tài nguyên hệ thống Nó không cho phép lệnh "nguy hiểm" thi hành Các chức thực thi thành phần bên CLR Class loader, Just In Time compiler, Garbage collector, Exception handler, COM marshaller, Security engine,… Trong phiên hệ điều hành Windows XP.NET Windows 2003, CLR gắn kèm với hệ điều hành Điều đảm bảo ứng dụng viết máy tính chạy máy tính khác mà không cần cài đặt, bước thực đơn giản lệnh copy DOS! 3.3 Bộ thư viện lớp đối tượng (Base Class Library) Framework tập hợp hay thư viện lớp đối tượng hỗ trợ người lập trình xây dựng ứng dụng Có thể số người nghe qua MFC JFC Microsoft Foundation Class thư viện mà lập trình viên Visual C++ sử dụng Java Foundation Class thư viện dành cho lập trình viên Java Giờ đây, coi NET Framework thư viện dành cho lập trình viên NET Base class library – thư viện lớp sở Đây thư viện lớp nhất, dùng lập trình hay thân người xây dựng NET Framework phải dùng để xây dựng lớp cao Ví dụ lớp thư viện String, Integer, Exception,… ADO.NET XML Bộ thư viện gồm lớp dùng để xử lý liệu ADO.NET thay ADO để việc thao tác với liệu thông thường Các lớp đối tượng XML cung cấp để bạn xử lý liệu theo định dạng mới: XML Các ví dụ cho thư viện SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,… ASP.NET Bộ thư viện lớp đối tượng dùng việc xây dựng ứng dụng Web ASP.NET phiên ASP 3.0 Ứng dụng web xây dựng ASP.NET tận dụng toàn khả NET Framework Bên cạnh "phong cách" lập trình mà Microsoft đặt cho tên gọi kêu : code behind Đây cách mà lập trình viên xây dựng ứng dụng Windows based thường sử dụng – giao diện lệnh tách riêng Sự xuất ASP.NET làm cân xứng trình xây dựng ứng dụng Windows Web ASP.NET cung cấp Server Control để lập trình viên bắt kiện xử lý liệu ứng dụng làm việc với ứng dụng Windows Nó cho phép chuyển ứng dụng trước viết để chạy Windows thành ứng dụng Web dễ dàng Ví dụ cho lớp thư viện WebControl, HTMLControl, … Window form Bộ thư viện Window form gồm lớp đối tượng dành cho việc xây dựng ứng dụng Windows based Việc xây dựng ứng dụng loại hỗ trợ tốt từ trước tới cơng cụ ngơn ngữ lập trình Microsoft Giờ đây, ứng dụng chạy Windows làm việc với ứng dụng Web dựa vào Web service Ví dụ lớp thư viện là: Form, UserControl,… 3.4 Phân nhóm đối tượng theo loại Một khái niệm hình vẽ cần đề cập đến Namespace Đây tên gọi nhóm lớp đối tượng phục vụ cho mục đích Chẳng hạn, lớp đối tượng xử lý liệu đặt namespace tên Data Các lớp đối tượng dành cho việc vẽ hay hiển thị chữ đặt namespace tên Drawing Một namespace namespace lớn Namespace lớn NET Framework System Lợi điểm Namespace phân nhóm lớp đối tượng, giúp người dùng dễ nhận biết sử dụng Ngoài ra, Namespace tránh việc lớp đối tượng có tên trùng với khơng sử dụng .NET Framework cho phép tạo lớp đối tượng Namespace riêng Namespace cho phép việc xảy cách sử dụng tên đầy đủ để nói đến lớp đối tượng Đặc điểm thư viện đối tượng NET Framework trải rộng để hỗ trợ tất ngơn ngữ lập trình NET thấy hình vẽ Điều giúp người bắt đầu bận tâm việc lựa chọn ngơn ngữ lập trình cho tất ngôn ngữ mạnh ngang Cũng cách sử dụng lớp đối tượng để xây dựng ứng dụng, NET Framework buộc người lập trình phải sử dụng kỹ thuật lập trình hướng đối tượng (sẽ nói tới chương sau) 10 Để loại bỏ biến hay biểu thức khỏi watch bạn chọn ấn Delete xong Sử dụng cửa sổ COMMAND Cửa sổ command cho phép ta thay đổi giá trị biến bổ sung số lệnh Nó cho phép tương tác trực tiếp vơi VB Ở chế độ Imediate (tức thời) cửa sổ cho phép ta tương tác trực tiếp với hầu hết lệnh VS Save, Print… Mở cửa sổ COMMAND chế độ Imediate Để mở, chọn Debug | Windows | Imediate Kiểm thử cách gõ tuoi = 18 vào cửa sổ ấn enter Bạn yêu cầu thay đổi giá trị biến thành 18 Giờ xem cửa sổ watch giá trị tuoi 18 Chuyển sang chế độ command Cửa sổ command cho phép làm việc chế độ command để tương tác trực tiếp với VB File.SaveAll Để chuyển, gõ cmd (enter) cửa sổ Immediate Gõ thử File.SaveAll (Enter) BÀI TẬP Các chương trình trước viết có nhiều lỗi xảy Hãy chạy lại chúng, nhập nhiều giá trị đặc biệt xem có lỗi phát sinh không đồng thời khắc phục thử xem Yêu cầu đánh giá kết học tập Tiêu chí đánh giá Cách thức đánh giá Chạy lại chương trình viết kiểm - Quan sát theo dõi trình thực tra lỗi hiện, đặt câu hỏi, kiểm tra kết Xử lý lỗi chương trình - Quan sát theo dõi trình thực hiện, đặt câu hỏi, kiểm tra kết Thời gian thực - Đúng thời gian theo quy định Ghi nhớ: Để kiểm tra lỗi chương trình chạy nhiều lần chương trình để gỡ xử lý lỗi 55 Bài 10: Bẫy lỗi sử dụng cấu trúc xử lý lỗi - Giới thiệu Trong trình thao tác form, thực thủ tục code, phát sinh lỗi Khi lỗi xảy ra, hệ thống thơng báo tiến trình bị ngắt, giá trị gán trước bị hủy vậy cho thực thi tiếp lại xảy lỗi khác Để tránh gặp phải cố khơng mong muốn cần bẫy lỗi xử lý lỗi để chương tình hồn thiện - Mục tiêu + Quản lý lỗi thực thi chương trình phát biểu Try…Catch; + Biết cài đặt chế xử lý lỗi đọc đĩa ; + Biết sử dụng phát biểu thoát Exit Try để dừng chương trình; + Rèn luyện tính cẩn thận xác khoa học - Nội dung Xử lý lỗi sử dụng cú pháp Try…Catch Lỗi phát sinh lúc Ví dụ bạn nạp file mà khơng có thực đĩa chương trình gặp lỗi VB có khả xử lý nhiệm vụ bạn phải thơng báo cho VB biết Chính khối lệnh Try…Catch bao bọc đoạn mã lệnh có khả gây lỗi cho chương trình Thơng thường có lỗi xảy nhập xuất liệu, phép chia cho 0, thiết bị ngoại vi không sẵn sàng Cú pháp Try…Catch Try Các phát biểu gây lỗi Catch Các phát biểu xử lý có lỗi phát sinh Finally Các phát biểu gọi có hay khơng có lỗi End Try Trong Finally tùy chọn, từ khóa lại bắt buộc Các lỗi đường dẫn ổ đĩa Ví dụ sau DiskDriverError minh họa tình xử lý lỗi runtime thường thấy Chúng ta tạo form có nút nhấn ảnh PictureBox Khi click vào nút ảnh đĩa mềm có tên 6_82MELINH.ico load vào ô ảnh Nếu bỏ đĩa mềm khỏi ổ mềm chạy chương trình báo lỗi khơng tìm thấy đĩa ổ A:\ Thiết kế Form: Bạn mở dự án thiết kế form hình: 56 Viết mã: Tạo thủ tục Button1_Click gõ mã sau: PictureBox1.Image = System.Drawing.Image.FromFile _ ("A:\6_82MELINH.ico") Lúc ổ mềm khơng có đĩa nên chạy chương trình có thơng báo lỗi xảy Để khắc phục ta đặt thêm khối try … catch vào này: Cài đặt chế xử lý lỗi đọc đĩa Sửa lại thủ tục Button1_click sau: Try PictureBox1.Image = System.Drawing.Image.FromFile _ ("A:\6_82MELINH.ico") Catch ex As Exception MsgBox("Khơng tìm thấy đĩa mềm ổ A:\") End Try Lúc phát biểu gây lỗi PictureBox1.Image = System.Drawing.Image.FromFile _ đặt khối Try…Catch nên chạy chương thực thi thông báo thay phát sinh lỗi trên: 57 Sử dụng mệnh đề Finally để thực tác vụ dọn dẹp Mệnh đề cho phép dùng phát biểu sau dù có hay khơng có lỗi xảy Nó thuận tiện bạn muốn dọn dẹp lỗi, giá trị biến, thuộc tính bạn thực thi đoạn mã bảo vệ xong Trở lại ví dụ trên, ta thêm vào đoạn mã sau: Try PictureBox1.Image = System.Drawing.Image.FromFile _ ("A:\6_82MELINH.ico") Catch ex As Exception MsgBox("Khơng tìm thấy đĩa mềm ổ A:\") Finally MsgBox("Đã bắt lỗi thành công.") End Try Và chạy lại chương trình để xem hoạt động Tự phát sinh lỗi: Trong số trường hợp bạn tự kiểm tra lỗi mệnh đề Try muốn nhảy đến mệnh đề Catch để lỗi xử lý Khi VB.NET cung cấp phương thức Err.Raise để làm điều Ví dụ ta tự phát lỗi khơng tìm thấy File ví dụ (lỗi 53) thực phát biểu mệnh đề Catch: Try PictureBox1.Image = System.Drawing.Image.FromFile _ ("A:\6_82MELINH.ico") If Err.Number = 53 Then Err.Raise(53) Catch When Err.Number = 53 MsgBox("Khơng tìm File") End Try Xác định số lần thử lại Một đặc sắc Try…Catch cho phép bạn thử lại số thao tác gây lỗi trước đưa định không thực thao tác Ví dụ ta xem số lần người dùng click vào nút “Load File” lần, vượt q số lần cho phép khơng cho người dùng click tiếp nữa: Khai báo thêm biến dem dòng public class form1: Dim dem As Short = Sửa lại thủ tục Button1_Click sau: Try PictureBox1.Image = System.Drawing.Image.FromFile _ ("A:\6_82MELINH.ico") Catch ex As Exception dem += If dem
- Xem thêm -

Xem thêm: Giao trinh lap trinh vb.net, Giao trinh lap trinh vb.net, Bài 1: Giới thiệu về Visual Studio.NET, Cấu trúc .Net Framework, Tạo mới một Project, Thực thi chương trình, Làm việc với các điều khiển nhập liệu, Sử dụng biến để chứa thông tin, Làm việc với các kiểu dữ liệu đặc thù, Cài đặt cơ chế xử lý lỗi đọc đĩa, Tùy biến các lựa chọn đóng gói

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay