Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 175 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
175
Dung lượng
2,58 MB
Nội dung
MƠN TIN HỌC Đối tượng : SV đại học quy tồn trường Nội dung gồm 12 chương : Phương pháp giải tốn máy tính số Thể liệu máy tính số Tổng quát lập trình VB Qui trình thiết kế trực quan giao diện Các kiểu liệu VB Các lệnh định nghĩa & khai báo 10 Biểu thức VB Các lệnh thực thi VB Định nghĩa thủ tục & sử dụng Tương tác người dùng & chương trình 11 Quản lý hệ thống file 12 Linh kiện phần mềm & truy xuất database Tài liệu tham khảo : Tập slide giảng & thực hành môn học CD MSDN Microsoft Visual Studio Môn : Tin học Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide MÔN TIN HỌC Chương PHƯƠNG PHÁP GIẢI QUYẾT BÀI TỐN BẰNG MÁY TÍNH SỐ 1.1 Các khái niệm máy tính số 1.2 Lịch sử phát triển máy tính số 1.3 Dữ liệu & chương trình 1.4 Qui trình tổng quát giải tốn máy tính số 1.5 Phân tích tốn từ-trên-xuống Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide https://fb.com/tailieudientucntt 1.1 Các khái niệm máy tính số Con người thơng minh động vật khác nhiều Trong sống, họ chế tạo ngày nhiều công cụ, thiết bị để hỗ trợ hoạt động Các cơng cụ, thiết bị người chế tạo ngày tinh vi, phức tạp thực nhiều công việc trước Mỗi công cụ, thiết bị thường thực vài cơng việc cụ thể Thí dụ, chổi để quét, radio để bắt nghe đài audio Máy tính số (digital computer) thiết bị, thay thực số chức cụ thể, sát với nhu cầu đời thường người, thực số hữu hạn chức (tập lệnh), lệnh sơ khai chưa giải trực tiếp nhu cầu đời thường người Cơ chế thực lệnh tự động, lệnh định lệnh lệnh cuối Danh sách lệnh thực gọi chương trình Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide Các khái niệm máy tính số Các lệnh mà máy hiểu thực được gọi lệnh máy Ta dùng ngôn ngữ để miêu tả lệnh Ngơn ngữ lập trình cấu thành từ yếu tố yếu : cú pháp ngữ nghĩa Cú pháp qui định trật tự kết hợp phần tử để cấu thành lệnh (câu), ngữ nghĩa cho biết ý nghĩa lệnh Bất kỳ cơng việc (bài tốn) ngồi đời chia thành trình tự nhiều cơng việc nhỏ Trình tự cơng việc nhỏ gọi giải thuật giải cơng việc ngồi đời Mỗi cơng việc nhỏ chia nhỏ cịn phức tạp, ⇒ cơng việc ngồi đời miêu tả trình tự lệnh máy (chương trình ngơn ngữ máy) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide https://fb.com/tailieudientucntt Các khái niệm máy tính số Vấn đề mấu chốt việc dùng máy tính giải cơng việc ngồi đời lập trình (được hiểu nơm na qui trình xác định trình tự lệnh máy để thực công việc) Cho đến nay, lập trình cơng việc người (với trợ giúp ngày nhiều máy tính) Với cơng nghệ phần cứng nay, ta chế tạo máy tính mà tập lệnh máy sơ khai, lệnh máy thực công việc nhỏ đơn giản ⇒ cơng việc ngồi đời thường tương đương với trình tự lớn (hàng triệu) lệnh máy ⇒ Lập trình ngơn ngữ máy phức tạp, tốn nhiều thời gian, cơng sức, kết khó bảo trì, phát triển Ta muốn có máy luận lý với tập lệnh (được đặc tả ngôn ngữ lập trình) cao cấp gần gủi với người Ta thường thực máy máy vật lý + chương trình dịch Có loại chương trình dịch : trình biên dịch (compiler) trình thơng dịch (interpreter) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide Trình biên dịch (Compiler) Chương trình biên dịch nhận chương trình nguồn (thường viết ngôn ngữ cấp cao) tạo chương trình đối tượng tương ứng chức thường viết ngôn ngữ cấp thấp (thường ngôn ngữ máy) Nếu có lỗi xảy lúc dịch, trình biên dịch báo lỗi, cố gắng tìm vị trí tiếp tục dịch… Nhờ vậy, lần dịch chương trình, ta xác định nhiều lỗi có Sau lần dịch, khơng có lỗi, trình biên dịch tạo file chứa chương trình đối tượng (thí dụ file chương trình khả thi *.exe Windows) Để chạy chương trình, người dùng cần kích hoạt file khả thi (người dùng không cần quan tâm đến file chương trình nguồn) Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide https://fb.com/tailieudientucntt Trình thơng dịch (Interpreter) Chương trình thơng dịch khơng tạo lưu giữ chương trình đối tượng Mỗi lần thơng dịch chương trình nguồn lần cố gắng chạy chương trình theo cách thức sau : dịch chuyển sang mã thực thi lệnh nhờ máy chạy đoạn lệnh tương ứng Nếu có lỗi báo lỗi, khơng có lỗi thơng dịch lệnh hết chương trình Như vậy, lần thơng dịch chương trình, trình thông dịch thông dịch lệnh luồng thi hành cần thiết không thông dịch hết lệnh chương trình nguồn Do đó, sau thơng dịch thành cơng chương trình, ta khơng thể kết luận chương trình khơng có lỗi Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide So sánh trình biên dịch & trình thơng dịch Mọi hoạt động xử lý mã nguồn chương trình (kiểm tra lỗi, dịch lệnh đối tượng tương đương, ) chương trình biên dịch thực để tạo chương trình đối tượng Do sau dịch file mã nguồn chương trình, khơng có lỗi, ta kết luận chương trình khơng thể có lỗi thời điểm dịch (từ vựng, cú pháp) Quá trình biên dịch trình thực thi chương trình tách rời : biên dịch lần chạy nhiều lần cần cập nhật version chương trình Chương trình thơng dịch thông dịch lệnh theo luồng thi hành chương trình điểm nhập chương trình, thơng dịch lệnh gồm hoạt động : biên dịch lệnh thực thi lệnh kết Nếu đoạn lệnh cần thực thi lặp lại trình thơng dịch phải thơng dịch lại tất đoạn lệnh Điều làm cho việc chạy chương trình chế độ thơng dịch khơng hiệu Việc chạy chương trình chế thơng dịch địi hỏi chương trình thơng dịch chương trình ứng dụng cần chạy phải tồn đồng thời nhớ máy tính, có nguy chạy khơng chương trình lớn tài ngun máy khơng đủ cho chương trình thơng dịch chương trình ứng dụng Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide https://fb.com/tailieudientucntt Các khái niệm máy tính số Gọi ngơn ngữ máy vật lý N0 Trình biên dịch ngơn ngữ N1 sang ngơn ngữ N0 nhận đầu vào chương trình viết ngơn ngữ N1, phân tích lệnh N1 chuyển thành danh sách lệnh ngôn ngữ N0 có chức tương đương Để viết chương trình dịch từ ngôn ngữ N1 sang N0 dễ dàng, độ phức tạp lệnh ngôn ngữ N1 không cao so với lệnh ngôn ngữ N0 Sau có máy luận lý hiểu ngơn ngữ luận lý N1, ta định nghĩa thực máy luận lý N2 theo cách tiếp tục đến ta có máy luận lý hiểu ngơn ngữ Nm gần gũi với người, dễ dàng miêu tả giải thuật toán cần giải Nhưng qui trình chưa có điểm dừng, với yêu cầu ngày cao kiến thức ngày nhiều, người ta tiếp tục định nghĩa ngôn ngữ với tập lệnh ngày gần gũi với người để miêu tả giải thuật dễ dàng, gọn nhẹ sáng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide Các cấp độ ngơn ngữ lập trình Ngơn ngữ máy vật lý loại ngơn ngữ thấp mà người lập trình bình thường dùng Các lệnh tham số lệnh miêu tả số binary (hay hexadecimal - miêu tả chi tiết chương 2) Đây loại ngơn ngữ mà máy vật lý hiểu trực tiếp, người gặp nhiều khó khăn việc viết bảo trì chương trình cấp Ngôn ngữ assembly gần với ngôn ngữ máy, lệnh ngôn ngữ assembly tương ứng với lệnh máy biểu diễn dạng gợi nhớ Ngoài ra, người ta tăng cường thêm khái niệm "lệnh macro" để nâng sức mạnh miêu tả giải thuật Ngôn ngữ cấp cao theo trường phái lập trình cấu trúc Pascal, C, Tập lệnh ngôn ngữ mạnh gần với tư người bình thường Ngơn ngữ hướng đối tượng C++, Visual Basic, Java, C#, cải tiến phương pháp cấu trúc chương trình cho sáng, ổn định, dễ phát triển thay linh kiện Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 10 https://fb.com/tailieudientucntt 1.2 Lịch sử phát triển máy tính số Máy tính xuất từ lâu theo nhu cầu buôn bán trao đổi tiền tệ Bàn tính tay abacus dạng sơ khai máy tính đơn vị đơn vị Mơn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide 11 Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Các hệ máy tính số Blaise Pascal (Pháp-1642) Charles Babbage (Anh-1830) ENIAC (1946) 18.000 bóng đèn 1500 rờ le 30 140 KW Intel 8080 (1974) xem CPU tích hợp chip IBM 360 (1965) Von Neumann (1945) Cơ Đèn điện tử PDP-1 (1961) 80x86 (1978) Transistors IC (1642 - 1945) Herman Hollerith lập IBM (International Business Machine) Mỹ - 1890 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com (1945 - 1955) Bộ nhớ dây trễ, tĩnh điện Giấy, phiếu đục lổ Băng từ ? (1955 - 1965) (1965 - 1980) (1980 - ????) Bộ nhớ xuyến từ Băng từ, trống từ, đĩa từ Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 12 https://fb.com/tailieudientucntt 1.3 Dữ liệu & chương trình Các lệnh chương trình (code) truy xuất (đọc và/hoặc ghi) thơng tin (dữ liệu) Chương trình giải tốn truy xuất nhiều liệu khác với tính chất đa dạng Để truy xuất liệu cụ thể, ta cần thông tin liệu : - tên nhận dạng (identifier) xác định vị trí liệu - kiểu liệu (type) miêu tả cấu trúc liệu - tầm vực truy xuất (visibility) xác định lệnh phép truy xuất liệu tương ứng Chương trình cổ điển = liệu + giải thuật Chương trình (function, subroutine, ) đoạn code thực chức dùng nhiều lần nhiều vị trí chương trình, nhận dạng thơng qua tên gọi Chương trình cho phép cấu trúc chương trình, sử dụng lại code Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide 13 Cấu trúc chương trình cổ điển Chương trình = cấu trúc liệu + giải thuật module (package) entry 'start' global data local data of module local data of function Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide 14 https://fb.com/tailieudientucntt 1.4 Qui trình tổng qt giải tốn máy tính số Kết có sau xử lý máy tính (chữ số, hình ảnh, âm thanh, ) Dữ liệu cần xử lý máy tính (chữ số, hình ảnh, âm thanh, ) CDROM, đĩa, băng, Mã hóa liệu thành dạng chuỗi bit Lưu giữ liệu số để dùng lại Giải mã chuỗi bit dạng người, thiết bị hiểu Xử lý liệu dạng chuỗi bit Máy tính số Mơn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 15 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơ hình máy tính số Von Neumann chứa code data thực thi Bộ nhớ (Memory) thực thi lệnh chương trình Đơn vị xử lý (CPU) giao tiếp với bên (thường người) để nhập/xuất tin Các thiết bị vào (I/O) Bus giao tiếp Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 16 https://fb.com/tailieudientucntt Hình dạng vật lý vài máy tính hình loa bàn phím Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM thùng máy chuột Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide 17 1.5 Phương pháp phân tích từ-trên-xuống Trong khứ, phương pháp thường sử dụng để phân tích tốn phương pháp từ-trên-xuống (top-down analysis) Nội dung phương pháp xét xem, muốn giải vấn đề cần phải làm công việc nhỏ Mỗi công việc nhỏ tìm lại phân thành cơng việc nhỏ nữa, công việc phải làm công việc thật đơn giản, thực dễ dàng Thí dụ việc học lấy kỹ sư CNTT khoa CNTT ĐHBK TP.HCM bao gồm cơng việc nhỏ học học kỳ từ tới 9, học học kỳ i học n môn học học kỳ đó, học mơn học học m chương mơn đó, Hình vẽ slide kế cho thấy trực quan việc phân tích top-down Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 18 https://fb.com/tailieudientucntt Phương pháp phân tích từ-trên-xuống Cơng việc cần giải (A) chia thành nhiều công việc nhỏ hơn, đơn giản để giải Công việc A1 Công việc A11 Công việc A2 Công việc A12 Các công việc đủ nhỏ để miêu tả lệnh hay lời gọi hàm/thủ tục có Cơng việc A1n Cơng việc An Công việc An1 Công việc An2 Công việc Ann Môn : Tin học Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Chương 1: Phương pháp giải toán máy tính số Slide 19 Phương pháp phân tích từ-trên-xuống Cơng việc cần giải ≡ đối tượng phức hợp A Đối tượng A1 Đối tượng A11 Đối tượng A2 Đối tượng A12 Đối tượng A1n Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Đối tượng An Đối tượng An1 Đối tượng An2 Đối tượng Ann Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 20 https://fb.com/tailieudientucntt 10 Code ứng dụng xóa file đệ qui (tt) Private Sub DuyetXoaFileDequi() Dim Name As String, Path As String, strFilePath As String, intAttr As Integer Path = strDirQueue(iHead) Name = Dir(Path, vbDirectory) ' lấy phần tử thỏa mãn pattern Do While Name "" ' Lặp xử lý phần tử, If Name "." And Name " " Then ' bỏ thư mục hành cha strFilePath = Path & Name intAttr = GetAttr(strFilePath) If (intAttr And vbDirectory) = vbDirectory Then ' thư mục lưu giữ vào hàng strDirQueue(iTail) = strFilePath & "\" iTail = iTail + If (iTail > QMAX) Then iTail = Else ' file kiểm tra xem thỏa pattern không If LCase(Name) Like txtPattern.Text Then intAttr = intAttr And Not vbReadOnly SetAttr strFilePath, intAttr Kill strFilePath FileList.AddItem strFilePath End If End If End If Name = Dir ' lấy phần tử kế thỏa mãn pattern Loop End Sub Môn : Tin học Chương 11 : Quản lý hệ thống file Slide 321 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM MÔN TIN HỌC Chương 12 LINH KIỆN PHẦN MỀM & TRUY XUẤT DATABASE 12.1 Tổng quát linh kiện phần mềm 12.2 Cách tạo dùng linh kiện phần mềm 12.3 Tổng quát truy xuất database 12.4 Tổng quát debug mã nguồn VB Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 322 https://fb.com/tailieudientucntt 161 12.1 Tổng quát linh kiện phần mềm Mục tiêu qui trình phát triển phần mềm hướng đối tượng tạo ứng dụng có cấu trúc : tập đối tượng sống tương tác lẫn Mỗi đối tượng ứng dụng tạo nhờ cách sau : chọn menu Project.Add Class Module để tạo class module miêu tả cấu trúc chi tiết đối tượng cần tạo : thuộc tính liệu method đối tượng chọn menu Project.Add File khai báo đường dẫn file *.bas chứa class module ứng dụng có sẵn để copy class module vào Project ứng dụng (đây phương pháp để thừa kế thành quả) sử dụng điều khiển sẵn có VB để xây dựng form giao diện 'add' module *.ocx chứa hay nhiều ActiveX Control Windows quản lý vào Project ứng dụng để dùng chúng y điều khiển sẵn có VB Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 323 12.2 Cách tạo dùng linh kiện phần mềm VB cho phép tạo linh kiện phần mềm ActiveX Control nhờ loại Project ActiveX EXE, ActiveX DLL ActiveX Control Tuy nhiên qui trình chi tiết để tạo ActiveX Control vượt khuôn khổ nội dung môn học Việc dùng ActiveX Control giống dùng control định sẵn VB, ta đặt chúng cách trực quan vào form giao diện với kích thước vị trí phù hợp với nhu cầu Khi viết code, ta truy xuất thuộc tính liệu method ActiveX Control y truy xuất thành phần control định sẵn Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 324 https://fb.com/tailieudientucntt 162 Qui trình 'add' ActiveX Control vào Project Để dùng linh kiện phần mềm ActiveX Control form Project ứng dụng, trước hết ta phải thêm vào cửa sổ Toolbox Project theo qui trình điển hình sau : ấn phải chuột vào vị trí trống Toolbox, chọn mục Components chọn tab Controls, duyệt chọn mục tương ứng, chọn OK Cửa sổ Toolbox chứa icon miêu tả Act Control module vừa chọn Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 325 Thí dụ cách dùng ActiveX Control Để thấy việc dùng ActiveX Control hầu xây dựng phần mềm dễ dàng nào, thử viết trình duyệt Web với chức tượng tự IE Microsoft, ta tạm gọi ứng dụng viết MyIE Việc viết phần mềm duyệt Web từ đầu khó khăn bạn cần phải trang bị nhiều kiến thức : kỹ thuật hiển thị văn đồ họa, kỹ thuật tương tác với người dùng thông qua bàn phím chuột, kỹ thuật qui trình viết chương trình dịch, lập trình mạng dùng socket, giao thức truy xuất tài nguyên Web HTTP (Hypertext Transfer Protocol), ngơn ngữ DHTML, Nhưng tồn cơng việc mà trình duyệt Web cần làm Microsoft đóng gói linh kiện phần mềm tên WebBrowser Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 326 https://fb.com/tailieudientucntt 163 Thí dụ cách dùng ActiveX Control (tt) ActiveX Control "WebBrowser" đối tượng giao diện chứa vùng hiển thị nội dung hình chữ nhật với vị trí kích thước người lập trình qui định Interface bao gồm loại : thuộc tính interface (khoảng 27), method (khoảng 12) kiện (khoảng 16) mà người dùng lập trình thủ tục đáp ứng cho chúng Ở giới thiệu số method mà ta dùng việc viết ứng dụng MyIE : Navigate2 (URL, ) cho phép download trang Web hay file *.doc, *.xls, *.ppt, xác định URL, hiển thị nội dung lên vùng hiển thị chờ xử lý tương tác người dùng (ấn vào vùng liên kết, ) GoBack cho phép quay trang Web vừa truy xuất (ngay trước trang hành) GoForward cho phép tiến tới trang Web (ngay sau trang hành) GoHome cho phép hiển thị trang chủ Refresh cho phép download hiển thị lại trang hành Stop cho phép dừng việc download hiển thị trang Web hành ExecWB cho phép thực thi số hành vi trang web thay đổi co chữ, in trang Web máy in, Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 327 Giao diện đề nghị trình MyIE Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 328 https://fb.com/tailieudientucntt 164 Chi tiết option menu toolbar (tt) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 329 Phân tích & thiết kế giao diện Trình MyIE có giao diện SDI gồm menu bar, toolbar, ComboBox liệt kê URL vừa truy xuất, ActiveX Control "WebBrowser" xử lý việc truy xuất, hiển thị trang Web chờ phục vụ tương tác người dùng Qui trình chi tiết xây dựng ứng dụng MyIE trình bày thực hành số 4, tóm tắt bước : Tạo project loại "VB Application Wizard" trả lời bước Wizard để tạo Project Chọn Tools.Menu Editor để tạo menu bar theo đặc tả slide trước Qui trình dùng Menu Editor giới thiệu chương Cũng đọc lại chương để biết qui trình tạo/hiệu chỉnh Toolbar tạo (vẽ) ComboBox nhập URL liệt kê URL truy xuất tạo (vẽ) control "WebBrowser" Khơng cần vẽ ComboBox WebBrowser xác code xác định động lần cửa sổ chương trình thay đổi tạo thủ tục xử lý kiện cho menu option toolbar button viết code cho chúng Code thủ tục chủ yếu làm "cò" gọi method tương ứng đối tượng WebBrowser thực thi Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 330 https://fb.com/tailieudientucntt 165 Phân tích & thiết kế giao diện (tt) Lưu ý trước thiết kế giao diện trình MyIE, bạn cần 'add' linh kiện ActiveX Control sau : Microsoft Common Dialog Control 6.0 Microsoft Internet Control Microsoft Windows Common Controls 6.0 Lưu ý qui trình Wizard cho loại Project SDI tạo sẵn cho ta form chương trình tên frmMain Form chứa sẵn menu bar, Toolbar Chúng ta cần hiệu chỉnh lại thành phần không cần phải tạo chúng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 331 12.3 Tổng quát truy xuất database Trong chương 11, giới thiệu qui trình truy xuất liệu file Một dạng file giới thiệu Random File, file danh sách record liệu có cấu trúc độ dài giống nhau, record chứa nhiều field liệu, thí dụ file chứa hồ sơ sinh viên, file chứa hồ sơ nhà, file chứa hồ sơ đường xá Hầu hết ứng dụng (nhất ứng dụng nghiệp vụ) phải truy xuất random file Việc quản lý random file bao gồm nhiều tác vụ tạo file với cấu trúc record cụ thể, thêm/bớt/hiệu chỉnh/duyệt record, tìm kiếm record thỏa mãn tiêu chuẩn đó, Để thực tác vụ (nhất tìm kiếm record) hiệu quả, tin cậy, ta cần nhiều kiến thức khác phải tốn nhiều công sức Random file (với số cải tiến tăng cường) gọi database quan hệ Có nhiều format database quan hệ khác dùng Để giải phóng ứng dụng khỏi việc quản lý database, người ta xây dựng ứng dụng đặc biệt : DBMS (Database Management System) Ứng dụng nhờ DBMS để truy xuất database dễ dàng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 332 https://fb.com/tailieudientucntt 166 Các giao tiếp lập trình truy xuất database Về nguyên tắc, ứng dụng VB (hay viết ngôn ngữ khác) truy xuất database giao tiếp lập trình sau : ADO (ActiveX Data Objects) DAO (Data Access Objects) ODBC (Open Database Connectivity) DBMS-Specific Language Direct to database (file) Trong giao tiếp truy xuất database có ADO dễ dàng cả, đại đa số trường hợp ta tạo trực quan ActiveX Control khai báo thuộc tính chúng truy xuất database mà không cần viết code Trong trường hợp phải viết code ngắn dễ dàng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 333 Truy xuất database dùng ADO thông qua ActiveX Control Truy xuất database dùng ADO thông qua ActiveX Control phương pháp truy xuất database trực quan dễ dàng Đa số database Windows Access tạo file database chứa nhiều table, table danh sách n record có cấu trúc chung Qui trình điển hình truy xuất record table database Access dùng đối tượng sau : Dùng đối tượng ADODB thư viện "Microsoft ActiveX Data Objects 2.x Library" để liệt kê table database Access Dùng đối tượng Microsoft Data Control 6.0 để quản lý RecordSet chứa tập record table thỏa mãn điều kiện Dùng đối tượng Microsoft DataGrid Control 6.0 để hiển thị record Data Control cho phép user thêm/bớt/hiệu chỉnh record Để thấy rõ việc truy xuất database dễ dàng, ta viết ứng dụng truy xuất database dạng Access có giao diện slide sau : Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 334 https://fb.com/tailieudientucntt 167 Giao diện đề nghị ứng dụng truy xuất database TextEdit qui định file cần truy xuất ComboBox liệt kê Table file ADODC quản lý record thỏa mãn điều kiện mong muốn (có thể ẩn đí) DataGrid hiển thị record ADODC để user khảo sát hiệu chỉnh Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 335 Qui trình xây dựng ứng dụng slide trước Ta tạo project dạng "Standard EXE", để dùng điều khiển Form ta cần 'add' ActiveX Control sau vào Project : Microosft Data Control 6.0 để quản lý RecordSet chứa tập record table Microsoft DataGrid Control 6.0 để hiển thị record Data Control cho phép user thêm/bớt/hiệu chỉnh record Microsoft Common Dialog Control 6.0 để hiển thị cửa sổ duyệt file chọn file cần truy xuất Để dùng đối tượng ADODB Project, ta chọn Project.References để chọn thư viện sau : Microsoft ActiveX Data Objects 2.x Library, với x =1 | | | | Thiết kế trực quan form theo slide trước, tạo thủ tục xử lý kiện cho button Browse kiện Click cho ComboBox Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com menu Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 336 https://fb.com/tailieudientucntt 168 Chi tiết thủ tục xử lý kiện ' Thủ tục xử lý click button Browse Private Sub cmdBrowse_Click() ' hiển thị dialog box duyệt chọn file CommonDialog1.ShowOpen ' hiển thị file chọn vào textbox txtFileName.Text = CommonDialog1.FileName ' duyệt table hiển thị tên chúng vào ComboBox ListAccessTables (txtFileName.Text) End Sub ' Thủ tục xử lý user chọn Table danh sách Private Sub cbTable_Click() Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;_ Data Source=" & txtFileName.Text Adodc1.RecordSource = cbTable.Text Adodc1.Refresh End Sub ' Thủ tục phục vụ kiện form bị thay đổi kích thước Private Sub Form_Resize() ' vẽ lại DataGrid để phù hợp với kích thước form ScaleMode = vbPixels RsList.Move 5, 60, Me.ScaleWidth - 10, Me.ScaleHeight - 65 End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 337 Chi tiết thủ tục hiển thị danh sách Table database Private Sub ListAccessTables(strDBPath As String) Dim adoConnection As ADODB.Connection, adoRsFields As ADODB.Recordset While cbTable.ListCount ' Xóa danh sách hành cbTable.RemoveItem Wend ' Tạo connection đến file database Set adoConnection = New ADODB.Connection adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath ' Duyệt tables, 'add' tên table vào danh sách ComboBox Set adoRsFields = adoConnection.OpenSchema(adSchemaTables) With adoRsFields Do While Not EOF If Fields("TABLE_TYPE") = "TABLE" Then cbTable.AddItem Fields("TABLE_NAME") End If MoveNext Loop End With adoRsFields.Close ' đóng xóa recordset chứa table Set adoRsFields = Nothing adoConnection.Close ' đóng xóa connection đến file database Set adoConnection = Nothing End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 338 https://fb.com/tailieudientucntt 169 Lập trình truy xuất database dùng ADO Định nghĩa DSN (Data source name) miêu tả file database, có bước này, ứng dụng truy xuất database thơng qua tên luận lý DSN mà khơng cần biết xác vị trí đường dẫn file database máy chứa file database Dùng icon "ODBC " Control Panel Windows để định nghĩa DSN Trong ứng dụng ta dùng đối tượng ADODB để truy xuất database theo qui trình điển hình sau : tạo đối tượng Connection miêu tả database cần truy xuất gọi method OpenSchema đối tượng Connection để tìm Table database user chọn Table (hay dùng lệnh SQL để miêu tả điều kiện xác định record), ta gọi method Execute đối tượng Connection để tạo đối tượng RecordSet chứa record tìm duyệt record RecordSet xử lý chúng theo yêu cầu đóng xóa RecordSet lập lại bước 3, để xử lý Table khác đóng xóa đối tượng tạo để giải phóng nhớ chúng chiếm Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 339 Thí dụ lập trình truy xuất database dùng ADO TextEdit qui định file cần truy xuất Button duyệt chọn file database ComboBox liệt kê Table file Listbox hiển thị record Table chọn (để xem không hiệu chỉnh) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 340 https://fb.com/tailieudientucntt 170 Chi tiết thủ tục xử lý kiện Dim adoConnection As ADODB.Connection Dim adoRsFields As ADODB.Recordset ' biến tham khảo đến Connection ' biến tham khảo đến RecordSet ' Thủ tục xử lý click button Browse Private Sub cmdBrowse_Click() ' hiển thị dialog box duyệt chọn file CommonDialog1.ShowOpen ' hiển thị file chọn vào textbox txtFileName.Text = CommonDialog1.FileName ' duyệt table hiển thị tên chúng vào ComboBox ListAccessTables (txtFileName.Text) End Sub ' Thủ tục phục vụ kiện form thay bị thay đổi kích thước Private Sub Form_Resize() ' vẽ lại ListBox để phù hợp với kích thước form ScaleMode = vbPixels RsList.Move 5, 60, Me.ScaleWidth - 10, Me.ScaleHeight - 65 End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 341 Chi tiết thủ tục hiển thị danh sách Table database Private Sub ListAccessTables(strDBPath As String) While cbTable.ListCount ' Xóa danh sách hành cbTable.RemoveItem Wend ' Tạo connection đến file database Set adoConnection = New ADODB.Connection adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath ' Duyệt tables, 'add' tên table vào danh sách ComboBox Set adoRsFields = adoConnection.OpenSchema(adSchemaTables) With adoRsFields Do While Not EOF If Fields("TABLE_TYPE") = "TABLE" Then cbTable.AddItem Fields("TABLE_NAME") End If MoveNext Loop End With adoRsFields.Close ' đóng xóa recordset chứa table Set adoRsFields = Nothing ' lưu ý để mở Connection đến file database hầu truy xuất lại End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 342 https://fb.com/tailieudientucntt 171 Chi tiết thủ tục xử lý kiện ' Thủ tục xử lý click chọn table ComboBox Private Sub cbTable_Click() Dim fcount As Integer, rcount As Integer, strBuf As String ' Tạo đối tượng RecordSet chứa record Table chọn Set adoRsFields = adoConnection.Execute("SELECT * FROM " & cbTable.Text) ' Duyệt record RecordSet hiển thị chúng ListBox With adoRsFields rcount = ' số record fcount = Fields.Count ' số field record Do While Not EOF ' duyệt record recordset rcount = rcount + strBuf = Str(rcount) & ": " & Fields(0).Value For idx = To fcount - ' duyệt field nối kết vào chuỗi strBuf strBuf = strBuf & ", " & Fields(idx).Value Next RsList.AddItem strBuf ' add chuỗi kết vào Lisbox MoveNext ' di chuyển đến record Loop End With adoRsFields.Close ' đóng xóa recordset Set adoRsFields = Nothing End Sub Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 343 12.4 Tổng quát hoạt động debug ứng dụng Sau viết code cho ứng dụng xong, ta thử chạy để xác định xem giải u cầu khơng Thường ứng dụng chứa nhiều lỗi sai thuộc loại sau : lỗi từ vựng (tên phần tử, từ dành riêng, ) cú pháp phần tử cấu thành ứng dụng VB phát lỗi dễ dàng hiển thị thông báo lỗi cho ta xem xét sửa chữa Thường sau VB thông báo lỗi này, ta dễ dàng sửa chúng lỗi giải thuật ứng dụng VB phát lỗi chúng thuộc phạm trù ngữ nghĩa Ứng dụng chạy theo giải thuật miêu tả, ta phải tự đánh giá tính đúng/sai giải thuật, việc tìm lỗi giải thuật thường khó Để giúp đỡ người lập trình dễ dàng tìm lỗi giải thuật, VB cung cấp công cụ cho phép họ kiểm sốt qui trình chạy ứng dụng truy xuất biến liệu chương trình, cơng cụ gọi 'Debug' Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 344 https://fb.com/tailieudientucntt 172 Tổng quát hoạt động debug ứng dụng Trong trình debug, ứng dụng trạng thái sau : Pause : trạng thái ứng dụng trước chạy hay dừng lại theo điều kiện dừng người debug VB ghi nhớ lệnh thi hành trước dừng (lệnh ứng dụng chưa bắt đầu chạy) Do tính lịch sử, ta dùng thuật ngữ PC - program counter để nói lệnh Ở trạng thái này, người debug xem giá trị biến liệu để biết ứng dụng chạy hay sai theo yêu cầu điều khiển việc thi hành ứng dụng, lúc ứng dụng chuyển sang trạng thái Running Running : trạng thái mà ứng dụng chạy lệnh đến gặp điều kiện dừng thiết lập trước, lúc ứng dụng chuyển trạng thái Pause Trong trình debug, ứng dụng trạng thái Pause chủ yếu thời gian người debug tương tác với ứng dụng chủ yếu trạng thái Mỗi ứng dụng chạy tiếp, chuyển qua trạng thái Running, nhanh chóng chạy đến lệnh dừng chuyển trạng thái Pause (trừ phi bị 'block' chờ I/O hay bị 'loop' vịng lặp vơ tận) Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 345 Các thao tác để xem hiệu chỉnh biến liệu Để xem nội dung biến liệu, người debug : chọn menu Debug.Add Watch để thêm biểu thức (thường biến liệu) vào cửa sổ Watch để xem nội dung chọn menu Debug.Edit Watch để hiệu chỉnh biểu thức (thường biến liệu) hành cửa sổ Watch (context, watch type) dời chuột đến tên biến cửa sổ code, cửa sổ nhỏ chứa giá trị biến hiển thị để người debug xem xét Để hiển thị cửa sổ chứa danh sách thủ tục thực dỡ dang (các thủ tục lồng theo thứ tự), người debug : chọn menu View.Call Stacks Để xem vị trí PC hành (lệnh thực kế tiếp), người debug : chọn menu Debug.Show Next Statement (thường ứng dụng dừng lại, hiển thị lệnh chạy - lệnh bị dừng với màu tô đặc biệt có dấu mũi tên lề trái lệnh) chọn menu Debug.Set Next Statement để thiết lập lệnh chứa cursor hành lệnh chạy (thay lệnh bị dừng trước đó) Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 346 https://fb.com/tailieudientucntt 173 Các lệnh thiết lập điều kiện dừng Nếu điều kiện dừng vị trí lệnh cụ thể người debug : chọn menu Debug.Clear All Breakpoints để xóa tất điểm dừng (breakpoint) Điểm dừng lệnh mà ứng dụng chạy đến, ứng dụng dừng lại chuyển trạng tháo Pause để người debug kiểm soát nội dung liệu ứng dụng chọn menu Debug.Toggle Breakpoint để thiết lập/xóa điểm dừng lệnh chứa cursor hành (có thể thực nhanh chức cách dời cursor đến lề trái lệnh cần thiết lập/xóa điểm dừng click chuột) Nếu điều kiện dừng biến liệu/biểu thức bị thay đổi hay có giá trị True người debug : chọn menu Debug.Add Watch, nhập biểu thức (thường biến liệu) chọn điều kiện dừng "Break when value is True" hay "Break when value changes" chọn menu Debug.Edit Watch, hiệu chỉnh biểu thức hành (thường biến liệu) chọn điều kiện dừng "Break when value is True" hay "Break when value changes" Ta (và nên) thiết lập nhiều điều kiện dừng đồng thời để 'rào chắn' luồng thi hành chương trình Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 347 Các lệnh điều khiển chạy tiếp ứng dụng Để chạy tiếp ứng dụng từ vị trí PC hành, người debug : o chọn menu Run.Start để bắt đầu chạy ứng dụng, ứng dụng dừng lại gặp điều kiện dừng thiết lập o chọn menu Run.Continue để chạy tiếp từ vị trí PC hành, ứng dụng dừng lại gặp điều kiện dừng thiết lập o chọn menu Debug.Step Over để chạy tiếp lệnh dừng lại (Pause), lệnh thi hành lệnh gọi thủ tục tồn thủ tục chạy Đây lệnh cho phép thực lệnh theo mức vĩ mô o chọn menu Debug.Step Into để chạy tiếp lệnh dừng lại (Pause), lệnh thi hành lệnh gọi thủ tục ứng dụng dừng lại lệnh thủ tục Đây lệnh cho phép thực lệnh theo mức vi mô o chọn menu Debug.Step Out để chạy tiếp lệnh lại thủ tục hành quay dừng lại sau lệnh gọi thủ tục (Pause) o chọn menu Debug.Run to Cursor để chạy tiếp ứng dụng từ vị trí PC hành đến lệnh chứa cursor hành dừng lại (Pause) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 348 https://fb.com/tailieudientucntt 174 Các lệnh điều khiển khác Khi ứng dụng trạng thái 'Pause', người debug thực lệnh sau : chọn menu Run.End để kết thúc việc chạy ứng dụng chọn menu Run.Restart để kết thúc việc chạy ứng dụng bắt đầu chạy lại từ đầu chọn menu Run.Break để dừng đột ngột việc chạy ứng dụng, lệnh thực đánh dấu để ta dễ theo dõi Chức giúp ta biết ứng dụng bị 'loop' đoạn lệnh Nếu ứng dụng bị 'block' chờ biến cố I/O, khơng có lệnh dánh dấu Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM CuuDuongThanCong.com Môn : Tin học Chương 12 : Linh kiện phần mềm & truy xuất database Slide 349 https://fb.com/tailieudientucntt 175