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

Giáo án - Bài giảng: LẬP TRÌNH ỨNG DỤNG SỬ DỤNG C#.NET

214 1,6K 14
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Lập Trình Ứng Dụng Sử Dụng C#.NET
Người hướng dẫn Phạm Văn Thuận, Giáo viên
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Giáo trình
Thành phố Hà Nội
Định dạng
Số trang 214
Dung lượng 11,21 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục tiêu môn học§ Sau khi kết thúc môn học này, sinh viên có thể • Trình bày được đặc trưng cơ bản của công nghệ .NET • Trình bày được kỹ thuật lập trình hướng đối tượng sử dụng ngôn ngữ

Trang 2

Mục tiêu môn học

§ Sau khi kết thúc môn học này, sinh viên có thể

• Trình bày được đặc trưng cơ bản của công nghệ NET

• Trình bày được kỹ thuật lập trình hướng đối

tượng sử dụng ngôn ngữ C#.NET

• Lập trình được một ứng dụng Windows Form sử dụng ngôn ngữ C#.NET, kết nối với cơ sở dữ liệu SQL Server, lập báo cáo sử dụng công cụ Crystal Report.

Trang 3

§ Tài li ệu tham khảo chính:

• Programming C#, 4th Edition, Jesse Liberty

• Pro NET 2.0 Windows Forms and Custom

Controls in C#, Matthew MacDonald

• Professional C#, 2nd Edition, Wrox Press Ltd

(Bản dịch tiếng Việt)

• ftp://dce.hut.edu.vn/thuanpv/C_Sharp

Trang 4

Nội dung môn học

Chương 1: Giới thiệu C# và NET Framework Chương 2: Giới thiệu môi trường phát triển

ứng dụng Visual Studio NET 2005

Chương 3: C# căn bản

Chương 4: Hướng đối tượng trong C#

Chương 5: Lập trình ứng dụng với C#

Trang 5

Nội dung môn học

Chương 1: Giới thiệu C# và NET Framework Chương 2: Giới thiệu môi trường phát triển

ứng dụng Visual Studio NET 2005

Chương 3: C# căn bản

Chương 4: Hướng đối tượng trong C#

Chương 5: Lập trình ứng dụng với C#

Trang 6

Nội dung môn học

Chương 1: Giới thiệu C# và NET Framework

Chương 2: Giới thiệu môi trường phát triển

ứng dụng Visual Studio NET 2005

Chương 3: C# căn bản

Chương 4: Hướng đối tượng trong C#

Chương 5: Lập trình ứng dụng với C#

Trang 7

Nội dung chương 1

1.1 Nền tảng NET (.NET Flatform)

1.2 Kiến trúc NET (.NET Framework)

1.3 Biên dịch trong NET

1.4 Ngôn ngữ lập trình C#

Trang 8

1.1 Nền tảng NET (.NET Flatform)

.NET Platform là nền tảng phát triển:

- Cung cấp giao diện lập trình (API) cho các dịch

vụ (services) và các hàm API truyền thống của

hệ điều hành Windows

- Cung cấp một nền tảng phát triển chung cho

nhiều ngôn ngữ lập trình khác nhau của

Microsoft: C#, Visual J#, Visual Basic…

Trang 9

Nền tảng NET (.NET Flatform)

.NET Platform bao gồm các nhóm sản phẩm

• Tập hợp các ngôn ngữ (C#, VB…), một tập hợp các công cụ phát triển bao gồm Visual Studio

.NET, thư viện để phát triển các ứng dụng web (web and web services), các ứng dụng Windows cũng như môi trường thực thi chung (Common

Language Runtime (CLR))

• Nền tảng NET 2.0 không chỉ hỗ trợ các ứng dụng trên máy tính cá nhân, máy chủ mà còn hỗ trợ

các thiết bị nhúng (Cell phones, game boxes…)

Trang 10

1.2 Kiến trúc NET (.NET Framework)

§ Microsoft NET hỗ trợ nhiều ngôn ngữ khác nhaunhờ hệ thống - Common Type System (CTS)

§ Quy định những yêu cầu tối thiểu để một ngôn

ngữ lập trình có thể tích hợp vào NET –

Common Language Specification (CLS)

§ Kiến trúc NET là tầng ngay trên hệ điều hành, bao gồm:

• 5 ngôn ngữ lập trình chính thức: C#, VB, VC++, Visual J# và Jscript.NET

• CLR (Common Language Runtime)

• Các thư viện lập trình

Trang 11

11.NET Framework

Trang 12

1.3 Biên dịch trong NET

§ NET không biên dịch trực tiếp các chương trìnhthành file thực thi

§ NET biên dịch các chương trình thành các

assembly, chứa các mã chương trình trung giancủa Microsoft (Microsoft Intermediate Language -MSIL)

§ CLR sẽ dịch một lần nữa, sử dụng chương trìnhbiên dịch Just In Time (JIT) chuyển các mã MSIL sang mã máy và thực thi

Trang 13

13Biên dịch trong NET

Trang 14

1.4 Ngôn ngữ lập trình C#

§ C# được phát triển bởi nhóm tác giả điều hànhbởi Anders Hejlsberg và Scott Wiltamuth, tác giảcủa Turbo Pascal và Borland Delphi

§ C# là ngôn ngữ lập trình hướng đối tượng

(Object Oriented Language)

• Hỗ trợ định nghĩa và làm việc với lớp (class)

• Hỗ trợ đầy đủ ba cơ chế đặc trưng của lập trình

hướng đối tượng: đóng gói (encapsulation), kế

thừa (inheritance) và đa hình (polymorphism)

Trang 15

Nội dung môn học

Chương 1: Giới thiệu C# và NET Framework

Chương 2: Giới thiệu môi trường phát triển

ứng dụng Visual Studio NET 2005

Chương 3: C# căn bản

Chương 4: Hướng đối tượng trong C#

Chương 5: Lập trình ứng dụng với C#

Trang 16

Nội dung chương 2

2.1 Môi trường phát triển ứng dụng NET

2.2 Chương trình Hello World

2.3 Môi trường phát triển ứng dụng Visual Studio NET

Trang 17

§ Môi trường thực thi ứng dụng NET: Microsoft

.NET Framework

• http://www.microsoft.com/downloads/

§ Trình soạn thảo và biên dịch

- Visual Studio NET IDE

- Trình soạn thảo văn bản (Notepad, UltraEdit…) & Trình biên dịch bằng dòng lệnh (Command-line compiler)

Trang 18

2.2 Chương trình Hello World

1) Mở chương trình Visual Studio NET 2005

2) Tạo một dự án mới với kiểu ứng dụng console(HelloWorld)

Trang 20

Chương trình Hello World

Kết quả khi chạy chương trình Hello World

Trang 21

§ Namespaces (Không gian tên)

• Nhóm các tính năng có liên quan của C# vào một loại

• Cho phép dễ dàng tái sử dụng mã

• Trong thư viện NET framework có nhiều không gian tên

• Phải tham chiếu tới để sử dụng

Trang 22

Một số khái niệm cơ bản trong C#

Trang 23

Một số khái niệm cơ bản trong C#

§ Lớp (class): định nghĩa một kiểu dữ liệu, mô tả

một nhóm các đối tượng với các phương thức vàthuộc tính

• Phương thức (Method)

• Thuộc tính (Property)

Trang 24

Chương trình Hello World

using System;

using System.Collections.Generic;

using System.Text;

namespace HelloWorld {

class Program {

static void Main(string[] args) {

Console.WriteLine("Hello World"); }

} }

Trang 25

252.3 Visual Studio NET IDE 2005

Giao diện làm việc chính

Trang 26

Gỡ lỗi sử dụng VS.NET 2005

Set breakpoint

-Nhấn F9 hoặc

-Click chuột trái

vào bên lề trái

của hàng cần đặt

breakpoint

Trang 27

Gỡ lỗi sử dụng VS.NET 2005

Bắt đầu quá trình debug: nhấn F5 (Debug -> Start Debugging”

Trang 28

Gỡ lỗi sử dụng VS.NET 2005

Xem giá trị của các biến, đối tượng

Xem giá trị các biến, đối tượng tại cửa sổ local

Trang 29

Nội dung môn học

Chương 1: Giới thiệu C# và NET Framework Chương 2: Giới thiệu môi trường phát triển

ứng dụng Visual Studio NET 2005

Chương 3: C# căn bản

Chương 4: Hướng đối tượng trong C#

Chương 5: Lập trình ứng dụng với C#

Trang 30

Nội dung chương 3

3.1 Kiểu dữ liệu (Types)

3.2 Biến và hằng số (Variables and Constants)

3.3 Các câu lệnh và cấu trúc điều khiển

(Statements)

3.4 Các toán tử (Operators)

Trang 31

3.1 Kiểu dữ liệu (Types)

§ C# là ngôn ngữ định kiểu mạnh:

• Phải định nghĩa kiểu dữ liệu của mỗi đối tượng

(Ví dụ: integers, floats, strings, buttons…)

• Trình biên dịch sẽ kiểm tra và đảm bảo ngăn

chặn các lỗi do các phép gán sai kiểu dữ liệu

§ Phân loại dữ liệu

§ Phân theo phương thức định nghĩa: build-in (có sẵn) và user-defined (người dùng tự định nghĩa)

§ Phân theo cách thức lưu trữ: value (tham trị) và

reference (tham chiếu)

Trang 32

Kiểu dữ liệu (Types)

§ Kiểu tham trị (value type)

• Lưu trữ trong vùng nhớ ngăn xếp (stack)

§ Kiểu tham chiếu (reference type)

• Địa chỉ lưu trữ trong ngăn xếp (stack)

• Dữ liệu thực được lưu trữ trong vùng nhớ Heap

Cho phép lưu trữ đối tượng có kích thước lớn

Trang 33

Kiểu dữ liệu có sẵn (build-in type)

§ C# hỗ trợ một số kiểu dữ liệu có sẵn, mỗi kiểu

dữ liệu này tương ứng với một kiểu dữ liệu hỗ

trợ bởi NET CLS (Common Language System)

§ C# có thể sử dụng đối tượng do các ngôn ngữ

khác trong bộ NET tạo ra và ngược lại (Ví dụ: VB.NET)

§ Mỗi kiểu dữ liệu có kích thước xác định

Trang 34

Kiểu dữ liệu có sẵn (build-in type)

Trang 35

35Kiểu dữ liệu có sẵn (build-in type)

Trang 36

Escape Character

Trang 37

Chuyển đổi kiểu dữ liệu

§ Có hai cách chuyển đổi kiểu dữ liệu có sẵn

đổi diễn ra tự động và đảm bảo không bị mất mát

dữ liệu

üVí dụ: short x=5;

int y=x;

toán tử chuyển đổi (cast operator)

üVí dụ: (char)65 -> chuyển đổi từ số sang ký tự

Trang 38

3.2 Biến và hằng số (Variables and Constants)

§ Biến (variable):

• Một vùng nhớ có định kiểu

• Có thể gán và thay đổi được giá trị

• Các biến phải được khởi gán trước khi sử dụng, nếu không, trình biên dịch sẽ báo lỗi

int myInt;

System.Console.WriteLine ("Uninitialized, myInt: {0}", myInt);

Trang 40

Kiểu liệt kê

§ Kiểu liệt kê chứa một tập hợp các hằng số

(enumerator list) Lợi ích của enumerator

• Cho phép nhóm một tập hợp các hằng số có liên quan với nhau -> tránh phải khai báo nhiều hằng

số và tăng mối quan hệ logic giữa các hằng số

• Làm đơn giản hóa mã chương trình

enum GoodWeather : uint

{ temperature=28, moisture=80,

wind=5

Trang 41

Chuỗi (string) và cách đặt tên trong C#

§ Chuỗi là một mảng các ký tự

§ Khai báo và khởi gán giá trị cho chuỗi

• string myString=“Test String”;

§ Trong C#, chúng ta nên đặt tên các biến, các

phương thức, các lớp…theo khuyến cáo của

Trang 42

3.3 Các câu lệnh (statements)

§ Một chương trình C# là một dãy các câu lệnh

(statements)

§ Mỗi câu lệnh kết thúc bởi dấu “;”

§ Các câu lệnh được xử lý tuần tự theo chiều từ

trên xuống dưới (trừ các câu lệnh điều khiển:

Trang 43

Lệnh nhảy không điều kiện

§ Có hai trường hợp phát sinh lệnh nhảy không

điều kiện:

• Có lời gọi một phương thức: dừng phương thức hiện tại và chuyển sang (nhảy không điều kiện) thực hiện phương thức vừa triệu gọi, sau khi thực hiện xong, trở về phương thức trước đó.

• Sử dụng một trong số các lệnh nhảy không điều kiện: goto, break, continue, return hoặc throw

Trang 44

Lệnh nhảy có điều kiện

§ Câu lệnh: if…else

§ Câu lệnh điều kiện lồng (Nested if)

§ Câu lệnh chọn: switch…case

Trang 45

Câu lệnh điều kiện if…else

if (Bi ểu thức điều kiện)

Trang 46

Câu lệnh điều kiện lồng (Nested if)

§ Có thể được sử dụng trong những câu lệnh điềukiện phức tạp, điều kiện lồng nhau

}

else

{ Console.WriteLine("La chu cai hoa");

Trang 47

Lệnh nhảy (break, continue)

[default: Các câu lệnh cho trường hợp mặc định]}

Trang 48

Câu lệnh chọn: switch…case

static void Main(string[] args)

{

const int Vietnam = 0;

const int Laos = 1;

const int Cambodia = 2;

const int Thailand = 3;

Trang 52

Console.Write("\t{0}", i);

} else { Console.Write("\t{0}", i);

} } }

Trang 53

Vòng lặp while

while ( expression ) statement

Biều thức kiểm tra Công việc cần thực thi

static void Main(string[ ] args)

Trang 54

Vòng lặp do…while

do statement while expression

Biều thức kiểm tra

Công việc cần thực thi

static void Main(string[ ] args)

Trang 55

3.4 Toán tử (Operator)

§ Toán tử được phân thành nhiều liệu khác nhau

• Toán tử gán (assignment operator): =

• Toán tử toán học (arithmetic operators): +, -, * …

• Toán tử tăng, giảm (increment and decrement

operators): ++, , -=, *= …

• Toán tử quan hệ (relational operators): ==, != …

• Toán tử logic (logical operators): &&, || …

• Toán tử ba thành phần (Ternary Operator)

Trang 56

Toán tử toán học

§ Các toán tử cơ bản: cộng (+), trừ (-), nhân (*),

chia (/)

§ Toán tử chia lấy phần dư (modulus): %

static void Main(string[] args)

{

int i1 = 17;

int i2 = 4;

Console.WriteLine("Integer:{0} \nFloat:{1} \nModulus:{2}",

i1 / i2, (float)i1 / i2, i1 % i2);

}

Trang 59

Chú thích: dữ liệu kiểm tra, x=5 và y=7

Trang 60

Toán tử ba thành phần

conditional-expression ? expression1 : expression2

§ Conditional-expression: bi ểu thức kiểm tra điều kiện

§ Expression1: biểu thức 1, thực hiện khi biểu thức kiểm tra trả về true

§ Expression2: biểu thức 2, thực hiện khi biểu thức kiểm tra trả về false

§ Ví d ụ:

int valueOne = 10;

int valueTwo = 20;

Trang 61

Bài thực hành số 1

Trang 62

Bài thực hành số 1

nhập tên của họ, sau đó in lại tên đó dưới dạng

một lời chào

tính bình phương của một số

Trang 63

Bài thực hành số 1

nguyên dương và kiểm tra số đó là chẵn hay lẻ

chương của số bất kỳ (từ 1 đến 9)

Trang 64

Bài thực hành số 1

vuông cân tạo thành từ các ký tự bất kỳ, có độ dàicạnh nhập từ bàn phím

Trang 65

Nội dung môn học

Chương 1: Giới thiệu C# và NET Framework Chương 2: Giới thiệu môi trường phát triển

ứng dụng Visual Studio NET 2005

Chương 3: C# căn bản

Chương 4: Hướng đối tượng trong C#

Chương 5: Lập trình ứng dụng với C#

Trang 66

Nội dung chương 4

4.1 Cơ bản về lập trình hướng đối tượng

4.2 Lớp và đối tượng (Class and Object)

4.3 Kỹ thuật kế thừa và đa hình (Inheritance and

Trang 67

Con cá vàng 1 Con cá vàng 2 Con cá vàng 3

Object

Trang 69

Kế thừa (Inheritance)

Trang 70

Các quan hệ (relationships)

Các đối tượng không tồn tại một cách độc lập,

luôn tồn tại mối quan hệ giữa nó và các đối tượngkhác: tổng quát hóa (generalization) , cộng tác

Trang 71

Tổng quát hóa (generalization)

§ Lớp cha (fish) tổng quát hóa các thuộc tính, phương thức chung của các lớp con (Goldfish vàShark)

§ Các lớp con cũng có những thuộc tính, phươngthức riêng

Trang 72

Quan hệ cộng tác (Association)

§ Các lớp có liên kết (connected) hoặc liên quan

Cd player + Speaker

(Collaboration)

Shark eat fish

Trang 74

Quan hệ cấu thành (Composition)

§ Là một dạng của quan hệ kết tập, tuy nhiên yêucầu chặt chẽ hơn

• Mỗi bộ phận (part) chỉ nằm trong một cái tổng thể (the whole) duy nhất

üVD: phòng ngủ nhà bạn phải nằm trong nhà bạn,

không thể nằm trong nhà hàng xóm hay bất cứ ngôi nhà nào khác

Trang 75

Quan hệ cấu thành (Composition)

§ Khi phá hủy cái tổng thể thì đồng thời cái bộ

phận cũng bị phá hủy

Phá nhà

Phá phòng ngủ

Trang 76

üMột giáo viên có thể dạy nhiều lớp

• Quan hệ nhiều – nhiều

üMột giáo viên dạy nhiều sinh viên üMột sinh viên học nhiều giáo viên

Trang 78

4.2 Lớp và đối tượng

§Định nghĩa lớp (class)

[attributes] [access-modifiers] class identifier [:base-class [,interface(s )]]

{class-body}

Access-modifiers : quyết định phạm vi truy cập tới

các thuộc tính và phương thức của lớp

Identifier : tên lớp

Base-class : lớp cơ sở (lớp cha)

Class-body : định nghĩa các thuộc tính và phương

thức của lớp

Trang 79

Access-modifiers

Có thể được truy xuất bởi các phương thức của lớp đó, lớp dẫn xuất từ lớp đó và các lớp trong cùng Assembly với nó

public

Giới hạn truy nhập Access-modifier

Trang 80

Phương thức của lớp

Trang 81

Khai báo và sử dụng đối tượng của lớp

public class Tester

Trang 82

Tạo đối tượng (create object)

§ Sử dụng từ khóa “new”

Ví dụ:

Time t=new Time( );

§ Đối tượng là biến kiểu tham chiếu, không phải

tham trị

• Biến t không chứa giá trị của đối tượng

• Biến t chứa địa chỉ của đối tượng được tạo trong

bộ nhớ Heap

Trang 83

Hàm tạo (constructor)

§ Khởi tạo một đối tượng -> gọi hàm tạo

(constructor)

• Hàm tạo mặc định: sẽ được CLR cung cấp nếu

người lập trình không định nghĩa

• Hàm tạo do người lập trình định nghĩa

§ Hàm tạo có chức năng:

• Tạo một đối tượng của lớp và chuyển nó sang

trạng thái xác định ( valid state )

• Hàm tạo thường được dùng để khởi gán các

thuộc tính của đối tượng

Trang 84

Hàm tạo mặc định (default constructor)

§ Hàm tạo mặc định tạo đối tượng của lớp, ngoài ra

không làm gì khác

§ Các thuộc tính được khởi gán các giá trị mặc định

null reference

0 enum

‘\0’ (null) char

false bool

0 numeric (int, long, …)

Giá trị mặc định Kiểu dữ liệu

Trang 85

Xây dựng hàm tạo

§ Hàm tạo có tên hàm trùng tên đối tượng, không

có kiểu dữ liệu trả về và phạm vi truy nhập

Trang 86

} }

Trang 87

Kiểm tra hàm tạo

public class Tester

{

static void Main()

{

System.DateTime currentDate = System.DateTime.Now;

Time t = new Time(currentDate);

t.DisplayCurrentTime();

}

}

Trang 88

Hàm tạo sao chép (copy constructor)

§ Để hỗ trợ chức năng hàm tạo sao chép.NET định nghĩa một interface ICloneable

§ Class hỗ trợ hàm tạo sao chép phải

• implement interface ICloneable

public Object Clone() {

return MemberwiseClone(); // shallow copy }

• Tự xây dựng hàm tạo sao chép (hand-copying copy

constructor)

Trang 90

Gọi hàm tạo sao chép

public class Tester

{

static void Main()

{

System.DateTime currentDate = System.DateTime.Now;

Time t = new Time(currentDate);

Trang 91

Từ khóa this

§ Từ khóa this trỏ đến thể hiện hiện tại (current

instance) của đối tượng

§ Từ khóa this rất hữu ích trong một số trường

hợp

1) Chỉ rõ thành phần (thuộc tính) của đối tượng,

tránh nhầm lẫn với tên biến, tránh sự nhập nhằng

Trang 92

Từ khóa this (tiếp)

2)Dùng làm tham số truyền vào cho một phươngthức của đối tượng khác, cho phép phương thức

đó có thể tác động đến các thành phần của đốitượng hiện tại

Trang 93

Từ khóa this (tiếp)

3) Sử dụng cùng với indexer (Tìm hiểu sau)

4) Gọi một hàm tạo từ hàm tạo khác của lớp

Trang 94

Từ khóa this (tiếp)

5) Gọi tường minh các phương thức, thuộc tính

this.z = 5; // assign to a member variable

this.Draw( ); // invoke member method

Ngày đăng: 16/04/2014, 16:38

HÌNH ẢNH LIÊN QUAN

Bảng Product như sau: - Giáo án - Bài giảng: LẬP TRÌNH ỨNG DỤNG SỬ DỤNG C#.NET
ng Product như sau: (Trang 191)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w