1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng môi trường lập trình trực quan ( combo full slides 6 chương )

431 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Giảng Môi Trường Lập Trình Trực Quan
Thể loại bài giảng
Định dạng
Số trang 431
Dung lượng 7,88 MB
File đính kèm slie.zip (9 MB)

Nội dung

CHƯƠNG 1 MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG VISUAL STUDIO.NET CHƯƠNG 2 NGÔN NGỮ LẬP TRÌNH C CHƯƠNG 3 WINDOWS FORM VÀ CÁC CONTROL CHƯƠNG 4 XỬ LÝ SỰ KIỆN CHƯƠNG 5 ĐỒ HỌA HÌNH ẢNH GDI CHƯƠNG 6 LÀM VIỆC VỚI FILE VÀ THƯ MỤC

Trang 1

QUAN

Trang 2

 CHƯƠNG 5 ĐỒ HỌA HÌNH ẢNH - GDI

 CHƯƠNG 6 LÀM VIỆC VỚI FILE VÀ THƯ MỤC

Trang 4

– Nắm vững các thành phần trong môi trường Visual

Studio.Net và các lớp thư viện Net Framework – Tạo được project, tìm hiểu các thành phần trong

một project và các thao tác biên dịch, sửa lỗi khi lập trình

• Nội dung

– 1 Giới thiệu Visual Studio Net – 2 Tạo project trong Visual Studio.Net

Trang 5

• Các ngôn ngữ lập trình trong VS.Net

• Các loại ứng dụng trong VS.Net

Trang 8

Giới thiệu về Visual Studio Net 2010

• Microsoft Visual Studio 2010 ra đời vào tháng 10/2010, là phiên bản mới hoàn toàn về giao diện

• Tích hợp SQLServer Express 2008

• Net Framework 4.0

Trang 10

C# VB.NET J# C++ …

XML Web Service Forms Web Windows Forms

ASP.NET

Trang 11

– Bẫy lỗi và xử lý lỗi.

– Bảo mật.

Trang 12

• Gồm hai thành phần: Common Language

Runtime (CLR) và thư viện lớp NET Framework

– CLR là nền tảng của NET Framework, thực hiện quản lý bộ nhớ, quản lý thực thi tiểu trình, thực thi

mã nguồn, xác nhận mã nguồn an toàn, biên dịch và các dịch vụ hệ thống khác

– Framework Class Library: Thư viện nền tảng cho NET Framework, chứa đựng hầu hết các lớp cho phép xây dựng các loại ứng dụng

Trang 13

Đặc điểm của ứng dụng NET

13 • Chạy trên nền (.NET framework)

• Mã nguồn được biên dịch qua MSIL

• MSIL được thông dịch qua mã máy lúc thực thi nhờ vào CLR

• Độc lập nền tảng

– Về lý thuyết có thể chạy trên mọi nền!

• Install NET Framework redistribute

packadge (dotnetfx.exe) để chạy ứng dụng NET trên máy client.

Trang 14

CT C#.NET

CT VB.NET

CT C++.NET

CT J#.NET

VB NET Compiler

1011010 1011010 1011010

Programmer

Trang 16

• Windows Control Library

• ASP NET Web Application / Service / Control Library

Trang 17

• Các kiểu file của các thành phần trong project

• Biên dịch, sửa lỗi, chạy ứng dụng

Trang 18

Tạo project trong VS.NET

• File, New Project

Trang 19

• Cửa sổ Solution Explorer:

– Hiển thị phân cấp Project

• Project References

• Forms, Classes, Modules

• Forder với các items

– Các chế độ trong Project

• Drag và Drop

• Context menus

Trang 20

• Cửa sổ Properties: chứa các thuộc tính định

dạng và tùy chọn của đối tượng tương ứng được chọn như Window Form, các controls,… giúp người sử dụng thay đổi các thuộc tính của đối tượng một cách dễ dàng

• Thanh Toolbox: chứa các control, giúp người sử dụng thao tác một cách trực quan để thiết kế

giao diện bằng cách kéo thả các control lên Form

Trang 21

• Cửa sổ Server Explorer:

– Quản lý các kết nối tới cơ sở dữ liệu – Hiển thị và quản lý các item của Server trong VS.Net IDE như Event Logs, Message Queues …

– Cho phép sử dụng kỹ thuật kéo thả như các trường trong DB vào ứng dụng

Trang 23

• Solution Files (.sln, suo)

• Project Files (.csproj, vbproj)

• Local Project Items

– Classes, forms, modules, etc (.cs, vb)

• Web Project Items

– XML Web services (.asmx) – Web forms (.aspx)

– Global application classes (.asax)

Trang 25

• Debug (chạy từng bước):

– Tạo break point: F9 – Chạy từng bước: F10

Trang 26

Thiết lập các thuộc tính cho Project

• Thiết lập các thuộc tính thông thường

– Định nghĩa tên Assembly – Namespace gốc

– Đầu ra Project – Đối tượng chạy đầu tiên – Import các mức namespaces

• Thiết lập các thuộc tính cấu hình

– Thiết lập Debug – Các tùy chọn Build

Trang 28

Thiết lập các tham chiếu trong Project

• Nhiều Project tham chiếu đến các ứng dụng khác hoặc code của các thư viện Dùng hộp

thoại Add Reference

Trang 31

• Cấu trúc điều khiển

• Hướng đối tượng trong C#

• Mảng (Array)

• Xử lý ngoại lệ

Trang 32

– C# là một ngôn ngữ lập trình mới, được thiết

kế riêng để dùng cho Microsoft's NET Framework

– Là một ngôn ngữ hoàn toàn hướng đối

tượng – Một chương trình C# có ít nhất một hàm

Main

Trang 36

• Lợi ích của namespace:

– Tránh được sự trùng lặp tên giữa các class – Cho phép tổ chức mã nguồn một cách có khoa học

và hợp lý

Các từ khóa trong C# (tt)

Trang 37

– Từ khóa using: Được sử dụng để làm cho

chương trình gọn hơn, và không cần phải viết từng namespace cho từng đối tượng, sau từ khóa này là một namespace hay

subnamespace với mô tả đầy đủ trong cấu trúc phân cấp của nó

• Ví dụ : using System;

– Từ khóa static: thường dùng đặt trước khai báo hàm, biến của một lớp Các hàm hoặc biến static này được truy xuất mà không cần tạo một đối tượng của lớp.

Các từ khóa trong C# (tt)

Trang 41

Kiểu liệt kê

• Enum là một cách thức để đặt tên cho các trị nguyên (tương tự như tập các hằng),

làm cho chương trình rõ ràng, dễ hiểu hơn

• Enum không có hàm thành viên

• Ví dụ:

– enum Direction {LEFT, RIGHT, UP, DOWN};

• (LEFT =0, RIGHT=1, UP=2, DOWN=3)

Trang 42

Kiểu chuỗi (string)

• Chuỗi là kiểu dữ liệu định nghĩa sẵn trong C#, là một dãy các ký tự

• Các ký hiệu chuỗi đặc biệt trong C#

– Ký hiệu \: đặt trước các ký tự đặc biệt

Trang 43

– Dùng đặt trước tên biến khi tên biến trùng với

từ khóa trong C# (Ví dụ: int @new = 10; ) – Thay thế \: ví dụ @“D:\Baitap” thay vì “D:\\

Baitap”

Trang 44

• Compare() : so sánh hai chuỗi (=, >, <)

• Concat () : tạo chuỗi mới từ nhiều chuỗi

• Copy () : tạo một bản sao của một chuỗi

• Equals () : so sánh hai chuỗi có giống nhau

• Join () : ghép nối nhiều chuỗi

• Length : chiều dài chuỗi

• Insert() : chèn một chuỗi khác vào chuỗi

• SubString () : Lấy một chuỗi con

• ToLower () : chuyển một chuỗi về chữ thường

• ToUpper () : chuyển một chuỗi về chữ hoa

• Trim () : Cắt bỏ khoảng trắng hai đầu chuỗi

Trang 45

• Biến là một vùng nhớ lưu trữ một giá trị

tạm thời với một kiểu dữ liệu nào đó

• Biến phải được khởi tạo trước khi sử dụng

• Khai báo

– [ modifier ] datatype identifier ;

• modifier: từ khóa public, private, protected,… chỉ định mức truy cập của biến, nếu không có từ khóa phía trước, mặc định là private

• datatype: kiểu dữ liệu

• identifier: tên biến

– Ví dụ: int number;

double radius = 5.0;

Trang 48

• Khai báo: sử dụng từ khóa const

– <const> <type> <CONSTNAME> = <value>; – Ví dụ: const double PI = 3.14158;

Trang 49

– Lưu ý: phân biệt = và ==

• Toán tử logic: && (and), || (or), ! (not)

Trang 50

Kiểu dữ liệu cấu trúc

• Sử dụng từ khóa struct để khai báo

• Một cấu trúc có thể có các trường, các phương thức và thậm chí các phương

thức khởi dựng giống như lớp

• Ví dụ

Trang 51

Kiểu dữ liệu cấu trúc (tt)

• Sự khác nhau giữa cấu trúc và lớp (class)

– Không thể khai báo một phương thức khởi dựng không tham số cho một cấu trúc

– Các thuộc tính của cấu trúc đều phải được khởi tạo giá trị

– Khi khai báo thuộc tính của cấu trúc, không thể khởi gán giá trị như lớp

Trang 52

Kiểu dữ liệu cấu trúc (tt)

• Trường hợp gọi phương thức khởi dựng của cấu trúc với từ khóa new, các thuộc tính chưa khởi trị sẽ được tự động gán trị

0 hoặc null

Trang 61

Lệnh break, continue, goto, return

• break: lệnh thoát khỏi vòng lặp và tiếp tục thực

hiện các lệnh tiếp ngay sau vòng lặp.

• continue ngừng thực hiện các công việc còn lại

của vòng lặp hiện thời và quay về đầu vòng lặp

để thực hiện bước lặp tiếp theo

• goto: chuyển đến “nhãn” có dạng “Label:” (hạn

chế sử dụng lệnh này)

• return: thoát khỏi một hàm, trả quyền điều khiển

về phía triệu gọi hàm (caller)

Trang 62

Bài 4: Hướng đối tượng trong C#

• Khái niệm về lớp, đối tượng

• Thiết kế lớp

• Xây dựng các phương thức

• Xây dựng các thuộc tính

• Thừa kế

Trang 63

Khái niệm về lớp và đối tượng

• Sự phân loại (Classification): Sắp xếp

thông tin một cách có hệ thống vào trong một thực thể, một sự vật, hiện tượng

• Đóng gói (Encapsulation): Đóng gói là tiến trình che giấu những thông tin và hoạt

động bên trong của một đối tượng khỏi thế giới bên ngoài

• Lớp (class) là một kiểu cấu trúc mở rộng, được định nghĩa để tạo nên một kiểu dữ liệu mới, bao gồm các thuộc tính và

phương thức

Trang 64

Khái niệm về lớp và đối tượng (tt)

• Đối tượng là thể hiện của lớp

– Ví dụ:

Circle cir = new Circle();

double area = cir.Area());

• Thuộc tính: thành phần dữ liệu mô tả đối

tượng

• Phương thức: mô tả và thực hiện các hành

vi của đối tượng

Trang 65

• None hoặc internal: chỉ truy cập bên trong project

• public: truy cập ở bất kỳ nơi đâu

• abstract: chỉ truy cập bên trong project, không được cài đặt lại

Trang 67

của đối tượng (hoặc của lớp)

• Mỗi phương thức thường được định nghĩa

là một hàm, các thao tác để thực hiện

hành vi đó được viết tại nội dung của hàm

• Trong C#, tất cả các câu lệnh, phương

thức… được “gói” trong một class, và tất

cả các class được “gói” trong một

namespace

Trang 68

• Khai báo phương thức: giống C++, tuy

nhiên, mỗi phương thức được khai báo bởi

từ khóa public, private, protected,…)

• Phương thức có trị trả về

Trang 70

cùng tên nhưng khác tham số.

• Khi chạy chương trình, tùy tình huống mà hàm thích hợp nhất được gọi

Trang 71

Truyền tham số cho phương thức

• Truyền giá trị (tham trị) cho phương thức

– Tạo bản sao của biến

– Sự thay đổi giá trị của biến trong phương thức không ảnh hưởng đến biến gốc

– Cú pháp truyền tham trị tương tự C++

Trang 72

Truyền tham số cho phương thức (tt)

• Truyền tham chiếu (reference) cho phương thức

– Tạo bản sao của tham chiếu tới đối tượng

– Bất kỳ thay đổi nào về nội dung đối tượng

trong phương thức đều có ảnh hưởng đến đối tượng ngoài phương thức

– Một phương thức chỉ có thể trả về một giá trị

Do đó, muốn nhận nhiều hơn một giá trị thì ta

sử dụng các tham số dưới hình thức là các tham chiếu với từ khoá ref hoặc out

Trang 73

Truyền tham số cho phương thức (tt)

• Truyền tham chiếu (tt):

Trang 74

Truyền tham số cho phương thức (tt)

• Truyền tham chiếu ra (out): được sử dụng trong trường hợp không cần phải khởi tạo tham số trước khi dùng

Trang 75

Phương thức khởi tạo

• Phương thức khởi tạo (Constructor) là một phương thức đặc biệt có tên trùng với tên của lớp và có mức độ truy cập là public

• Được gọi đến một cách tự động khi một

đối tượng của lớp được tạo ra

• Dùng để khởi tạo các giá trị đầu cho các thành phần dữ liệu của đối tượng thuộc

lớp

Trang 76

Phương thức khởi tạo (tt)

• Nếu không định nghĩa phương thức khởi tạo, trình biên dịch sẽ tự động sử dụng

phương thức khởi tạo mặc định

• Phương thức khởi tạo không có kiểu trả về

• Các thuộc tính không được khởi tạo trong phương thức này sẽ được khởi tạo mặc định (0, false, null)

Trang 78

Nạp chồng phương thức khởi tạo

• Là các phương thức khởi tạo có đối số khác nhau

Trang 79

Phương thức khởi tạo sao chép

• Phương thức khởi tạo sao chép khởi gán giá trị cho đối tượng mới bằng cách sao chép dữ liệu của đối tượng cùng kiểu đã tồn tại

– Ví dụ

Trang 80

• Từ khóa this được dùng để tham chiếu

đến thể hiện hiện hành của một đối tượng

• Có thể tham chiếu đến phương thức,

thuộc tính của lớp thông qua tham chiếu

this

• Từ khóa this thường được dùng để:

– Tránh xung đột tên khi tham số của phương

thức trùng tên với tên biến dữ liệu của đối tượng.

– Dùng để truyền đối tượng hiện tại làm tham số cho một phương thức khác

Trang 83

• public : cho phép truy xuất mọi nơi trong

bản thân lớp khai báo và bên ngoài

• private:  chỉ cho phép truy xuất bên trong

lớp mà nó khai báo

• protected: chỉ cho phép truy xuất bên trong

lớp khai báo và các lớp dẫn xuất từ lớp đó

• internal: cho phép truy xuất từ bất cứ lớp

nào trong cùng một khối hợp ngữ assembly

Trang 84

• Dữ liệu và phương thức của một lớp có thể là

thành viên thuộc thể hiện của lớp (đối tượng)

hoặc thành viên tĩnh.

• Dữ liệu và phương thức tĩnh được xem là toàn cục trong phạm vi một lớp  mọi đối tượng thuộc lớp đều có thể truy cập

• Khai báo: sử dụng từ khóa static đứng trước

• Việc truy cập đến dữ liệu và phương thức tĩnh

phải thực hiện thông qua tên lớp theo cú pháp:

– classname variableName;

– classname methodName;

Ví dụ: Math.Abs(number); String.Concat(str1,str2);

Trang 85

Xây dựng các thuộc tính (properties)

• Properties là một đặc tính mới của ngôn

ngữ C# làm tăng sức mạnh của tính đóng

gói

• Cho phép lấy giá trị (get) và gán giá trị

(set) cho các thành phần dữ liệu của lớp

• Cho phép truy cập đến các thành phần dữ liệu của đối tượng ở mức độ đọc, hoặc

ghi, hoặc cả hai và che dấu cài đặt thực sự bên trong lớp

Trang 87

• Thuộc tính đọc và ghi: cho phép đọc và ghi

dữ liệu, sử dụng từ khóa get, set

Trang 88

• Là cơ chế cho phép định nghĩa một lớp

mới (còn gọi là lớp dẫn xuất - drived class) dựa trên một lớp đã có sẵn (còn gọi là lớp

cơ sở - base class)

• Lớp dẫn xuất có hầu hết các thành phần

giống như lớp cơ sở (bao gồm tất cả các phương thức và biến thành viên của lớp

cơ sở, trừ các phương thức private,

phương thức khởi tạo, phương thức hủy và phương thức tĩnh)

Trang 89

• Lưu ý: lớp dẫn xuất vẫn được kế thừa các thành phần dữ liệu private của lớp cơ sở nhưng không được phép truy cập trực tiếp (truy cập gián tiếp thông qua các phương thức public của lớp cơ sở)

Trang 92

• Gọi phương thức thiết lập của lớp cơ sở

– Nếu lớp cơ sở có phương thức tạo lập có

tham số thì lớp dẫn xuất cũng phải định nghĩa phương thức tạo lập có tham số theo cú pháp: class Lopdanxuat (thamso):Lopcoso(thamso) {

} – Lưu ý: tham số lớp dẫn xuất phải bao tham số lớp cơ sở.

Trang 94

phương thức ảo (virtual method.

– Để thực hiện được đa hình ta phải thực hiện các bước sau

• Lớp cơ sở đánh dấu phương thức ảo bằng từ khóa

virtual hoặc abstract

• Các lớp dẫn xuất định nghĩa lại phương thức ảo

này (đánh dấu bằng từ khóa override).

Trang 97

• Các phần tử trong array được truy xuất

theo tên và vị trí của phần tử trong mảng, chỉ số bắt đầu bằng zero

• Trong C#, mảng được xem là một đối

tượng bao gồm các phương thức, thuộc tính

Trang 98

• Có nhiều loại mảng (array): mảng một

chiều, mảng nhiều chiều

• Trong ngôn ngữ C#, những đối tượng

Array là đối tượng của lớp System.Array

Trang 99

• Một số phương thức của lớp System.Array

– BinarySearch(): tìm kiếm trên một mảng một chiều đã sắp thứ tự.

– Clear(): thiết lập các thành phần của mảng về

Trang 100

– Length: thuộc tính chiều dài của mảng

– Rank thuộc tính số chiều của mảng

– GetLowerBound(): trả về cận dưới của chiều xác định trong mảng

– GetUpperBound(): trả về cận trên của chiều

xác định trong mảng – SetValue(): thiết lập giá trị cho một thành phần xác định trong mảng.

Trang 101

• Khai báo mảng với từ khóa new:

– int[] arrInt = new int[30]; //tạo mảng số nguyên gồm 30 phần tử

• Khai báo và khởi tạo các phần tử mảng:

– string[] arrString = {"first", "second", "third"};

Trang 103

cách gọi phương thức static Array.Sort()

– Ví dụ: Array.Sort(arrayInt);

• Duyệt mảng:

– Sử dụng vòng lặp (for, while, do while) duyệt từng phần tử dựa vào chỉ số như cú pháp C+ +.

– Dùng lệnh foreach

Trang 104

• Câu lệnh foreach không có biến đếm

• Sử dụng một biến để đại diện cho giá trị từng phần tử

Trang 105

Truyền mảng cho phương thức

• Truyền mảng như tham số cho phương thức bằng cách xác định tên của mảng (không có ngoặc [ ])

Trang 108

• Mảng chữ nhật (thông dụng)

– Là các bảng trong đó các hàng có cùng kích thước, các cột có cùng kích thước

– Quy ước: chỉ số thứ nhất là hàng, chỉ số thứ hai là cột của phần tử, đều bắt đầu =0

Trang 110

• Khai báo: type[ , ] array-name;

– int[,] arr = new int [2,3];

Trang 112

• Những mảng con này phải đuợc khai báo từng mảng con một

• Ví dụ:

Trang 115

– using System.Collections;

Trang 116

– Add: thêm một phần tử vào cuối danh sách

– Insert: chèn một phần tử vào danh sách

Trang 118

• Là loại danh sách FIFO

• Lấy ra phần tử từ đầu hàng đợi, thêm

phần tử vào cuối hàng đợi

Trang 120

• SortedList là loại danh sách gồm hai

mảng: khóa và giá trị, mảng khóa luôn được sắp thứ tự

Trang 123

• Khi phát sinh ngoại lệ, việc thực thi trong khi CLR sẽ được dừng và tìm kiếm một trình xử lý ngoại lệ, nếu tìm được một

trình xử lý ngoại lệ nào thì chương trình sẽ kết thúc

Trang 125

• Các câu lệnh dễ sinh lỗi đặt trong khối try {}

• Các lệnh xử lý lỗi đặt trong khối catch { }

• Các câu lệnh trong khối finally luôn được

thực hiện cả trong hai trường hợp có hay

không có lỗi phát sinh

• Khi có lỗi phát sinh, các lệnh tiếp theo trong khối try không được thực hiện mà chuyển sang các lệnh xử lý trong khối catch

• Để bắt giữ ngoại lệ, ta sử dụng các đối

tượng Exception

Ngày đăng: 22/02/2024, 21:34