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

pdf 22 trang vanle 2670
Bạn đang xem 20 trang mẫu của tài liệu "Tin học dại cương - 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_dai_cuong_chuong_3_tong_quat_ve_lap_trinh_bang_visua.pdf

Nội dung text: Tin học dại cương - 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
  2. 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
  3. 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
  4. 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
  5. Đố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
  6. 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
  7. 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 ết hi ện th ực đố i tượ ng:  Đị nh ngh ĩa các thu ộc tính dữ 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ủa tất cả 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 ĩa các tác vụ tạo (create) và xóa (delete) đố i tượ ng.  Đị nh ngh ĩa các tác vụ 'constructor' và 'destructor'.  User không cần quan tâm đế n class 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 77
  8. Tính bao đóng (encapsulation)  Bao đóng: che dấu mọi chi ti ết hi ện th ực của đố i tượ ng, không cho bên ngoài th ấy và truy xu ất ⇒ đả m bảo tính độ c lập cao gi ữa các đố i tượ ng, ngh ĩa là độ ph ụ thu ộc (hay tính ghép nối - coupling gi ữa các đố i tượ ng) rất th ấp, nh ờ đó dễ bảo trì, phát tri ển ứng dụng:  Che dấu các thu ộc tính dữ li ệu: nếu cần cho phép truy xu ất 1 thu ộc tính nào đó từ bên ngoài, ta tạo 2 tác vụ get/set tươ ng ứng để giám sát vi ệc truy xu ất và che dấu chi ti ết hi ện th ực bên trong.  Che dấu chi ti ết hi ện th ực các tác vụ.  Che dấu các 'internal function' và sự hi ện th ực củ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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 3.4 Sự ki ện - Thủ t ục xử lý sự ki ện Mỗi đố i tượ ng giao di ện có khá nhi ều tác vụ (operation), hầu hết chúng đượ c gọi là th ủ tục xử lý sự ki ện vì cơ ch ế gọi th ủ tục này ch ủ yếu là tr ực ti ếp từ ng ườ i dùng ứng dụng thông qua sự tươ ng tác tr ực ti ếp với đố i tượ ng, từ đó tạo sự ki ện kích kh ởi th ủ tục xử lý tươ ng ứng ch ạy. Thí dụ khi ta ấn chu ột vào button tên "Command1", hệ th ống tạo ra sự ki ện "Click" để kích kh ởi th ủ 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
  21. Cách t ạo hàm xử lý sự ki ện của đối t ượng Qui trình tổng quát của vi ệc tạo th ủ tục xử lý cho 1 sự ki ện nào đó của 1 đố i tượ ng: 1. Ch ọn menu View.Code để hi ển th ị cửa sổ code. 2. Ch ọn tên đố i tượ ng liên quan trong danh sách các đố i tượ ng. 3. Ch ọn sự ki ện cần tạo th ủ tục xử lý trong danh sách các sự ki ện, template của th ủ tục xử lý sẽ đượ c tạo tự độ ng. 4. Sử dụng ki ến th ức về gi ải thu ật & cú pháp ngôn ng ữ VB để vi ết code cho th ủ tục xử 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
  22. Tổng kết qui trình vi ết 1 ứng dụng bằng VB 1. Tr ướ c hết ph ải nắm bắt yêu cầu ph ần mề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ượ c từng ch ức năng và tìm ra các class phân tích cấu thành ch ức năng tươ ng ứng. 3. Thi ết kế chi ti ết các class phân tích: xác đị nh các thu ộc tính và các tác vụ cũng nh ư phác họa gi ải thu ật của từng tác vụ. 4. Hi ện th ực ph ần mềm bằng VB gồm 2 công vi ệc chính: 1. Thi ết kế tr ực quan các form giao di ện ng ườ i dùng: mỗi form ch ứa nhi ều ph ần tử giao di ện, các ph ần tử giao di ện th ườ ng đã có sẵn, nếu không ta ph ải tạo thêm 1 số đố i tượ ng giao di ện mới (ActiveX Control). Ứng với mỗi ph ần tử giao di ện vừa tạo ra, nên thi ết lập giá tr ị đầ u cho thu ộc tính "Name" và 1 vài thu ộc tính cần thi ết. 2. Tạo th ủ tục xử lý sự ki ện cho các sự ki ện cần thi ết trên các ph ần tử giao di ện rồi vi ết code cho từng th ủ tục xử lý sự ki ện vừa tạo ra. 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