Sts_C3 - cse@hcmut

Download Report

Transcript Sts_C3 - cse@hcmut

Ch ươ ng 3

Tổng quát về lập trình bằng Visual Basic

Cấu trúc chương trình cổ điển

Chương trình = cấu trúc dữ liệu + giải thuật

module (package) dữ liệu toàncục dữ liệu cục bộ trong module điểm nhập 'start' Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

dữ liệu cục bộ trong hàm Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 78

Lập trình cấu trúc và hướng đối tượng

Có 2 nhược điểm : Khó đảm bảo tính nhất quán của dữ liệu toàn cục.

Không tự tạo ra các phiên bản (instance) của module được.

Kỹ thuật lập trình hướng đối tượng (OOP – Object Oriented Programming) ra đời khắc phục được các nhược điểm trên.

Theo OOP, tác với nhau.

chương trình là tập các đối tượng sống tương Visual Basic diện.

là ngôn ngữ có hỗ trợ OOP. Hơn nữa, VB còn được xây dựng trên môi trường lập trình trực quan (visual) nên thuận tiện cho người lập trình trong vấn đề thiết kế giao Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 79

Cấu trúc chương trình OOP

Chương trình = tập các đối tượng tương tác nhau đối tượng (object) dữ liệu cục bộ của đối tượng điểm nhập Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

dữ liệu cục bộ của tác vụ Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 80

Đối tượng (Object)

Mô hình đối tượng quan niệm chương trình bao gồm tượng sinh sống và tương tác với nhau.

các đối Đối tượng bao gồm : Thuộc tính (properties) : là dữ liệu (data).

Tác vụ (operation) : là hàm (code).

Implementation (class) Interface (abstract type) Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 81

Kiểu trừu tượng (Abstract type)

Abstract type Interface giao (type) định nghĩa interface sử dụng đối tượng.

là tập hợp các tiếp với đối tượng.

điểm nhập (entry) mà bên ngoài có thể Dùng signature để định nghĩa mỗi entry, signature gồm có: Tên method (operation) 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, kiểu và chiều di chuyển (IN, OUT, INOUT).

Đặc tả chức năng của method (thường là chú thích).

Dùng 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.

Người sử dụng không cần quan tâm đến class (hiện thực cụ thể) của đối tượng mà chỉ cần biết inteface để sử dụng đối tượng.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 82

Class (Implementation)

Class định nghĩa chi tiết hiện thực đối tượng : Định nghĩa các xác định thuộc tính trạng thái dữ liệu : của đối tượng.

giá trị của tất cả thuộc tính Kiểu của thuộc tính có thể là đối tượng khác.

Khai báo các method và các kiểu cổ điển hàm bên trong .

hay tham khảo đến Định nghĩa các method tượng.

tạo (create) và xóa Định nghĩa các method constructor và destructor .

(delete) đối Định nghĩa các method và các hàm bên trong .

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 83

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 đối tượng rất thấp).

 tính độc lập cao giữa các đối tượng (hay tính kết dính - cohesion giữa các 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 dữ liệu, ta tạo 2 method 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 method.

Che dấu các internal function và sự hiện thực của chúng.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 84

Tính thừa kế (inheritance)

Viết một ứng dụng OOP là định nghĩa các các đối tượng cấu thành ứng dụng.

type / class của 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 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ể vượt qua ( override ) các method của lớp cha, kết quả override chỉ có nghĩa trong đối tượng của lớp con .

Đối tượng của lớp con có thể thuộc lớp cha nhưng ngược lại đóng vai trò của đối tượng thường không được .

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 85

Tính bao gộp (aggregation)

Một đối tượng có thể chứa nhiều đối tượng khác tạo nên 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.

O 3

O

1

O

1 O 3 O 2 O 2 Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 86

Thông điệp (message)

Thông điệp tham là phép gọi tác vụ của một đối tượng dựa vào khảo của nó.

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 vụ.

sách tham số thực cần truyền theo (hay nhận về từ) tác Ví dụ : aCircle.SetRadius (3); 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.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 87

Hai thành phần chính của ứng dụng

Giao diện người dùng

: Giúp người sử dụng tương khai thác ứng dụng.

Trong OOP, giao diện người dùng được xây dựng dựa trên đối tượng giao diện form .

Trên form có thể bố trí nhiều đối tượng nhỏ hơn như toolbar , command button , textbox , listbox , treeview ...

menu ,

Giải thuật xử lý bên trong

: Thể hiện qua các method của các đối tượng.

Mỗi method được hiện thực bằng các lệnh thực thi (cấu trúc điều khiển) và còn được gọi là viết code.

Giao diện dùng để chọn sự kiện để giải quyết bài toán thông qua tương tác còn viết code xử lý sự kiện .

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 88

Thiết kế trực quan 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à công việc rất khó khăn và tốn nhiều công sức, thời gian.

Môi trường lập trình trực quan (visual) hổ trợ người lập trình : Một số đối tượng giao diện thường dùng.

Các công cụ thiết kế trực quan để xây dựng giao diện từ các đối tượng giao diện có sẳn.

Các công cụ để tạo ra đối tượng giao diện mới (ActiveX Control).

Cách làm 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 (tương tự việc lắp máy tính từ các linh kiện phần cứng như CPU, RAM, disk, keyboard, monitor,...).

 ưu điểm: dễ làm và nhanh chóng.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 89

Các đối tượng giao diện có trong VB

Window / Form / DialogBox Control buttons Title bar TextBox Command button

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 90

Các đối tượng giao diện (tt.)

Label DriveListBox ComboBox

(TextBox + ListBox)

DirListBox FileListBox

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Picture

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 91

Các đối tượng giao diện (tt.)

Frame OptionButton CheckBox

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 92

Các đối tượng giao diện (tt.)

Menu bar ToolBar Command Button Popup menu Document Status bar

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 93

Tính chất chung của đố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 : 'Name' : là tên của đối tượng. Tên này được dùng trong chương trình như là tên biến.

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, ...

Các thuộc tính khác.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 94

Hiệu chỉnh thuộc tính của đối tượng giao diện

Hiệu chỉnh thuộc tính của đối tượng giao diện là thao tác cần phải làm sao khi sinh ra đối tượng. Có 2 cách để hiệu chỉnh giá trị 1 thuộc tính : Trực tiếp trên hình ảnh của đối tượng hoặc trong cửa sổ Properties.

Gán giá trị trong chương trình thông qua tên đối tượng.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 95

Sự kiện - Hàm xử lý sự kiện

Mỗi đối tượng giao diện có nhiều tác vụ (method) mà hầu hết được gọi là hàm xử lý sự kiện. Cơ chế gọi hàm này chủ yếu là dựa vào sự tương tác trực tiếp với đối tượng, từ đó tạo sự kiện kích khởi hàm 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 hàm Command1_Click() chạy.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 96

Cách tạo hàm xử lý sự kiện của đối tượng

1 Menu View.Code

2 Popup menu 3 Chọn sự kiện 4 Viết code

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 97

Tổng kết qui trình viết 1 ứng dụng bằng VB

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.

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.

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ụ.

Hiện thực phần mềm bằng VB gồm 2 công việc chính :

Thiết kế trực quan các form giao diện người dùng

: Sử dụng phần tử giao diện có sẵn.

Tạo ra đối tượng giao diện mới bằng ActiveX Control.

Đặt tên (Name) và cung cấp giá trị ban đầu cho một vài thuộc tính cần thiết của đối tượng giao diện gắn trên form.

Tạo hàm xử lý sự kiện

giao cho các sự kiện cần thiết của các phần tử diện rồi viết code cho từng hàm xử lý sự kiện vừa tạo ra.

Khoa Khoa học & Kỹ thuật máy tính Trường ĐH Bách Khoa Tp.HCM

Môn Tin học Chương 3 : Tổng quát về lập trình bằng VB Slide 98