Tin học - Chương 3: Tổng quát về lập trình bằng Visual Basic

pdf 11 trang vanle 2340
Bạn đang xem tài liệu "Tin học - Chương 3: Tổng quát về lập trình bằng Visual Basic", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdftin_hoc_chuong_3_tong_quat_ve_lap_trinh_bang_visual_basic.pdf

Nội dung text: Tin học - Chương 3: Tổng quát về lập trình bằng Visual Basic

  1. MÔN TIN HỌC Chương 3 TỔNG QUÁT VỀ LẬP TRÌNH BẰNG VISUAL BASIC 3.1 Các khái niệm cơ bản về mô hình hướng đối tượng 3.2 Các đối tượng giao diện của VB 6.0 3.3 Hiệu chỉnh thuộc tính của các đối tượng giao diện 3.4 Tạo thủ tục xử lý sự kiện của các đối tượng giao diện. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 71 3.1 Các khái niệm cơ bản về mô hình hướng đối tượng Hình vẽ sau đây tổng kết cấu trúc của 1 ứng dụng được lập trình cấu trúc : Chương trình = cấu trúc dữ liệu + giải thuật module global data (package) local data entry 'start' of module local data of function Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 72 36
  2. Từ lập trình cấu trúc đến OOP Xét cấu trúc chương trình cổ điển của slide trước, ta thấy có 2 nhược điểm chính sau : 1. rất khó đảm bảo tính nhất quán và đúng đắn của dữ liệu toàn cục vì bất kỳ lệnh nào trong hàm nào cũng có thể truy xuất chúng. 2. nếu chương trình cần đồng thời nhiều 'instance' của cùng 1 module thì cơ chế lập trình cấu trúc không cho phép tạo tự động các 'instance' này. Để khắc phục 2 nhược điểm chính trên (và bổ sung nhiều ưu điểm khác), ta sẽ lập trình theo hướng đối tượng (OOP - Object Oriented Programming) trong đó chương trình là 1 tập các đối tượng sống tương tác nhau (xem slide kế tiếp). Visual Basic là ngôn ngữ hỗ trợ việc lập trình theo hướng đối tượng, hơn nữa VB còn là môi trường lập trình trực quan (visual) nên rất dễ dùng. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 73 Cấu trúc của 1 ứng dụng OOP Chương trình = tập các đối tượng tương tác nhau đối tượng (object) local data entry of object local data of operation Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 74 37
  3. Đối tượng (Object) ~ Mô hình đối tượng quan niệm chương trình bao gồm các đối tượng sinh sống và tương tác với nhau. ~ Đối tượng bao gồm nhiều thành phần, mỗi thành phần thuộc 1 trong 2 loại : ƒ thuộc tính (attribute) : mang 1 giá trị nhất định tại từng thời điểm. ƒ tác vụ (operation) : thực hiện 1 công việc nào đó. Implementation (class) Interface (abstract type) Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 75 Kiểu trừu tượng (Abstract type) ƒ Abstract type (type) định nghĩa interface sử dụng đối tượng. Ta dùng tên nhận dạng để đặt tên cho kiểu và để nhận dạng nó. ƒ Interface là tập hợp các 'entry' mà bên ngoài có thể giao tiếp với đối tượng. ƒ Ta dùng signature để định nghĩa mỗi 'entry'. Signature gồm : ƒ tên tác vụ (operation, function) ƒ danh sách tham số hình thức, mỗi tham số được đặc tả bởi 3 thuộc tính : tên, type và chiều di chuyển (IN, OUT, INOUT). ƒ đặc tả chức năng của tác vụ (thường ở dạng chú thích). ƒ Ta dùng tên của abstract type (chứ không phải class) để đặc tả kiểu cho biến, thuộc tính, tham số hình thức. ƒ User không cần quan tâm đến class (hiện thực cụ thể) của đối tượng. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 76 38
  4. Class (Implementation) ~ Ta dùng tên nhận dạng để đặt tên cho class và để nhận dạng nó. Class định nghĩa chi tiếthiệnthực đốitượng : ƒ định nghĩacácthuộctínhdữ liệu, mỗi thuộc tính được đặc tả bởi các thông tin về nó như tên nhận dạng, kiểu dữ liệu, tầm vực truy xuất, Kiểu của thuộc tính có thể là type cổ điển (số nguyên, thực, ký tự, chuỗi ký tự, ) hay 'abstract type', trong trường hợp sau thuộc tính sẽ là tham khảo đến đối tượng khác. Trạng thái của đối tượng là tập giá trị tại thời điểm tương ứng củatấtcả thuộc tính của đối tượng. Trong thời gian tồn tại và hoạt động, trạng tái của đối tượng sẽ thay đổi. ƒ 'coding' các tác vụ (miêu tả giải thuật chi tiết về hoạt động của tác vụ) và các 'internal function'. ~ Định nghĩacáctác vụ tạo (create) và xóa (delete) đốitượng. ~ Định nghĩacáctác vụ 'constructor' và 'destructor'. ~ User không cần quan tâm đến class của đốitượng. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 77 Tính bao đóng (encapsulation) ~ Bao đóng: chedấumọichi tiếthiệnthựccủa đốitượng, không cho bên ngoài thấyvàtruyxuất ⇒ đảmbảotínhđộclậpcao giữacácđốitượng, nghĩa là độ phụ thuộc (hay tính ghép nối- coupling giữacácđốitượng) rấtthấp, nhờđódễ bảo trì, phát triển ứng dụng : ƒ che dấucácthuộc tính dữ liệu : nếucần cho phép truy xuất 1 thuộc tính nào đótừ bên ngoài, ta tạo2 tác vụ get/set tương ứng để giám sát việctruyxuấtvàchedấuchi tiết hiệnthực bên trong. ƒ che dấu chi tiếthiệnthựccáctác vụ. ƒ che dấu các 'internal function' và sự hiệnthựccủa chúng. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 78 39
  5. Tính thừa kế (inheritance) ~ Viết 1 ứng dụng OOP là định nghĩa các type/class của các đối tượng cấu thành ứng dụng. ~ Tính thừa kế cho phép giảm nhẹ công sức định nghĩa type/class : ta có thể định nghĩa các type/class không phải từ đầu mà bằng cách kế thừa các type/class có sẵn, ta chỉ định nghĩa thêm các chi tiết mới mà thôi (thường khá ít). ƒ Đa thừa kế hay đơn thừa kế. ƒ Mối quan hệ supertype/subtype và superclass/subclass. ƒ có thể 'override' sự hiện thực các tác vụ của class cha, kết quả override chỉ có tác dụng trên các đối tượng của class con. ƒ Đối tượng của class con có thể đóng vai trò của đối tượng cha nhưng ngược lại thì không đúng. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 79 Tính bao gộp (aggregation) ƒ 1 đối tượng có thể chứa nhiều đối tượng khác nhờ mối quan hệ bao gộp 1 cách đệ qui giữa các đối tượng. ƒ Có 2 góc nhìn về tính bao gộp : ngữ nghĩa và hiện thực. Góc nhìn ngữ nghĩa Góc nhìn hiện thực O O 4 O 2 O2 1 O4 O1 O5 O3 O5 O3 Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 80 40
  6. Thông điệp (Message) ~ Thông điệp là 1 phép gọi tác vụ của 1 đối tượng từ 1 tham khảo. ~ Thông điệp bao gồm 3 phần : ƒ tham khảo đến đối tượng đích. ƒ tên tác vụ muốn gọi. ƒ danh sách tham số thực cần truyền theo (hay nhận về từ) tác vụ. ƒ ví dụ : aCircle.Draw (pWnd) ƒ truy xuất thuộc tính trong interface : aCircle.Radius = 10 ≡ aCircle.SetRadius(10) r = aCircle.Radius ≡ r = aCircle.GetRadius() ~ Thông điệp là phương tiện giao tiếp (hay tương tác) duy nhất giữa các đối tượng. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 81 Hai thành phần chính của 1 ứng dụng Xem lại slide 15 miêu tả qui trình tổng quát của việc dùng máy tính giải quyết 1 vấn đề ngoài đời, ta thấy 1 ứng dụng gồm 2 phần thành phần chính : 1. giao diện người dùng : là phương tiện cho người dùng tương tác với chương trình để nhập/xuất dữ liệu, để điều khiển/giám sát hoạt động của chương trình. Trong OOP, giao diện người dùng là tập các đối tượng giao diện như form, mỗi form chứa nhiều đối tượng nhỏ hơn như menu, toolbar, button, textedit, listbox, treeview 2. giải thuật xử lý bên trong : được thể hiện bởi các method của các đối tượng giao diện và các đối tượng bên trong ứng dụng. Mỗi method là danh sách các lệnh thực thi (cấu trúc điều khiển) để miêu tả giải thuật mà tác vụ tương ứng thực hiện. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 82 41
  7. Thiết kế trực quan các đối tượng giao diện Định nghĩa các đối tượng giao diện bằng cách viết code tường minh là 1 công việc rất khó khăn và tốn nhiều công sức, thời gian. Để giảm nhẹ công sức định nghĩa các đối tượng giao diện, các môi trường lập trình trực quan (visual) đã viết sẵn 1 số đối tượng giao diện thường dùng và cung cấp công cụ để người lập trình thiết kế trực quan giao diện của ứng dụng bằng cách tích hợp các đối tượng giao diện có sẵn này : người lập trình đóng vai trò họa sĩ để vẽ/hiệu chỉnh kích thước, di chuyển vị trí các phần tử giao diện cần cho ứng dụng. Ngoài ra môi trường trực quan còn cho phép người lập trình tự tạo các đối tượng giao diện mới (ActiveX Control) để dùng trong các ứng dụng được viết sau đó. Qui trình viết ứng dụng theo cơ chế này được gọi là viết ứng dụng bằng cách lắp ghép các linh kiện phần mềm, nó giống như việc lắp máy tính từ các linh kiện phần cứng như CPU, RAM, disk, keyboard, monitor, ⇒ rất dễ dàng và nhanh chóng. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 83 3.2 Các đối tượng giao diện có trong VB Control buttons Window ≡ Form, Dialogbox Title bar Textbox Command Button Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 84 42
  8. Các đối tượng giao diện có trong VB (tt) Label DriveListBox Combobox ≡ Textbox + ListBox DirListBox FileListBox ≅ ListBox Image ≅ Picture Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 85 Các đối tượng giao diện có trong VB (tt) Frame OptionButton Checkbox Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 86 43
  9. Các đối tượng giao diện có trong VB (tt) MenuBar Toolbar CommandButton Pop-up Menu 1 window chứa 1 document của ứng dụng StatusBar Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 87 Các tính chất chung của các đối tượng giao diện Đối tượng giao diện có những tính chất giống như đối tượng bình thường, ngoài ra chúng còn có 1 số đặc điểm riêng. Đối tượng giao diện cũng được cấu thành từ 2 loại thành phần : thuộc tính và tác vụ. Mỗi đối tượng giao diện chứa khá nhiều thuộc tính liên quan đến nhiều loại trạng thái khác nhau : ƒ thuộc tính 'Name' : đây là thuộc tính đặc biệt, xác định tên nhận dạng của đối tượng, giá trị của thuộc tính này sẽ trở thành biến tham khảo đến đối tượng, code của ứng dụng sẽ dùng biến này để truy xuất đối tượng. ƒ các thuộc tính xác định vị trí và kích thước : Left, Top, Height, Width ƒ các thuộc tính xác định tính chất hiển thị : Caption, Picture, BackColor, ƒ các thuộc tính xác định hành vi : Enable, ƒ Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 88 44
  10. 3.3 Hiệu chỉnh thuộc tính của các đối tượng giao diện Khi tạo trực quan 1 đối tượng giao diện, môi trường đã gán giá trị ban đầu cho các thuộc tính, thường ta chỉ cần thay đổi 1 vài thuộc tính là đáp ứng được yêu cầu riêng. Có 2 cách để hiệu chỉnh giá trị 1 thuộc tính : 1. trực quan thông qua cửa sổ thuộc tính của đối tượng giao diện. 2. lập trình truy xuất thuộc tính của đối tượng giao diện. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 89 3.4 Sự kiện - Thủ tục xử lý sự kiện Mỗi đốitượng giao diệncó khá nhiềutácvụ (operation), hầuhết chúng đượcgọilà thủ tụcxử lý sự kiện vì cơ chế gọithủ tụcnàychủ yếu là trựctiếptừ ngườidùngứng dụng thông qua sự tương tác trựctiếpvới đốitượng, từđó tạosự kiệnkíchkhởithủ tục xử lý tương ứng chạy. Thí dụ khi ta ấnchuộtvào button tên "Command1", hệ thống tạorasự kiện "Click" để kích khởithủ tục Command1_Click() chạy. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 90 45
  11. Cách tạo hàm xử lý sự kiện của đối tượng Qui trình tổng quát củaviệctạo thủ tụcxử lý cho 1 sự kiện nào đócủa1 đốitượng : 1. chọn menu View.Code để hiễnthị cửasổ code. 2. chọntênđốitượng liên quan trong danh sách các đốitượng. 3. chọnsự kiệncầntạothủ tụcxử lý trong danh sách các sự kiện, template của thủ tụcxử lý sẽđượctạotự động. 4. sử dụng kiếnthứcvề giải thuật & cú pháp ngôn ngữ VB để viết code cho thủ tụcxử lý. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 91 Tổng kết qui trình viết 1 ứng dụng bằng VB 1. Trướchếtphảinắmbắtyêucầuphầnmềm để xác định các chức năng mà ứng dụng phải cung cấp cho người dùng. 2. Phân tích sơ lượctừng chứcnăng và tìm ra các class phân tích cấu thành chứcnăng tương ứng. 3. Thiếtkế chi tiết các class phân tích : xác định các thuộctínhvàcác tác vụ cũng như phác họagiảithuậtcủatừng tác vụ. 4. Hiệnthựcphầnmềmbằng VB gồm 2 công việc chính : 1. thiếtkế trực quan các form giao diệnngười dùng : mỗiform chứa nhiềuphầntử giao diện, các phầntử giao diệnthường đãcó sẵn, nếu không ta phảitạothêm1 sốđốitượng giao diệnmới (ActiveX Control). Ứng vớimỗiphầntử giao diệnvừatạo ra, nên thiếtlậpgiátrịđầuchothuộc tính "Name" và 1 vài thuộc tính cần thiết. 2. tạothủ tụcxử lý sự kiện cho các sự kiệncầnthiết trên các phần tử giao diệnrồiviết code cho từng thủ tụcxử lý sự kiệnvừatạora. Môn : Tin học Khoa Công nghệ Thông tin Chương 3 : Tổng quát về lập trình Visual Basic Trường ĐH Bách Khoa Tp.HCM Slide 92 46