Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng

Khái niệm ngôn ngữ C#

C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mười kiểu dữ

liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu trúc, hướng

đối tượng, hướng thành phần (component oriented).

Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu

mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết. C# có những từ khoá

dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới. C# hỗ trợ

đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình.

Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt

như C++. Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp trong tập

tin mã nguồn. Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạng XML.

C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java). Một lớp chỉ có thể

kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện.

C# có kiểu cấu trúc, struct (không giống C++). Cấu trúc là kiểu hạng nhẹ và bị

giới hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt giao

diện.

C# cung cấp những đặc trưng lập trình hướng thành phần như property, sự kiện

và dẫn hướng khai báo (được gọi là attribute). Lập trình hướng component được hỗ

trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các lớp bao gồm

các phương thức và thuộc tính, các thông tin bảo mật .

Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên là các

thư viện liên kết động (DLL) hay tập tin thực thi (EXE). Trong .NET một assembly

là một đơn vị của việc tái sử dụng, xác định phiên bản, bảo mật, và phân phối.

CLR cung cấp một số các lớp để thao tác với assembly.

C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã

đó được xem như không an toàn. CLR sẽ không thực thi việc thu dọn rác tự động

các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải phóng.

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 1

Trang 1

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 2

Trang 2

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 3

Trang 3

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 4

Trang 4

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 5

Trang 5

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 6

Trang 6

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 7

Trang 7

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 8

Trang 8

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 9

Trang 9

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 119 trang duykhanh 8740
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng

Giáo trình Mô đun Kỹ thuật lập trình nâng cao - Tin học ứng dụng
c ti ếp v ới đố i t ượng đang xét. 
 Để hi ểu rõ cách s ử d ụng các ph ươ ng th ức trên. Chúng ta cùng th ực hi ện chu ẩn hoá 
một chu ỗi h ọ tên c ủa ng ười dùng v ới các yêu c ầu: 
 • Cắt b ỏ h ết các kho ảng tr ắng d ư ở đầ u cu ối chu ỗi. Các t ừ cách nhau m ột kho ảng 
tr ắng n ếu phát hi ện có nhi ều h ơn 1 kho ảng tr ắng thì th ực hi ện c ắt b ỏ. 
 • Vi ết hoa ch ữ cái đầ u tiên c ủa m ỗi t ừ, các ch ữ cái ti ếp theo thì vi ết th ường. 
 Ý t ưởng: 
 • Cắt kho ảng tr ắng d ư ở đầ u và cu ối chu ỗi thì ta có th ể s ử d ụng ph ươ ng 
th ức Trim . 
 • Kho ảng tr ắng ở gi ữa thì ta s ẽ duy ệt c ả chu ỗi n ếu phát hi ện có 2 kho ảng tr ắng thì 
thay th ế nó b ằng 1 m ột kho ảng tr ắng. Để làm điều này ta có th ể dùng: 
 o IndexOf để phát hi ện kho ảng tr ắng. 
 o Replace để thay th ế 2 kho ảng tr ắng thành 1 kho ảng tr ắng. 
 • Vi ết hoa ch ữ cái đầ u và vi ết th ường các ch ữ cái còn l ại thì ta có th ể cắt chu ỗi h ọ 
tên ra thành các t ừ và ứng v ới m ỗi t ừ ta th ực hi ện nh ư yêu c ầu đề bài. Để làm điều này 
ta có th ể s ử d ụng: 
 o Split để c ắt ra các t ừ. 
 o Substring để c ắt ra các ch ữ cái mong mu ốn. 
 o ToUpper để vi ết hoa và ToLower để vi ết th ường. 
 Bây gi ờ các b ạn hãy làm th ử tr ước khi xem code tham kh ảo c ủa mình nào! 
 Sau đây là code tham kh ảo để gi ải quy ết các v ấn đề trên: 
 static void Main( string [] args) 
 { 
 /* 
 * Khai báo 1 bi ến ki ểu chu ỗi tên là FullName 
 * Khai báo 1 bi ến Result ch ứa k ết qu ả chu ẩn hoá chu ỗi. 
 * Giá tr ị bi ến FullName được nh ập t ừ bàn phím. 
KHOA CÔNG NGH Ệ THÔNG TIN 107 
 Bài 5: Thao tác v ới chu ỗi 
 */ 
 string FullName; 
 string Result = "" ; 
 Console.Write( " Moi ban nhap ho va ten: " ); 
 FullName = Console.ReadLine(); 
 /* C ắt các kho ảng tr ắng d ư ở đầ u và cu ối chu ỗi */ 
 FullName = FullName.Trim(); 
 /* 
 * Trong khi còn tìm th ấy 2 kho ảng tr ắng 
 * thì th ực hi ện thay th ế 2 kho ảng tr ắng b ằng 1 kho ảng tr ắng 
 */ 
 while (FullName.IndexOf( " " ) != -1) 
 { 
 FullName = FullName.Replace( " " , " " ); 
 } 
 /* 
 * C ắt chu ỗi h ọ tên ra thành m ảng các t ừ. 
 * Sau đó duy ệt m ảng để chu ẩn hoá t ừng t ừ m ột. 
 * Khi duy ệt m ỗi t ừ ta th ực hi ện c ắt ra ch ữ cái đầ u trên và l ưu trong bi ến 
 FirstChar 
 * C ắt các ch ữ cái còn l ại và l ưu trong bi ến OtherChar. 
 * Th ực hi ện vi ết hoa ch ữ cái đầ u và vi ết th ường các ch ữ cái còn l ại. 
 * Cu ối cùng là l ưu ch ữ v ừa chu ẩn hoá vào bi ến Result. 
 */ 
 string [] SubName = FullName.Split( ' ' ); 
 for (int i = 0; i < SubName.Length; i++) 
 { 
KHOA CÔNG NGH Ệ THÔNG TIN 108 
 Bài 5: Thao tác v ới chu ỗi 
 string FirstChar = SubName[i].Substring(0, 1); 
 string OtherChar = SubName[i].Substring(1); 
 SubName[i] = FirstChar.ToUpper() + OtherChar.ToLower(); 
 Result += SubName[i] + " " ; 
 } 
 Console.WriteLine( " Ho ten cua ban la: " + Result); 
 Console.ReadKey(); 
 } 
 Kết qu ả th ực hi ện: 
 5.2. Thao tác trên chu ỗi dùng StringBuilder 
 Lớp StringBuilder được .NET xây d ựng s ẵn giúp chúng ta thao tác tr ực ti ếp v ới 
chu ỗi g ốc và giúp ti ết ki ệm b ộ nh ớ h ơn so v ới l ớp String . 
 Đặc điểm c ủa StringBuilder là: 
 • Cho phép thao tác tr ực ti ếp trên chu ỗi ban đầ u. 
 • Có kh ả n ăng t ự m ở r ộng vùng nh ớ khi c ần thi ết. 
 • Không cho phép l ớp khác k ế th ừa. 
 Từ 2 đặ c điểm này đã làm n ổi b ật lên ưu điểm c ủa StringBuilder so v ới String đó là 
ít t ốn b ộ nh ớ. C ụ th ể qua ví d ụ sau: 
 string Value = "Nguyen"; 
 Value = Value + "Dang"; 
 Ở 2 dòng l ệnh ta có th ể th ấy b ộ nh ớ s ẽ được l ưu tr ữ nh ư sau: 
 • Đầu tiên t ạo 1 vùng nh ớ đố i t ượng ki ểu string tên là Value. 
 • Tạo 1 vùng nh ớ ch ứa giá tr ị “Dang” 
KHOA CÔNG NGH Ệ THÔNG TIN 109 
 Bài 5: Thao tác v ới chu ỗi 
 • Khi th ực hi ện toán t ử c ộng trên 2 chu ỗi s ẽ t ạo ra 1 vùng nh ớ n ữa để ch ứa giá tr ị 
chu ỗi m ới sau khi c ộng. 
 • Cu ối cùng là phép gán s ẽ th ực hi ện tr ỏ đố i t ượng Value sang vùng nh ớ ch ứa 
chu ỗi k ết qu ả c ủa phép c ộng. 
 Nh ư v ậy ta th ấy s ẽ có 1 vùng nh ớ không s ử d ụng nh ưng v ẫn còn n ằm trong b ộ nh ớ, 
đó là vùng nh ớ ch ứa giá tr ị “Nguyen” – giá tr ị ban đầ u c ủa bi ến Value. 
 Đối v ới StringBuilder thì khác: 
 StringBuilder MutableValue = new StringBuilder("Nguyen"); 
 MutableValue.Append("Dang"); 
 Ở 2 dòng l ệnh trên bộ nh ớ sẽ l ưu tr ữ nh ư sau: 
 • Tạo m ột vùng nh ớ cho đố i t ượng MutableValue ch ứa giá tr ị “ Nguyen ”. 
 • Tạo m ột vùng nh ớ ch ứa giá tr ị “ Dang ”. 
 • Mở r ộng vùng nh ớ c ủa MutableValue để n ối chu ỗi “Dang” vào sau chu ỗi 
“Nguyen”. 
 Rõ ràng là ta không t ạo ra quá nhi ều vùng nh ớ và c ũng không lãng phí b ất c ứ vùng 
nh ớ nào. 
 Sử d ụng 
 Cách kh ởi t ạo 1 đố i t ượng StringBuilder có đôi chút khác so v ới String . 
 Cú pháp: 
 Kh ởi t ạo m ột đố i t ượng r ỗng: 
 StringBuilder = new StringBuilder (); 
 Kh ởi t ạo m ột đố i t ượng ch ứa 1 chu ỗi cho tr ước: 
 StringBuilder = new StringBuilder (); 
 Trong l ớp StringBuilder có các ph ươ ng th ức nh ư: Remove , Insert , Replace được s ử 
dụng hoàn toàn gi ống nh ư l ớp String . 
 Ch ỉ có vài ph ươ ng th ức m ới các b ạn c ần chú ý: 
 Bảng 5-2 Ph ươ ng th ức l ớp StringBuilder 
KHOA CÔNG NGH Ệ THÔNG TIN 110 
 Bài 5: Thao tác v ới chu ỗi 
 Lưu ý: 
 • Các b ạn nh ớ đây là đối t ượng ki ểu StringBuilder nên thao tác v ới chu ỗi nh ư 
gán, n ối chu ỗi, . . . ph ải thông qua các ph ươ ng th ức ch ứ không th ể th ực hi ện tr ực ti ếp 
được. 
 • Gi ữa String và StringBuilder đều có cái hay riêng c ủa nó. Tu ỳ vào t ừng yêu c ầu 
của bài toán mà nên s ử d ụng cho h ợp lý, tránh l ạm d ụng quá nhi ều 1 ki ểu: 
 o Thông th ường đố i v ới các bài toán đòi h ỏi thao tác nhi ều v ới chu ỗi g ốc nh ư 
 cộng chu ỗi, chèn chu ỗi, xoá b ỏ m ột s ố ký t ự, . . . thì nên s ử d ụng StringBuilder để 
 tối ưu b ộ nh ớ. 
 o Còn l ại thì nên s ử d ụng String để vi ệc thao tác thu ận ti ện h ơn. 
 5.3. S ử d ụng bi ểu th ức quy t ắc qua l ớp Regex 
 Namspace System.Text.RegularExpressions c ủa th ư vi ện BCL (Base Class Library) 
ch ứa đự ng t ất c ả các đố i t ượng liên quan đến bi ểu th ức quy t ắc trong môi tr ường .NET. 
Và l ớp quan tr ọng nh ất mà bi ểu th ức quy t ắc h ỗ tr ợ là Regex. 
 Sử d ụng Regex để tìm ki ếm t ập h ợp: 
 Th ực hi ện vi ệc tìm ki ếm m ột chu ỗi m ột cách l ập đi l ặp l ại cho đế n h ết chu ỗi, và k ết 
qu ả tr ả v ề là m ột t ập h ợp. T ập h ợp được tr ả v ề có ki ểu là MatchCollection, bao g ồm 
không có hay nhi ều đố i t ượng Match. Hai thu ộc tính quan tr ọng c ủa nh ững đố i 
tượng Match là chi ều dài và giá tr ị c ủa nó. 
 Các l ớp trong trong namespace System.Text.RegularExpresions: 
 Bảng 5-3 Các l ớp trong trong namespace System.Text.RegularExpresions 
KHOA CÔNG NGH Ệ THÔNG TIN 111 
 Bài 5: Thao tác v ới chu ỗi 
 Lớp Mô t ả 
Regex Lớp th ực hi ện các ho ạt độ ng c ủa bi ểu th ức. 
Capture Th ể hi ện k ết qu ả c ủa m ột chu ỗi đơn 
CaptureCollection Th ể hi ện m ột t ập h ợp các đố i t ượng Capture 
Group Th ể hi ện k ết qu ả c ủa m ột nhóm l ưu tr ữ (bi ểu th ức được vi ết 
 trong ngo ặc) 
GroupCollection Th ể hi ện m ột t ập h ợp c ủa đố i t ượng Group 
Match Dò tìm trên pattern xem có xu ất hi ện m ột RE hay không r ồi tr ả 
 về k ết qu ả chính xác nh ư là m ột đố i t ượng Match duy nh ất. 
MatchCollection Th ể hi ện m ột t ập h ợp c ủa đố i t ượng Match 
MatchEvaluator Một delegate được s ử d ụng trong su ốt bi ểu th ức – dựa vào các 
 ho ạt độ ng thay th ế text 
 Các ph ươ ng th ức c ủa Regex : 
 Bảng 5-4 Các ph ươ ng th ức c ủa Regex 
Ph ươ ng th ức Mô t ả 
Match Tìm ki ếm trên pattern xem có xu ất hi ện m ột RE hay không r ồi tr ả 
 về k ết qu ả chính xác nh ư là m ột đố i t ượng Match duy nh ất. 
Matches Tìm ki ếm trên pattern xem t ất c ả các xu ất hi ện c ủa m ột RE có hay 
 không r ồi tr ả v ề t ất c ả nh ững so kh ớp thành công xem nh ư Match 
 được g ọi nhi ều l ần 
KHOA CÔNG NGH Ệ THÔNG TIN 112 
 Bài 5: Thao tác v ới chu ỗi 
IsMatch Tr ả v ề m ột giá tr ị boolean để ki ểm tra s ự phù h ợp được tìm th ấy 
Replace Th ực hi ện m ột ho ạt độ ng thay th ế c ủa chu ỗi bi ểu th ức h ợp l ệ 
Split Tách m ột chu ỗi phù h ợp b ởi bi ểu th ức h ợp l ệ 
Unescape Cho unescape b ất c ứ nh ững ký t ự nào được escape trên pattern 
 5.4. Bài t ập áp d ụng 
 1. Nh ập 2 chu ỗi so sánh 2 chu ỗi có phân bi ệt hoa th ường? 
 2. Nh ập 2 chu ỗi so sánh 2 chu ỗi không phân bi ệt hoa th ường? 
 3. Đếm độ dài c ủa m ột chu ỗi nh ập vào? 
 4. Ki ểm tra chu ỗi nh ập vào có b ằng ch ữ ”N” hay không? 
 5. Nh ập vào m ột chu ỗi hi ển th ị chu ỗi ký t ự t ừ 3 đế n 6? 
 6. Nh ập vào m ột chu ỗi xóa chu ỗi ký t ự t ừ 3 đế n 6? 
 7. Nh ập vào m ột chu ỗi, thay th ế ký t ự ’u’ thành ký t ự ’-’. 
 8. Nh ập vào m ột chu ỗi, tách chu ỗi t ừ các kho ảng tr ắng ’ ’ thành t ừng ph ần t ử trong 
mãng? 
 9. Nh ập vào một chu ỗi, hi ển th ị các ký t ự trong mãng? 
 10. Cắt l ấy tên file trong đường d ẫn sau: s=”@ C:\Windows\Boot\DVD\EFI\en-
US.bin”. 
 11. Viêt ch ươ ng trình tách h ọ và ch ữ lót, tên sau: Nguyen Gia Quang Dang 
KHOA CÔNG NGH Ệ THÔNG TIN 113 
 TÀI LI ỆU THAM KH ẢO 
[1] Dươ ng Quang Thi ện, “Sổ tay k ỹ thu ật Visual C#”, ĐHQG TPHCM, 2016 
[2] Nguy ễn Trung Tr ực, “Kỹ thu ật l ập trình”, ĐHQG TPHCM, 2016 
[3] https://nguyenanhtuanweb.wordpress.com , 15/8/2020 
[4] https://www.mastercode.vn , 15/8/2020 
[5] https://docs.microsoft.com/en-us/, 15/8/2020 
KHOA CÔNG NGH Ệ THÔNG TIN 114 
 DANH M ỤC HÌNH 
Hình 1-1 Giao di ện ch ươ ng trình Console App .......................................................... 12 
Hình 1-2 Hình t ạo project Console ............................................................................. 14 
Hình 1-3 Giao di ện code Console v ừa t ạo .................................................................. 14 
Hình 1-4 K ết qu ả ch ạy đầ u ti ền .................................................................................. 15 
Hình 1-5 Cách ghi chú thích trong Code C# .............................................................. 18 
Hình 2-1 K ết qu ả ví d ụ dùng l ệnh Console.WriteLine ................................................ 26 
Hình 2-2 K ết qu ả các l ệnh nh ập xu ất ......................................................................... 31 
Hình 2-3 nh ững ph ươ ng th ức chuy ển đổ i s ẵn ............................................................. 38 
Hình 4-1 Giao di ện t ạo m ới project ............................................................................ 76 
Hình 4-2 Giao di ện ki ểu ứng d ụng l ập trình ............................................................... 77 
Hình 4-3 Giao di ện nh ập tên phiên b ản làm vi ệc c ủa project ...................................... 77 
Hình 4-4 Giao di ện sau khi t ạo project thành công ..................................................... 78 
Hình 4-5 Giao di ện thi ết k ế ........................................................................................ 79 
Hình 4-6 Giao di ện công c ụ h ỗ tr ợ thi ết k ế (Toolbox) ................................................ 80 
Hình 4-7 Giao di ện thi ết k ế ........................................................................................ 81 
Hình 4-8 Đặt thu ộc tính text ...................................................................................... 81 
Hình 4-9 Đặt thu ộc tính Button .................................................................................. 82 
Hình 4-10 Các s ự ki ện th ường dùng........................................................................... 85 
Hình 4-11 Hình các thu ộc tính c ơ b ản c ủa Label ........................................................ 86 
Hình 4-12 Các thu ộc tính c ủa Textbox ....................................................................... 87 
Hình 4-13 Giao di ện thi ết k ế ListBox ........................................................................ 88 
Hình 4-14 Giao di ện Add Item vào ListBox và k ết qu ả .............................................. 89 
Hình 4-15 Ví d ụ s ử d ụng ComboBox ......................................................................... 90 
Hình 4-16 Giao di ện thi ết k ế TreeView ..................................................................... 90 
Hình 4-17 K ết qu ả th ực hi ện ví d ụ TreeView ............................................................. 92 
Hình 4-18 Giao di ện thi ết k ế MenuStrip .................................................................... 93 
Hình 4-19 Giao di ện thi ết k ế ContextMenuStrip ........................................................ 93 
Hình 4-20 K ết qu ả th ực hi ện ví d ụ ContextStrip ........................................................ 95 
Hình 4-21 Giao di ện thi ết k ế SaveFileDialogBox ...................................................... 97 
Hình 4-22 Font and Color DialogBox ........................................................................ 97 
Hình 4-23 K ết qu ả th ực hi ện Font and Color DialogBox ............................................ 98 
KHOA CÔNG NGH Ệ THÔNG TIN 115 
 DANH M ỤC B ẢNG BI ỂU 
Bảng 1-1 L ịch s ử .NET Framework ............................................................................. 5 
Bảng 2-1 B ảng danh sách t ừ khóa C# ........................................................................ 23 
Bảng 2-2 Các ki ểu d ữ li ệu trong C# ........................................................................... 33 
Bảng 2-3 B ảng Ki ểu tham chi ếu th ường dùng............................................................ 36 
Bảng 2-4 Các toán t ử s ố h ọc ...................................................................................... 39 
Bảng 2-5 B ảng toán t ử gán giá tr ị .............................................................................. 40 
Bảng 2-6 B ảng phép toán so sánh .............................................................................. 42 
Bảng 2-7 B ảng toán t ử logic ...................................................................................... 43 
Bảng 2-8 B ảng thu ộc tính và ph ươ ng th ức c ủa l ớp System.Array .............................. 58 
Bảng 4-1 B ảng điều khi ển c ơ b ản .............................................................................. 83 
Bảng 4-2 B ảng s ự ki ện TreeView .............................................................................. 91 
Bảng 4-3 B ảng thu ộc tính OpenFileDialogBox .......................................................... 95 
Bảng 5-1 B ảng các thu ộc tính và ph ươ ng th ức mà l ớp String hỗ tr ợ ........................ 105 
Bảng 5-2 Ph ươ ng th ức l ớp StringBuilder ................................................................. 110 
Bảng 5-3 Các l ớp trong trong namespace System.Text.RegularExpresions .............. 111 
Bảng 5-4 Các ph ươ ng th ức c ủa Regex ..................................................................... 112 
KHOA CÔNG NGH Ệ THÔNG TIN 116 

File đính kèm:

  • pdfgiao_trinh_mo_dun_ky_thuat_lap_trinh_nang_cao_tin_hoc_ung_du.pdf