45
BỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG (Dùng cho 45 tiết giảng) Học phần: Ngôn ngữ lập trình 2 – DotNet Nhóm môn học: Cơ sở ngành (Kỹ thuật lập trình) Bộ môn: Công nghệ phần mềm Khoa (Viện): Công nghệ Thông tin Thay mặt nhóm môn học Phan Việt Anh Thông tin về nhóm môn học TT Họ tên giáo viên Học hàm Học vị Đơn vị công tác (Bộ môn) 1 Hồ Nhật Quang GV Ths Công nghệ phần mềm 2 Phan Việt Anh GV Ths Công nghệ phần mềm 3 Cao Tuấn Anh TG KS Công nghệ phần mềm Thời gian, địa điểm làm việc: Bộ môn Công nghệ phần mềm, khoa Công nghệ Thông tin. Điện thoại, email: 069 515 338 [email protected] Bài giảng 1: Các khái niệm cơ bản Chương 1: Mục 1.1 + 1.2 Tiết thứ: 1 - 3 Tuần thứ: 1 - Mục đích, yêu cầu:

fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

BỘ MÔN DUYỆTChủ nhiệm Bộ môn

Phan Nguyên Hải

ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

(Dùng cho 45 tiết giảng)Học phần: Ngôn ngữ lập trình 2 – DotNetNhóm môn học: Cơ sở ngành (Kỹ thuật lập trình)Bộ môn: Công nghệ phần mềmKhoa (Viện): Công nghệ Thông tin

Thay mặt nhóm môn học

Phan Việt Anh

Thông tin về nhóm môn họcTT Họ tên giáo

viênHọc hàm Học vị Đơn vị công tác (Bộ môn)

1 Hồ Nhật Quang GV Ths Công nghệ phần mềm2 Phan Việt Anh GV Ths Công nghệ phần mềm3 Cao Tuấn Anh TG KS Công nghệ phần mềmThời gian, địa điểm làm việc: Bộ môn Công nghệ phần mềm, khoa Công nghệ Thông tin.Điện thoại, email: 069 515 338 [email protected]

Bài giảng 1: Các khái niệm cơ bảnChương 1: Mục 1.1 + 1.2Tiết thứ: 1 - 3 Tuần thứ: 1

- Mục đích, yêu cầu: + Nắm được ý nghĩa, yêu cầu, các nội dung của môn học.+ Nắm được cấu trúc của một chương trình C# đơn giản.+ Nắm được cách sử dụng IDE của Visual Studio để soạn thảo, biên dịch và thực thi chương trình.+ Nắm được các kiểu dữ liệu cơ bản trong C# và .NetFramework, chuyển đổi giữa các kiểu dữ liệu.+ Viết chương trình nhập, xuất dữ liệu, thực hiện một số toán tử toán học, hiển thị kiểu dữ liệu ngày giờ, thao tác với xâu ký tự.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

1.1. Các khái niệm cơ bản (1 tiết)

Page 2: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

-Giới thiệu Microsoft.Net+ Các ngôn ngữ được hỗ trợ trong Visual Studio.NET : C/C++ (thông qua Visual C++), VisualBasic.NET, C#.NET, F# (từ VS2010), …+ Gồm có 2 thành phần chính: Framework và Integrated Development Environment (IDE).+ Framework là cốt lõi quan trọng nhất của môi trường .NET. IDE chỉ là công cụ để phát triển trên nền tảng đó. Trong .NET cả C++, C#, Visual Basic đều dùng chung 1 IDE.+ .NET Framework có hai thành phần chính: Common Language Runtime (CLR) và thư viện lớp .NET Framework

-Tính năng của bộ VS.NET+ Xây dựng được đa dạng các ứng dụng: Web, mobile phone, Windows Form, giao tiếp với phần cứng, …

-Không gian tên (namespace)+ Ý nghĩa của việc dùng không gian tên (namespace)+ Sử dụng các thành phần trong namespace, từ khóa using:+ Cú pháp :

using tên namespace;using bí danh = tên namespace;

-Cấu trúc của chương trình C#+ Cấu trúc vật lý, logic của một chương trình trong C#: Solution, Project, File.+ Hàm Main (điểm bắt đầu của chương trình) có tham số, không có tham số

-Biên dịch và thực thi chương trình-Kiểu dữ liệu, từ khoá, định danh, biến, hằng…

Page 3: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Kiểu số nguyên (C#/ .NetFramework): byte/Byte, sbyte/Sbyte, short/Int16, ushort/Uint16, int/Int32, unit/Uint32, long/Int64, ulong/ Uint64+ Kiểu số thực dấu phảy động (C#/ .NetFramework): float /Single, double /Double, decimal /Decimal.+ Kiểu ký tự, xâu ký tự (C#/ .NetFramework): char/Char, string/String.+ Kiểu thời gian (C#/ .NetFramework): Datetime/ Datetime + Kiểu logic (C#/ .NetFramework): bool/ Boolean+ Kiểu đối tượng (C#/ .NetFramework): object/Object

-Nhập/ xuất dữ liệu+ Nhập liệu: Hàm ReadLine, ReadKey+ Xuất dữ liệu ra màn hình: Hàm Write, WriteLine.

-Các toán tử+ Các toán tử một ngôi: [], ++, --, typeof, ..+ Toán tử hai ngôi: +, -, *, …+ Toán tử dịch bít: >>, <<+ Toán tử so sánh và kiểm tra kiểu dữ liệu: >, <, >=, <=, is, as,…+ Toán tử logic: &&, ||, …+ Toán tử điều kiện ?:+ Toán tử gán: +=, -=, *=, …+ Thứ tự tiên giữa các toán tử.+ Các hàm toán học trong lớp System.Math: Abs, Sin, Cos, Tan, Tan2, Pow, Sqrt, ….

-Chuyển đổi giữa các kiểu dữ liệu+ Toán tử chuyển kiểu tường minh và ngầm định.

Page 4: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Chuyển kiểu dữ liệu bất kỳ thành kiểu xâu, dùng phương thức ToString.+ Chuyển kiểu xâu thành kiểu số, dùng phương thức Parse hoặc TryParse.+ Chuyển đổi kiểu dữ liệu dùng các hàm của lớp System.Convert: ToDateTime - Chuyển một giá trị về kiểu ngày giờ, ToInt16 – Chuyển về kiểu Short, ToInt32 – Chuyển về kiểu int, ToInt64 – Chuyển về kiểu long, …

-Các cấu trúc điều khiển+ Cấu trúc rẽ nhánh: if … else+ Cú pháp switch … case+ Cấu trúc lặp for+ Cấu trúc lặp while, do …while+ Các lệnh nhảy return, goto, break, continue.

-Chú thích+ Chú thích một dòng //+ Chú thích nhiều dòng /* */

1.2. Thao tác dữ liệu (2 tiết)- Kiểu dữ liệu mảng + Khái niệm: Mảng là một tập hợp có thứ tự của những đối tượng, tất cả

các đối tượng này cùng một kiểu. Mảng trong C# là một đối tượng.+ Mảng một chiều+ Khởi tạo mảng một chiều

int[] myIntArray = new int [5];int[] myIntArray = new int[5] { 2, 4, 6, 8, 10}; int[] myIntArray = { 2, 4, 6, 8, 10}; // Tập các giá trị

+ Mảng nhiều chiều: mảng nhiều chiều vuông và mảng nhiều chiều không vuông (jagged).

+ Các phương thức, thuộc tính thường dùng của mảng: Length, GetLength.+ Truy cập các phần tử của mảng, toán tử chỉ mục []- Kiểu dữ liệu xâu ký tự+ Tạo giá trị một xâu.+ Các ký tự escape là các ký tự đặc biệt, bắt đầu bằng dấu \. Ví dụ \n -

xuống dòng, \t – dấu tab.+ Muốn một số ký tự đặc biệt (\, “, …) là ký tự trong xâu thì phải có ký tự \

đứng trước nó. Ví dụ muốn có xâu "Khoa CNTT thì phải viết "\"Khoa CNTT".+ Ký tự @ đặt trước giá trị mỗi xâu để xác định đó là xâu nguyên mẫu. Ví

dụ: @” C:\Program Files\Visual Studio” bằng với “C:\Program Files\\Visual Studio”

Page 5: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Các phương thức, thuộc tính thường dùng của xâu: Format ,Chars ,Length ,Clone ,CompareTo , CopyTo, EndsWidth , Insert , LastIndexOf , PadLeft , …

+ Sử dụng StringBuilder để thao tác chuỗi hiệu quả.- Kiểu dữ liệu ngày giờ+ Tạo kiểu ngày giờ từ chuỗi.+ Sử dụng cấu trúc TimeSpan để thực hiện các phép toán cộng, trừ, so sánh

ngày giờ.- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1] tập 1, tài liệu 4 từ trang 7 - 211

Bài giảng 2: Lập trình hướng đối tượng trong C#Chương 2, mục 2.1 + 2.2 + 2.3 + 2.4Tiết thứ: 4 - 6 Tuần thứ: 2

- Mục đích, yêu cầu: + Nắm được khái niệm lớp, đối tượng. Phương pháp xây dựng khoa học một lớp.+ Nắm được cách viết hàm tạo có tham số, không có tham số, hàm tạo static, hàm hủy, các trường hợp nên viết hàm hủy cho lớp.+ Nắm được cách sử dụng thuộc tính, indexer và hiểu được tính đóng gói khi sử dụng thuộc tính (Property).+ Nắm được ý nghĩa, phương pháp của nạp chồng toán tử, nạp chồng phương thức. Viết nạp chồng các toán tử toán học cho lớp số phức (hoặc phân số, ma trận, đa thức)- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

2.1. Lớp và đối tượng + 2.2. Phương thức (1 tiết)- Khái niệm về lớp và đối tượng.- Các thành phần của lớp: biến thành viên + phương thức.- Hàm tạo (Constructor): + Khái niệm: hàm tạo là một phương thức đặc biệt của lớp, dùng để tạo

một đối tượng mới. Chương trình sẽ cấp phát bộ nhớ cho đối tượng sau đó gọi đến hàm tạo.

+ Được gọi tại thời điểm một đối tượng của lớp được tạo.+ Contructor dùng để khởi tạo các biến thành viên của lớp.

Page 6: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

- Đặc điểm hàm tạo: + Tên hàm tạo bắt buộc trùng tên lớp.+ Không có giá trị trả về tường minh.+ Không cho kế thừa. - Hàm tạo static:+ Đặc điểm:

Hàm tạo static được dùng để khởi tạo các biến của lớp hoặc thực hiện hành động cụ thể chỉ một lần.

Không có tham số, không sử dụng bất kỳ từ khóa định nghĩa truy cập nào.

Cú pháp:class <Tên lớp>{

static <tên lớp>(){

// Mã lệnh của hàm tạo static}

}- Từ khóa định nghĩa truy cập public, internal, protected, private.- Từ khóa this: đề cập đến đối tượng hiện tại của lớp, các hàm thành viên

tĩnh không có con trỏ this. Con trỏ this được dùng trong constructor, phương thức, thuộc tính, indexer.

- Từ khóa static: Thành viên static thuộc về kiểu của chính lớp đó, không thuộc về một đối tượng cụ thể. Định nghĩa static có thể được sử dụng với classes, fields, methods, properties, operators, events, và constructors, nhưng không được sử dụng với indexers, destructors hoặc các dạng khác ngoài lớp.

- Hàm hủy (Destructor):+ Được gọi bởi bộ thu rác (Garbage Collector) trong C#.+ Garbage Collector giải phóng bộ nhớ bằng cách hủy các đối tượng không

cần sử dụng hoặc tham chiếu đến nó.+ Destructors không thể nạp chồng hoặc kế thừa.+ Destructors không được gọi tường minh.+ Không chứa tham số, và từ khóa định nghĩa truy cập. - Truyền tham số+ Truyền tham trị+ Truyền tham chiếu sử dụng từ khóa ref, out+ Truyền tham số kiểu mảng sử dụng từ khóa params.

Page 7: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

2.3. Thuộc tính (1 tiết)- Khái niệm thuộc tính (Property): Thuộc tính cho phép truy cập các thành

phần dữ liệu bên trong lớp thay vì thông qua truy cập qua các biến thành viên.- Cú pháp: <từ khóa định nghĩa truy cập> <Kiểu dữ liệu> Tên thuộc tính { get // Lấy giá trị{ // Các lệnh của phương thức get}

set //‘ Thiết lập dữ liệu { // Các lệnh của phương thức set}

}Phương thức get được gọi khi đọc giá trị từ thuộc tínhPhương thức set được gọi khi gán giá trị cho thuộc tính. Từ khóa value là

giá trị được gán cho thuộc tính.- Khái niệm indexer: Sử dụng indexer cho phép tạo một lớp có hành động

giống như “mảng ảo”. Đối tượng của lớp có thể dùng toán tử chỉ mục [] để truy nhập các thuộc tính của nó.

- Cú pháp [từ khóa truy cập] <kiểu dữ liệu> this[int id1, int id2, …] // các chỉ mục id1, id2, … là kiểu nguyên (int, long).{ get

{ // các lệnh trong get} set {// các lệnh trong set}

}Kiểu dữ liệu các chỉ mục id1, id2, … là kiểu số nguyên.2.4. Nạp chồng toán tử (1 tiết)- Ý nghĩa: Nạp chồng toán tử cho phép người dùng định nghĩa các phép

toán cho lớp hoặc cấu trúc.- Cú pháp:

Page 8: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

public static <kiểu dữ liệu> operator <toán tử> (các ngôi của toán tử) {// các lệnh thực hiện phép toán

}- Các toán tử có thể nạp chồng, các toán tử không được phép nạp chồng.- Định nghĩa toán tử chuyển kiểu tường minh (explicit), ngầm định

(implicit)- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1] chương 1, 2, 3, 4.Tự làm bài tập giáo viên giao cuối chương 2.

Bài giảng 3: Lập trình hướng đối tượng trọng C# (Tiếp)Chương 2, mục 2.5 + 2.6Tiết thứ: 7 - 9 Tuần thứ: 3

- Mục đích, yêu cầu:+ Nắm được ý nghĩa, các trường hợp áp dụng kế thừa, cú pháp khai báo kế thừa.+ Nắm được gọi Contructor, các phương thức, thuộc tính của lớp cơ sở.+ Nắm được các từ khóa để nghiêm cấm kế thừa (sealed), ghi đè phương thức, thuộc tính (virtual và override).+ Nắm được mục đích sử dụng giao diện (interface) và lớp trừu tượng (abstract class) trong thiết kế chương trình.+ Nắm được phương pháp hiện thực một số giao diện thông dụng: : khả liệt kê (IEnumerable), khả so sánh (IComparable), khả tuần tự (ISerializable), khả sao chép (IClonableable)- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết.- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

2.5. Kế thừa và đa hình (1 tiết) - Ý nghĩa của kế thừa+ Có thể xây dựng lớp mới dựa trên lớp đã xây dựng trên lớp trước đó. Kế

thừa dựa trên quan hệ is – a. Lớp kế thừa có thể thừa hưởng những phương thức, thuộc tính của lớp cha.

+ Làm tăng năng suất, giảm độ phức tạp khi bảo trì và khi phát triển.- Khai báo kế thừa- Gọi Constructor của lớp cơ sở+ Lớp con (dẫn xuất) không được kế thừa hàm tạo của lớp cha (cơ sở).

Page 9: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Có hai giải pháp gọi constructor của lớp cơ sở Sử dụng constructor mặc định Gọi constructor của lớp cơ sở một cách tường minh. Từ khóa base được sử dụng để gọi các phương thức, thuộc tính của lớp cha.Ví dụ:class BaseClass { private string strPath; public BaseClass() { strPath = "C:\\"; } public BaseClass(string Path) { strPath = Path; } } class CallConstructorOfBaseClass : BaseClass { private string stPath1; public CallConstructorOfBaseClass() : base("D:\\") {} public CallConstructorOfBaseClass(string Path) : base() {stPath1 = Path ; } }

- Nghiêm cấm kế thừa (từ khóa sealed)+ Dùng từ khóa sealed trong khai báo để tạo lớp không cho phép kế thừa+ Dùng từ khóa sealed trong khai báo phương thức để tạo phương thức

không cho phép kế thừa.- Gọi lớp cơ sở (từ khóa base)- Ghi đè (từ khóa virtual và override)+ Từ khóa override cho phép xây dựng lại phương thức, thuộc tính,

indexer, sự kiện được kế thừa từ lớp cha.+ Lớp con chỉ có thể ghi đè được phương thức mà lớp cha cho phép ghi đè:

các phương thức khai báo với từ khóa virtual hoặc abstract - Chuyển đổi kiểu dữ liệu từ lớp dẫn xuất thành lớp cơ sở, tính đa hình.Ví dụ:class A

        {              public void Foo() { Console.WriteLine("A::Foo()"); }        }

        class B : A

Page 10: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

        {              public void Foo() { Console.WriteLine("B::Foo()"); }        }

        class Test        {            static void Main(string[] args)            {                A a;                B b;

                a = new A();                b = new B();                a.Foo();  // kết quả trên màn hình --> "A::Foo()"                b.Foo();  // kết quả trên màn hình --> "B::Foo()"

                a = new B();                a.Foo();  // kết quả trên màn hình --> "A::Foo()"            }        }

2.6. Lớp trừu tượng và giao diện (2 tiết)- Lớp trừu tượng (abstract class)+ Lớp trừu tượng đơn giản được xem như một class cha cho tất cả các

Class có cùng bản chất. + Mỗi lớp dẫn xuất (lớp con) chỉ có thể kế thừa từ một lớp trừu tượng. + Lớp trừu trượng không cho phép tạo đối tượng trực tiếp từ nó, chỉ tạo

được đối tượng qua hàm tạo của lớp con.+ Các phương thức abstract của lớp trừu tượng không có phần thân- Giao diện (Interface)+ Interface được xem như một mặt nạ cho tất cả các Class cùng cách thức

hoạt động nhưng có thể khác nhau về bản chất + Interface chỉ định nghĩa các events, indexers, methods hoặc properties. + Các lớp hoặc struct có thể đa kế thừa từ interface. + Tất cả các lớp (hoặc struct) kế thừa từ interface đều phải thực thi toàn bộ

các thành viên trong interface. + Không tạo đối tượng trực tiếp từ interface.- Ý nghĩa của giao diện.

Page 11: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

- Xây dựng lớp cài đặt giao diện- Các giao diện thông dụng trong .NetFramework: + Khả liệt kê (IEnumerable): hỗ trợ dùng vòng lặp foreach để duyệt các

phần tử trong tập hợp.+ Khả so sánh (IComparable): System.Collections.IComparer: Cung cấp

cơ chế so sánh kiểu tùy biến, cho bạn dễ dàng sắp xếp mảng đối tượng này+ Khả tuần tự (Serializable): System.Runtime.Serialization.ISerializable:

có thể dễ dàng lưu trữ vào đĩa, truyền qua mạng hoặc chuyển giá trị qua lại giữa các miền ứng dụng

+ Khả sao chép (IClonableable): System.ICloneable: Cung cấp cơ chế tạo bản sao cho các đối tượng của lớp

- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1] chương 5, 6Đọc tài liệu [4] từ trang 357 - 473Tự làm bài tập cuối chương 2.

Bài giảng 4: Lập trình hướng đối tượng trong C# - Bài tậpTiết thứ: 10 - 12 Tuần thứ: 4

- Mục đích, yêu cầu:+ Nắm chắc các kiến thức về lập trình hướng đối tượng.+ Làm các bài tập cuối chương 2.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 0; Bài tập: 3 tiết Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

+ Làm các bài tập xây dựng lớp,.+ Xây dựng các lớp có quan hệ kế thừa.+ Xây dựng lớp kế thừa giao diện khả tuần tự hóa, giao diện khả so sánh,

sắp xếp mảng các đối tượng theo các tiêu chí khác nhau. + Xây dựng lớp kế thừa giao diện khả sao chép.- Yêu cầu SV chuẩn bị:+ Nắm chắc lý thuyết chương 2.+ Làm các bài tập giáo viên giao về nhà.

Bài giảng 5: Cấu trúc dữ liệu trong C# + Bài tậpChương 3, mục 3.1 + 3.2

Page 12: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

Tiết thứ: 13 - 15 Tuần thứ: 5- Mục đích, yêu cầu: + Nắm được cách sử dụng một số kiểu cấu trúc dữ liệu trong C#: Danh sách liên kết, mảng động ArrayList, ngăn xếp (stack), hàng đợi (Queue)+ Nắm được ý nghĩa, phương pháp lập trình tổng quát.+ Xây dựng ví dụ lớp tổng quát- Hình thức tổ chức dạy học: Lý thuyết, bài tập, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 2 tiết; Bài tập: 1 tiết Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

3.1. Lập trình tổng quát trong C# (1 tiết)- Giới thiệu lập trình tổng quát+ Lập trình tổng quát là phương pháp lập trình mà trong đó kiểu dữ liệu

không cần định nghĩa trước, sau đó nó sẽ được khởi tạo là kiểu dữ liệu cụ thể khi cần thiết.

- Lớp tổng quát (Generic Class)- Phương thức tổng quát (Generic Method )- Cấu trúc tổng quát (Generic Struct)3.2. Một số cấu trúc dữ liệu trong C#(1 tiết) - Danh sách liên kết+ Lớp LinkedList<T> trong namespace System.Collections.Generics dùng

để biểu diễn danh sách liên kết (danh sách liên kết đơn và kép).+ Mỗi node trong LinkedList có kiểu là LinkedListNode.+ Các thuộc tính của LinkedListNode

LinkedListNode<T>(value)

Hàm tạo, tạo LinkedListNode chứa giá trị cho trước.

List Trả về danh sách liên kết chứa node hiện tại.Next Trả về node tiếp theo của danh sách liên kếtPrevious Trả về node phía trước của danh sách liên kếtValue Trả về giá trị đang lưu trữ trong node.+ Các thuộc tính và phương thức thường dùng của danh sách liên kết

Tên Mô tảHàm tạoLinkedList (T ) Nạp chồng. Khởi tạo đối tượng của lớp LinkedList

Phương thức

Page 13: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

AddAfter Nạp chồng . Thêm một node mới hoặc một giá trị vào sau một node đã tồn tại trong danh sách.

AddBefore Nạp chồng . Thêm một node mới hoặc một giá trị vào trước một node đã tồn tại trong danh sách.

AddFirst Nạp chồng . Thêm một node mới hoặc một giá trị vào đầu danh sách.

AddLast Nạp chồng . Thêm một node mới hoặc một giá trị vào cuối danh sách.

Clear Xóa toàn bộ các node trong danh sáchContains Kiểm tra giá trị có tồn tại trong danh sách.CopyTo Sao chép toàn bộ danh sách ra mảng một chiều, bắt đầu

từ vị trí đã chỉ của mảng đích.Finalize Cho phép một đối tượng giải phóng tài nguyên và thực

hiện thao tác dọn dẹp trước khi đối tượng này bị dọn dẹp bởi bộ thu dọn rác.

Find Tìm kiến node đầu tiên chứa giá trị cần tìm kiếm.FindLast Tìm kiến node cuối cùng chứa giá trị cần tìm kiếm.GetEnumerator

Trả về enumerator cho phép duyệt qua danh sách.

Remove Nạp chồng. Xóa node hoặc giá trị xuất hiện đầu tiên từ danh sách.

RemoveFirst Xóa node đầu tiền của danh sáchRemoveLast Xóa node cuối cùng của danh sách.Thuộc tínhCount Trả về số lượng các node trong danh sáchFirst Trả về node đầu tiên trong danh sáchLast Trả về node cuối cùng trong danh sách

- Ngăn xếp và hàng đợi+ Ngăn xếp(Stack)

Lớp Stack dùng để biểu diễn cấu trúc ngăn xếp có thể chứa các giá trị có kiểu dữ liệu khác nhau. Thuộc namespace System.Collections

Lớp Stack<T> biểu diễn cấu trúc ngăn xếp chứa các giá trị cùng kiểu dữ liệu. Thuộc namespace System.Collections.Generics

Một số thuộc tính thường dùng: Capacity, CountCác phương thức thường dùng: Pop, Push, Peek

Page 14: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Hàng đợi (Queue)Lớp Queue dùng để biểu diễn cấu trúc hàng đợi có thể chứa các giá

trị có kiểu dữ liệu khác nhau. Thuộc namespace System.Collections.Lớp Stack<T> biểu diễn cấu trúc hàng đợi chứa các giá trị cùng kiểu

dữ liệu. Thuộc namespace System.Collections.GenericsMột số thuộc tính thường dùng: Capacity, CountCác phương thức thường dùng: Enqueue, Dequeue, Peek

Bài tập (1 tiết)- Yêu cầu SV chuẩn bị:Đọc trước và làm các ví dụ trong tài liệu [1] tập 1Đọc tài liệu [6] chương 10 trang 309 - 339Tự đọc:

Bài giảng 6: Cấu trúc dữ liệu trong C# (tiếp) + thực hànhChương 3, mục 3.3Tiết thứ: 16 - 18 Tuần thứ: 6

- Mục đích, yêu cầu: + Nắm được cách sử dụng một số cấu dữ liệu tổng quát trong C#: Mảng động (List), danh sách sắp xếp (SortedList)+ Áp dụng cấu trúc dữ liệu tổng quát, làm các bài tập chương 3.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, thực hành, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 1 tiết; Thực hành: 2 tiết, Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

3.3 Các cấu trúc dữ liệu tổng quát trong C# (1 tiết) - Mảng động ArrayList

+ ArrayList dùng để biểu diễn mảng động, các phần tử có thể có kiểu dữ liệu khác nhau.+Thuộc namespace System.Collections+ Các thuộc tính thường dùng: Capacity, Count+ Truy cập các phần tử: sử dụng toán tử chỉ mục []+ Các phương thức thường dùng: Add, AddRange, Clear

- Mảng động List.+ List dùng để biểu diễn mảng động, các phần tử có thể có kiểu dữ liệu khác nhau.+ Thuộc namespace System.Collections.Generic

Page 15: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Các thuộc tính thường dùng: Capacity, Count+ Truy cập các phần tử: sử dụng toán tử chỉ mục []+ Các phương thức thường dùng: Add, AddRange, Clear

- Danh sách sắp xếp SortedList.+ SortedList dùng để biểu diễn các cặp khóa/ giá trị (key/value), các phần tử được sắp xếp và tìm kiếm theo trường khóa.+ Thuộc namespace System.Collections.Generic+ Các thuộc tính thường dùng: Capacity, Count+ Truy cập các phần tử:

Có thể truy cập toàn bộ các giá trị sử dụng mảng thuộc tính Values

Có thể truy cập toàn bộ các khóa sử dụng mảng thuộc tính Keys

Tìm phần tử khi biết khóa: sử dụng phương thức TryGetValueCác phương thức thường dùng: Add, IndexOfKey, IndexOfValue.

Bài tập chương 3. (2 tiết)- Yêu cầu SV chuẩn bị:Đọc trước và làm các ví dụ trong tài liệu [1] tập 1Làm bài tập chương 3

Bài giảng 7: Lập trình Windows FormChương 4, mục 4.1 + 4.2Tiết thứ: 19 - 21 Tuần thứ: 7

- Mục đích, yêu cầu:+ Nắm được chức năng của ứng dụng windows form+ Nắm được các công cụ thiết kế giao diện: Thanh ToolBox, thanh Layout.+ Hiểu được mã lệnh thiết kế form.+ Nắm được phương pháp thêm điều khiển vào form lúc thực thi.+ Nắm được cơ chế ủy quyền và sự kiện.+ Nắm được các thuộc tính, phương thức, sự kiện thường dùng của Form.+ Nắm được vai trò của các điều khiển, các nhóm điều khiển, các thuộc tính, phương thức, sự kiện thường dùng của điều khiển.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

4..1. Các kiến thức chung về ứng dụng Windows Form (2 tiết) - Chức năng của Windows Form.

Page 16: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Mang các điều khiển (control).+ Xử lý nhập liệu của người dùng.+ Hiển thị thông tin.+ Truy cập các tài nguyên: bộ nhớ, máy in, files, thư mục, các CSDL trên

hệ thống máy khác - Sử dụng các công cụ để thiết kế giao diện cho Form.

+ Kéo thả các điều khiển trên thanh ToolBox vào Form để thiết kế giao diện.

+ Sử dụng các chức năng của thanh Layout để căn chỉnh nhanh các điều khiển trên Form.

+ Sử dụng TabOrder để thiết lập thứ tự chuyển focus đến các điều khiển khi người dùng nhấn phím Tab.- Tìm hiểu về sự kiện

+ Mô hình lập trình GUI (Graphical User Interface) có cơ chế lập trình điều khiển sự kiện. Khi người dùng có một hành động nào đó: click vào nút bấm, di chuyển chuột trên form, … sẽ có một sự kiện phát sinh.

+ Một số sự kiện phát sinh mà không cần sự can thiệp trực tiếp từ người dùng: sự kiện tick của timer, sự kiện Load của form, …

+ Cách gắn thêm ủy quyền vào một sự kiện của FormBước 1: Khai báo phương thức ủy quyền có kiểu trả về là void, có 2 tham

số kiểu object và EventArgsprivate void frmBoard_Resize(object sender, EventArgs e) { // Hiển thị chiều rộng và chiều cao của form lên tiêu đề form this.Text = Width.ToString() + "," + Height.ToString(); } + Bước 2: Thêm ủy quyền phương thức vào sự kiện: ví dụ trong sự kiện

Load Form hoặc InitializeComponent viết lệnh:this.Resize += new System.EventHandler(this.frmBoard_Resize);

- Các thuộc tính, phương thức, sự kiện cơ bản của Form+ Các thuộc tính thường dùng của Form: AcceptButton, ActiveMDIChild,

CancelButton, FormBorderStyle, Menu, Opacity, MaximizeBox, MinimizeBox, ShowInTaskbar, StartPosition, WindowState

+ Các phương thức thường dùng của Form: Activate, Close, CenterToScreen, ShowDialog, Show

+ Các sự kiện thường dùng của Form: Activated, Click, Deactivate, FormClosed, FormClosing, GotFocus, Load, Resize

Page 17: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

4.2. Các kiến thức chung về điều khiển (Control) trong ứng dụng Windows Form (1 tiết)- Lớp Control là lớp cơ sở của tất cả các điều khiển.- Các nhóm điều khiển (Control): Các điều khiển cơ bản (Basic control), Các điều khiển lựa chọn (Value setting), Các điều khiển chọn giá trị từ danh sách ( Selection List), Điều khiển có thể mang các điều khiển khác (Grouping), …

+Các điều khiển cơ bản (Basic Controls): Là các điều khiển thường xuyên được sử dụng, ví dụ Label, Button, TextBox

+Điều khiển lựa chọn giá trị: Các điều khiển này cho phép chọn một phương án hoặc nhiều phương án từ tập các phương án đã cho. Ví dụ: RadioButton, CheckBox

+Điều khiển lựa chọn giá trị từ danh sách: Các điều khiển này cho phép chọn giá trị từ một danh sách giá trị đã cho. Ví dụ: ListBox, NumericUpDown, ComboBox

+Điều khiển nhóm: Các điều khiển này cho phép nhóm các điều khiển khác nhau như Label, TextBox, Button thành một nhóm để hiển thị hoặc mang thông tin nào đó cho người dùng: Panel, GroupBox

+Điều khiển đồ họa: Các điều khiển này cho phép hiển thị hình ảnh trên Form: PictureBox

+Điều khiển trình đơn (menu): Các điều khiển này cho phép tạo menu chính hoặc menu ngữ cảnh giống như các ứng dụng Window như Microsoft Word, Excel

+Điều khiển nhập giá trị ngày giờ: Cho phép hiển thị hoặc lựa chọn giá trị ngày tháng: DateTimePicker- Các thuộc tính, phương thức,sự kiện thông dụng của lớp Control

+ Các thuộc tính cơ bản: AllowDrop, Anchor, AutoScrollOffset, BackColor, BackgroundImage, BackgroundImageLayout, Top, Bottom, Left, Right, …

+ Phương thức cơ bản: Focus, FindForm, … + Các sự kiện: Click, DoubleClick, MouseEnter, MouseLeave,

MouseDown, MouseUp, MouseMove, MouseHover, MouseWheel, KeyDown, KeyPress, KeyUp, DragDrop, DragEnter,DragLeave, DragOver, Paint, …- Thêm điều khiển vào Form sử dụng Windows Forms Designer and Toolbox, tìm hiểu mã lệnh trong Windows Forms Designer.- Thêm điều khiển vào Form lúc thực thi.

+ Khai báo và tạo đối tượng điều khiển cần thêm.

Page 18: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Thiết lập các thuộc tính cho đối tượng: Location (vị trí), Size (Kích thước), Name (Tên), …

+ Để thêm điều khiển vào Form, dùng lệnh this.Controls.Add(tên điều khiển), hoặc this.Controls.AddRange(mảng các điều khiển);

- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1], tập 2 chương 1 và 2Đọc và làm bài tập trong tài liệu [4] từ trang 540 - 575Tự đọc ví dụ trong tài liệu.

Bài giảng 8: Lập trình Windows Form (tiếp)Chương 4, mục 4.3Tiết thứ: 22 - 24 Tuần thứ: 8

- Mục đích, yêu cầu:+ Nắm được cách sử dụng các điều khiển cơ bản để xây dựng giao diện cho người dùng tương tác với ứng dụng.+ Biết cách điều khiển sự kiện của các điều khiển.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

4.3 Các điều khiển cơ bản (3 tiết) - Các điều khiển cơ bản: Button, Label, TextBox, …

+ ButtonChức năng: Cho phép người dùng tương tác với ứng dụng, người dùng có

thể Click vào Button để yêu cầu thực hiên một hành động nào đó.Thuộc tính: DialogResult, Enabled, FlatStyle, Image, Name, TextPhương thức: Focus, PerformClickSự kiện: Click, DoubleClick, MouseDoubleClick+ LabelChức năng: Điều khiển Label dùng để hiển thị thông tin chi tiết. Mục đích

chính của Label dùng để ghi chú thích cho các điều khiển khác.+ Các thuộc tính thường dùng: Name, Text, TextAlign, UseMnemonic.Phương thức thường dùng: Hide, ShowSự kiện thường dùng: Click+ TextBox và MaskedTextBoxChức năng: TextBox và MaskedTextBox dùng để yêu cầu người dùng

nhập thông tin.

Page 19: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

MaskedTextBox mở rộng chức năng của TextBox trong việc xác thực và kiểm tra: Tổng số ký tự, số và ký tự, các ký tự đặc biệt (/ hoặc -), ký tự hoa – thường.

Thuộc tính thường dùng của TextBox: CharacterCasing, MaxLength, MultiLine, Name, PasswordChar, ReadOnly, Text.

Phương thức: AppendText, Clear, Copy, FocusSự kiện: KeyPress, Leave, TextChangedThuộc tính thường dùng của MaskTextBox: Mask, MaskFull,

MaskCompleted, Name, PromtChar, TextPhương thức: GetPositionFromCharIndex, IsKeyLocked, SelectAllSự kiện: MaskedChanged, MaskedInputRejected.

- Các điều khiển lựa chọn giá trị: CheckBox, RadioButton.+ RadioButton:

Chức năng: Cho phép người dùng chọn một giá trị từ tập các giá trị. Nghĩa là tại một thời điểm chỉ một phương án được chọn từ một tập các phương án đã cho.

Thuộc tính: Appearance, AutoCheck, Checked, ImagePhương thức: PerformClick, Select, ShowSự kiện: CheckedChanged, Click

+ CheckBoxChức năng: Cho phép người dùng chọn nhiều phương án từ tập các phương

án đã cho.Thuộc tính: Checked, CheckState, ThreeStatePhương thức: Select, ShowSự kiện: CheckedChanged, CheckStateChanged, Click

- Các điều khiển chọn giá trị từ danh sách: ListBox, ComboBox, NumericUpDown.+ ListBox

Chức năng: Cho chọn một hoặc nhiều giá trị từ một danh sách các giá trị đã cho. Người dùng không sửa được danh sách các giá trị.

Thuộc tính: DisplayMember, Items, SelectionMode, SelectedIndex, Text, ValueMember

Phương thức: ClearSelected, GetItemText, GetSelected, SetSelectedSự kiện: SelectedIndexChanged, SelectedValueChanged,

ValueMemberChanged.+ ComboBox

Page 20: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

Chức năng: Giống như ListBox, tuy nhiên ComboBox chỉ cho người dùng chọn một giá trị tại một thời điểm. Người dùng cũng có thể gõ thêm giá trị khác ngoài các giá trị có trong danh sách.

Thuộc tính: DropDownStyle, Items, MaxDropDownItems, SelectedItem, SelectedIndex, Text, ValueMember.

Phương thức: GetItemText, SelectAll, SelectSự kiện: DropDown, SelectedIndexChanged, SelectedValueChanged,

ValueMemberChanged.+ NumericUpDown

Chức năng: Cho phép người dùng chọn giá trị số trong khoảng giá trị. Điều khiển này chỉ cho phép chọn một giá trị tại một thời điểm.

Thuộc tính: Increment, Maximum, Minimum, ThousandsSeparator, ValuePhương thức: DownButton, UpButtonSự kiện: ValueChanged

- Các điều khiển đồ họa (Graphic Control) và điều khiển có thể chứa điều khiển khác (Grouping Control) : PictureBox, Panel, GroupBox, SplitContainer.+ Panel

Chức năng: Là điều khiển cho phép chứa các điều khiển khác. Cho phép đặt các điều khiển có quan hệ logic với nhau thành một nhóm.

Thuộc tính: AutoSize, AutoSizeMode, BorderStylePhương thức: Select, ShowSự kiện: StyleChanged, VisibleChanged

+ GroupBoxChức năng: Giống như Panel, dùng để nhóm các điều khiển thành một nhóm.

Điều khiển này có đường viền bao quanh và hiển thị tiêu đề của nhóm.Thuộc tính: Anchor, AutoSize, FlatStylePhương thức: Hide, Show.Sự kiện: Resize, StyleChanged

+ PictureBoxChức năng: Dùng để hiển thị một hình ảnh trên form. Có thể hiển thị các

hình ảnh bitmap như: GIF, JPEG hoặc file icon. PictureBox chỉ hiển thị được 1 ảnh tại một thời điểm.

Thuộc tính: Image, ErrorImage, InitialImage, SizeModePhương thức: Load, LoadAsyncSự kiện: Click, Leave, LoadComplete

+ ImageList

Page 21: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

Chức năng: Là một Componet dùng để lưu trữ tập các hình ảnh. Các hình ảnh trong ImageList dùng để hiển thị lên điều khiển khác: trình đơn (menu), TreeView, ListView.

Thuộc tính: ColorDepth, Images, ImageSize, Name,Phương thức: DrawSự kiện: RectangleHandle.

- Các điều khiển nhập giá trị thời gian: Timer, MonthCalendar, DateTimePicker+ DateTimePicker

Chức năng: Cho phép chọn chọn một giá trị trong tập các giá trị ngày hoặc thời gian. Hình dạng của DateTimePicker giống như TextBox, nó nút hiển thị cửa sổ lịch và ngày hiện tại theo định dạng cụ thể.

Thuộc tính: CustomFormat, Format, MinDate, MaxDate, ShowCheckBox, Value

Phương thức: Focus, ShowSự kiện: Click, FormatChanged, ValueChanged

+ MonthCalendarChức năng: Cho phép hiển thị và lựa chọn một ngày với giao diện dạng lịch.

MonthCalendar giống DateTimePicker, tuy nhiên nó cho chọn nhiều giá trị ngày tháng tại cùng một thời điểm và không hiển thị giá trị thời gian.

Thuộc tính: CalendarDimensions, ShowToday, ShowTodayCircle, ShowWeekNumbers, TodayDate

Phương thức: AddAnnuallyBoldedDate, AddBoldedDate, AddMonthlyBoldedDate, RemoveAnnuallyBoldedDate, RemoveBoldedDate, RemoveMonthlyBoldedDate, SetDate, UpdateBoldedDates,

Sự kiện: Click, DateChanged, DateSelected.+ Timer

Chức năng: Cho phép tự động phát sinh một sự kiện sau một khoảng thời gian. Nó giống như đồng hồ bấm giờ được sử dụng trong cuộc thi chạy để xác định thời gian người chạy chạm đích.

Thuộc tính: Enable, IntervalPhương thức: Start, StopSự kiện: Tick

- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1] tập 2, chương 3, 6Đọc và làm bài tập trong tài liệu [3] phần 2, từ mục 9 (trang 263) – mục 13

(trang 410)

Page 22: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

Tự đọc ví dụ trong tài liệu. Bài giảng 9: Lập trình Windows Form (tiếp )

Chương 4, mục 4.4Tiết thứ: 25 - 27 Tuần thứ: 9

- Mục đích, yêu cầu: + Nắm được cách sử dụng một số điều khiển nâng cao: ListView, RichTextBox, TreeView.+ Sử dụng các hộp thoại: OpenFileDialog, SaveFileDialog, ColorDialog, FontDialog.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

4.4. Các điều khiển nâng cao (3 tiết) - ListView+ Chức năng: Cho phép hiển thị tập các phần tử của nó trong một danh sách. Nó hiển thị giống như mục Views trong thanh công cụ Standard của Windows Explorer. Có 5 cách hiển thị chính:

Tile: Các phần tử được hiển thị theo dòng, với kích thước thực tế của ảnh biểu tượng.

List: Các phần tử được hiển thị theo danh sách kết hợp với ảnh biểu tượng ở chế độ kích thước nhỏ.

Detail: Các phần tử được hiển thị được hiển thị như một danh sách với đầy đủ các thông tin chi tiết.

SmallIcon: Các phần tử hiển thị như một biểu tượng kích thước nhỏ, nhãn được ghi ở bên phải.

LargeIcon: Mỗi phần tử được hiển thị đầu đủ kích thước, nhãn được ghi ở bên dưới.+ Thuộc tính: Columns, Items, MultiSelect, SelectedItems, View+ Phương thức: ArrangeIcons, Clear, GetItemAt, Sort+ Sự kiện: ColumnClick, ItemCheck, ItemSelectionChanged, SelectedIndexChanged. - RichTextBox+ Chức năng: Dùng để hiển thị, nhập và thao tác dữ liệu văn bản. Điều khiển này tương tự ứng dụng WordPad, cho phép định dạng văn bản như: Chữ in đậm, liên kết, thay đổi font, … Điều khiển này cũng có thể nạp văn bản, nhúng hình ảnh từ tệp, cung cấp các thao tác Undo, Redo và tìm kiếm các ký tự.

Page 23: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

Theo mặc định, RichTextBox hiển thị cả thanh cuốn dọc và ngang, nó có thể truy cập các tệp có định dạng RTF (Rich Text Format).+ Thuộc tính: Font, ScrollBars, SelectedText, SelectionFont, SelectionLength, Text, WordWrap+ Phương thức: AppendText, Copy, Paste, Redo, Undo, SelectAll.+ Sự kiện: Click, Hscroll, VScroll- TreeView+ Chức năng: Dùng để hiển thị dữ liệu theo một cấu trúc phân cấp. Điều khiển này tương tự như thanh bên trái của Windows Explorer. Điều khiển TreeView có 3 loại nút (node):

Nút gốc (Root): Là node chính có một hoặc nhiều node con nhưng không có node cha.

Nút cha (Parent): Là node dưới node gốc và có một hoặc nhiều node con.Nút lá: là node có cha nhưng không có node con, là node cuối cùng trong

phân cấp. + Thuộc tính: Nodes, SelectedNode, ShowPlusMinus, ShowRootLines, TopNode+ Phương thức: CollapseAll, ExpandAll, GetNodeAt, GetNodeCount.+ Sự kiện: AfterCollapse, AfterExpand, AfterSelect, ItemDrag, NodeMouseClick- ProgressBar+ Chức năng: Điều khiển ProgressBar được dùng để hiển thị tiến trình của một công việc được thực hiện trong ứng dụng. + Thuộc tính: Increment, Maximum, Minimum, PerformStep, Step, Style, Value- Các hộp thoại:

Hộp thoại là cửa sổ đặc biệt, thường được dùng để tương tác với người dùng và hiển thị thông tin. Các hộp thoại đều được kế thừa từ lớp CommonDialog trong namespace System.Windows.Forms.

Có 2 loại hộp thoại: Các hộp thoại hệ thống (Common Dialog Box) như Open, Save, Print, …, các hộp thoại do người dùng định nghĩa (Custom Dialog Box).

Một số thuộc tính, phương thức, sự kiện thường dùng: Tag, Reset, ShowDialog, HelpRequest.

+ Chọn đường dẫn mở file (OpenFileDialog), Chọn đường dẫn lưu file (SaveFileDialog)

Thuộc tính: CheckFileExists, FileName, Filter, MultiSelect, Title

Page 24: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Chọn màu: ColorDialogChức năng: Cho phép chọn một màu trong hệ thống từ một bảng màu. Nó

cũng cho phép định nghĩa các màu khác sử dụng giá trị các màu RGB. ColorDialog giống như hộp chọn màu trong MicrosoftWord.

Thuộc tính: AllowFullOpen, AnyColor, Color, CustomColors, Reset+ Chọn font chữ: FontDialog.

Chức năng: Cho phép chọn các font đã được cài đặt trong hệ thống. Hộp thoại này thường được dùng để thay đổi font chữ trong một ứng dụng. Người dùng có thể chọn các font, kiểu font, kích thước hoặc các hiệu ứng khác nhau.

Thuộc tính: Color, Font, MaxSize, MinSize, ShowApply, ShowEffects, Apply.

- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1] tập 2, chương 4, 7 Đọc và làm ví dụ trong tài liệu [3] mục 3 từ trang 437 - 603

Bài giảng 10: Lập trình Windows Form – Bài tậpChương 4Tiết thứ: 28 - 30 Tuần thứ: 10

- Mục đích, yêu cầu:+ Ôn tập các kiến thức về lập trình Windows Form.+ Sử dụng các điều khiển cơ bản, xây dựng giao diện người dùng.+ Xây dựng ứng dụng Windows Form để nhập và hiển thị thông tin, sử dụng đa dạng các điều khiển. - Hình thức tổ chức dạy học: Lý thuyết, thảo luận, thực hành- Thời gian: Lý thuyết, thảo luận: 0; Thực hành: 3 tiết - Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

- Xây dựng ứng dụng Windows Form để nhập liệu và hiển thị thông tin (3 tiết).

- Yêu cầu SV chuẩn bị:+ Ôn tập, nắm vững các kiến thức về lập trình Windows Form+ Xây dựng ứng dụng window form để nhập liệu cho một số đối tượng đã

xây dựng trong chương 2.

Bài giảng 11: Lập trình Windows Form (tiếp)Chương 4, mục 4.5Tiết thứ: 31 - 33 Tuần thứ: 11

Page 25: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

- Mục đích, yêu cầu: + Nắm được phương pháp thiết lập, hiển thị Form cha, Form con.+ Cách điều khiển hoạt động các Form trong ứng dụng đa tài liệu.+ Xây dựng được trình đơn chính (Main Menu) cho ứng dụng.+ Xây dựng menu ngữ cảnh, liên kết menu ngữ cảnh vào điều khiển- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

4.5. Ứng dụng đa tài liệu (Multiple Document Interface – MDI) (3 tiết)- Ứng dụng đa tài liệu là ứng dụng có thể mở nhiều cửa sổ (form) con trong một vùng làm việc của ứng dụng. Người dùng có thể làm việc với bất kỳ một cửa sổ nào bằng cách chuyển đến chúng.Một số thuận lợi khi xây dựng ứng dụng đa tài liệu:+ Tổ chức chương trình có hệ thống hơn.+ Sử dụng ít bộ nhớ hơn+ Tăng tính hiệu quả+ Dễ dàng xây dựngCác bất lợi khi xây dựng ứng dụng đa tài liệu: + Người dùng dễ nhầm lẫn khi làm việc với nhiều form.- Thiết lập Form cha, form con+ Một ứng dụng đa tài liệu chỉ chứa một form cha và có thể nhiều form con. Các form con được mở trong form cha. + Để tạo MDI form, gán thuộc tính IsMdiContainer của form bằng true.+ Form con chỉ được mở trong phạm vi của form cha.+ Nếu form cha đóng, tất cả các form con sẽ bị đóng.+ Nếu tất cả các form con bị đóng, form cha không bị đóng.+ Để thiết lập form cha cho một form con, sử dụng thuộc tính MdiParentVí dụ:

this.IsMdiContainer = true;Form frmchild = new Form();frmchild.MdiParent = this;frmchild.Show();

- Các thuộc tính, phương thức, sự kiện của form thường dùng trong ứng dụng MDI: ActiveMdiChild, IsMdiChild, IsMdiContainer, MdiChildren, MdiParent, ActivateMdiChild, LayoutMdi, Show, MdiChildActivate. - Xây dựng ứng dụng có nhiều cửa sổ.

Page 26: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

- Sử dụng thuộc tính MdiChildren của form cha để tìm tất cả các form con trong nó.- Sử dụng thuộc tính MdiParent của form con để tìm form cha.- Trình đơn (Menu):

+ Menu chính (Main Menu) và menu ngữ cảnh (Context Menu)+ Liên kết menu ngữ cảnh vào điều khiển (Control).Sử dụng thuộc tính ContextMenu của điều khiển để liên kết nó với menu

ngữ cảnh.+ Sử dụng một phần menu chính làm cho menu ngữ cảnh.Sử dụng phương thức CloneMenu của lớp MenuItem để sao một phần của

menu chính sang menu ngữ cảnh.- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1] chương 5 Đọc tài liệu [2] mục 6.4, 6.5, 6.11, 6.12Tự đọc ví dụ trong tài liệu

Bài giảng 12: Lập trình Windows Form - Bài tậpChương 4Tiết thứ: 34 - 36 Tuần thứ: 12

- Mục đích, yêu cầu: + Ôn tập các kiến thức về lập trình Windows Form.+ Sử dụng các điều khiển nâng cao để thiết kế các giao diện phức tạp.+ Xây dựng được ứng dụng đa tài liệu, điều khiển hoạt động của các Form trong ứng dụng đa tài liệu.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, thực hành, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận:; Thực hành: 3 tiết Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

+ Xây dựng ứng dụng đa tài liệu, có sử dụng Treeview, ListView trong thiết kế giao diện.- Yêu cầu SV chuẩn bị:

Ôn tập kiến thức lập trình Windows Form, mục 4.4, 4.5Làm bài tập chương 4

Bài giảng 13: Lập trình kết nối cơ sở dữ liệu

Page 27: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

Chương 5, mục 5.1 + 5.2Tiết thứ: 37 - 39 Tuần thứ: 13

- Mục đích, yêu cầu:+ Nắm được các thành phần của ADO.NET.+ Nắm được cách tổ chức của mô hình ứng dụng đa tầng, đa lớp.+ Tìm hiểu các Provider kết nối với các hệ quản trị cơ sở dữ liệu đã học.- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

5.1. Các kiến thức chung về ADO.NET (2 tiết) - Tìm hiểu kiến trúc của ADO.NET

ADO.NET là công nghệ truy cập dữ liệu, cho phép truy cập dữ liệu được lưu ở nhiều nguồn khác nhau. ADO.NET là một phần của .NET Framework, do đó nó được sử dụng cho tất cả các ứng dụng nền .NET.

ADO.NET có thể kết nối đến nhiều hệ thống dữ liệu: Microsoft SQL Server, Oracle, Microsoft Access, … - Mô hình ứng dụng đa tầng, đa lớp+ Kiến trúc một tầng: ứng dụng được chạy và truy cập cơ sở dữ liệu trên máy cá nhân. Giao diện người dùng, kiểm tra logic dữ liệu, dữ liệu được lưu trữ trên cùng 1 máy.+ Kiến trúc hai tầng: là kiến trúc client/server mà cơ sở dữ liệu được lưu trữ và bảo trì ở máy chủ (server). Máy khách (client) kết nối và thao tác với cơ sở dữ liệu ở máy chủ.+ Kiến trúc ba tầng, thường được sử dụng để xây dụng ứng dụng web. Là kiến trúc đa tầng client/server, máy client kết nối đến một hoặc nhiều ứng dụng máy chủ. Các ứng dụng này lại kết nối với cơ sở dữ liệu của máy chủ khác.- Công nghệ ADO.NET- Các đặc tính của ADO.NET+ Xử lý bất đồng bộ+ Thực thi với tập các kết quả trên cùng một kết nối.+ Hỗ trợ dữ liệu XML+ Thực hiện các thao tác copy khối dữ liệu+ Xử lý theo lô+ Dò vết+ Điều khiển tập các kết nối.- Mô hình truy cập dữ liệu

Page 28: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

Có 2 thành phần quan trọng của ADO.NET là DataSet và Provider. Data Provider được sử dụng để cung cấp và bảo đảm kết nối đến CSDL. DataSet dùng để lưu trữ dữ liệu kết quả thu được từ cơ sở dữ liệu nguồn trên máy client. Có thể thao tác và cập nhập dữ liệu trên DataSet độc lập với dữ liệu nguồn ban đầu.- Các lợi ích của công nghệ ADO.NET+ Mô hình lập trình đơn giản+ Dễ tương tác.+ Dễ bảo trì+ Dễ lập trình+ Hiệu quả+ Dễ mở rộng

5.2. Tìm hiểu các Provider dùng để kết nối tới các hệ quản trị CSDL khác nhau (1 tiết)- .Net Framework data cho SQL Server: Cho phép truy cập đến cơ sở dữ liệu Microsoft SQL Server- .Net Framework data cho OLE DB: Cho phép truy cập đến các cơ sở dữ liệu quan hệ như Microsoft Access và Oracle. Nó cung cấp cả giao dịch cục bộ và phân tán.- .NET Framework data cho ODBC: Cho phép truy cập đến các dữ liệu nguồn ODBC. - .NET Framework cho Oracle: Cho phép truy cập dữ liệu Oracle

- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [5] chương 1Chuẩn bị cơ sở dữ liệu ví dụ.

Bài giảng 14: Lập trình kết nối cơ sở dữ liệu (tiếp)Chương 5, mục 5.3Tiết thứ: 40 - 42 Tuần thứ: 14

- Mục đích, yêu cầu: + Nắm được các bước để kết nối, thao tác, đóng kết nối cơ sở dữ liệu.+ Sử dụng được các lớp dùng để thực thi câu lệnh thao tác cơ sở dữ liệu: DataAdapter, DataReader, Command.+ Viết ứng dụng Windows Form kết nối thực hiện các thao tác và hiển thị dữ liệu, kết xuất dữ liệu tạo báo cáo..- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu- Thời gian: Lý thuyết, thảo luận: 3 tiết; Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.

Page 29: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

- Nội dung chính: 5.3 Sử dụng ADO.NET để kết nối ứng dụng với CSDL (3 tiết)

Lớp Connection dùng để tạo một kết nối đến cơ sở dữ liệu. Tương ứng với các Provider khác nhau có các lớp như sau: SqlConnection, OleDbConnection, and OdbcConnection

Lớp Command dùng để tạo đối tượng thực thi các lệnh thao tác cơ sở dữ liệu. Tương ứng với các Provider có các lớp như sau: SqlCommand, OleDbCommand, and OdbcCommand

Lớp DataAdapter dùng để lấy dữ liệu nguồn vào một DataTable hoặc một DataSet. Tương ứng với các Provider có các lớp: SqlDataAdapter, OleDbDataAdapter, and OdbcDataAdapter

Lớp DataReader dùng để đọc từng dòng từ cơ sở dữ liệu, sử dụng đối tượng Command. Có các lớp SqlDataReader, OleDbDataReader, and OdbcDataReader

Để thao tác với cơ sở dữ liệu Microsoft Sql Server, ta sử dụng các lớp có tiền tố Sql.- Tìm hiểu các lớp Data, DataSet- Tạo Connection để kết nối đến CSDL

+ Các thuộc tính thường dùng: ConnectionString , ConnectionTimeout , Database, DataSource, PacketSize, ServerVersion, State, WorkstationId

+ Các phương thức thường dùng: BeginTransaction(), ChangeDatabase(), Close(), CreateCommand(), Open()

+ Sự kiện: StateChange, InfoMessage - Tạo Command để thực thi câu lệnh thao tác CSDL.

+ Thuộc tính: CommandText,CommandTimeout, CommandType, Connection, DesignTimeVisible, Parameters, Transaction, UpdatedRowSource

+ Phương thức: Cancel(), CreateParameter(), ExecuteNonQuery(), ExecuteReader(), ExecuteScalar(), ExecuteXmlReader(), Prepare(), ResetCommandTimeout()- Sử dụng DataAdapter để lấy dữ liệu từ CSDL nguồn vào DataSet

+ Thuộc tính: AcceptChangesDuringFill, ContinueUpdateOnError, DeleteCommand, InsertCommand, MissingMappingAction, MissingSchemaAction, SelectCommand, TableMappings, UpdateCommand

+ Phương thức: Fill(), FillSchema(), GetFillParameters(), Update()+ Sự kiện: FillError, RowUpdating, RowUpdated

- Đọc từng bản ghi với DataReader+ Thuộc tính: Depth, FieldCount, IsClosed, RecordsAffected

Page 30: fit.mta.edu.vnfit.mta.edu.vn/files/FileMonHoc/De cuong bai giang_ NNLT2... · Web viewBỘ MÔN DUYỆT Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG

+ Phương thức: Để lấy giá trị tại một ô của bản ghi hiện thời, dùng các phương thức Get tương ứng với kiểu dữ liệu của cột đó. Ví dụ: GetDateTime(), GetDecimal(), GetDouble(), …

- Nạp dữ liệu vào các control- Yêu cầu SV chuẩn bị:Đọc trước tài liệu [1] tập 3 chương 1, 2, 3, 4Tìm hiểu ứng dụng ví dụ trong tài liệu [1] tập 3 Đọc và làm ví dụ trong tài liệu 5 từ chương 7 – chương 12

Bài giảng 15: Lập trình kết nối cơ sở dữ liệu – thực hànhChương 5 – thực hànhTiết thứ: 43 - 45 Tuần thứ: 15

- Mục đích, yêu cầu: + Ôn tập củng cố lại các kiến thức trong chương 5.+ Viết ứng dụng thực hiện chức năng cập nhật, kết xuất báo cáo đối với cơ sở dữ liệu ví dụ đã xây dựng. + Hệ thống lại các bài tập ôn luyện thi kết thúc học phần.- Hình thức tổ chức dạy học: Lý thuyết, thực hành, thảo luận, tự học, tự nghiên cứu- Thời gian: Thực hành 3 tiết, Tự học, tự nghiên cứu: 3 tiết- Địa điểm: Giảng đường do P2 phân công.- Nội dung chính:

+ Xây dựng ứng dụng Windows Form kết nối với cơ sở dữ liệu đã xây dựng từ trước.

+ Giải đáp các câu hỏi về nội dung học, thi kết thúc học phần (1 tiết).- Yêu cầu SV chuẩn bị:+ Nắm chắc thời gian, địa điểm, quy chế, nội dung thi kết thúc học phần.