Tải bản đầy đủ (.pdf) (123 trang)

Bài giảng Thực hành kỹ thuật lập trình: Phần 1 - ĐH Sư Phạm Kỹ Thuật Nam Định

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.68 MB, 123 trang )

Tập bài giảng Thực hành kỹ thuật lập trình

MỤC LỤC
DANH MỤC HÌNH VẼ ................................................................................................ iii
BÀI 1. LẬP TRÌNH TRÊN FORM LÀM VIỆC VỚI CÁC CẤU TRÚC DỮ LIỆU
ĐƠN GIẢN...................................................................................................................... 1
1.1. Làm việc với các cấu trúc dữ liệu đơn giản .......................................................... 1
1.1.1 Tóm tắt kiến thức cần nhớ............................................................................... 1
1.1.2. Bài tập mẫu .................................................................................................... 7
1.1.3. Bài tập thực hành ......................................................................................... 35
1.2.4. Bài tập về nhà ............................................................................................... 50
1.2. Làm việc với mảng 1 chiều .................................................................................... 53
1.2.1. Tóm tắt các kiến thức cần nhớ ..................................................................... 53
1.2.2. Bài tập mẫu .................................................................................................. 53
1.2.3. Bài tập thực hành ......................................................................................... 59
1.2.4. Bài tập về nhà ............................................................................................... 74
1.3. Làm việc với mảng hai chiều .............................................................................. 77
1.3.1. Tóm tắt các kiến thức cần nhớ ..................................................................... 77
1.3.2. Bài tập mẫu .................................................................................................. 77
1.3.3 Bài tập thực hành .......................................................................................... 83
1.3.4. Bài tập về nhà ............................................................................................... 99
1.4. Làm việc với xâu ký tự .....................................................................................101
1.4.1. Tóm tắt các kiến thức cần nhớ ...................................................................101
1.4.2. Bài tập mẫu ................................................................................................ 102
1.4.3. Bài tập thực hành ....................................................................................... 107
1.4.4. Bài tập về nhà ............................................................................................. 116
BÀI 2. LẬP TRÌNH TRÊN FORM XỬ LÝ CÁC CẤU TRÚC DỮ LIỆU NÂNG
CAO ............................................................................................................................ 118
2.1. Làm việc với cấu trúc ....................................................................................... 118
2.1.1. Tóm tắt các kiến thức cần nhớ ...................................................................118
2.1.2. Bài tập mẫu ................................................................................................ 119


2.1.3. Bài tập thực hành ....................................................................................... 128
2.1.4. Bài tập về nhà ............................................................................................. 156
2.2. Làm việc với tệp tin .......................................................................................... 158
2.2.1. Tóm tắt các kiến thức cần nhớ ...................................................................158
2.2.2. Bài tập mẫu ................................................................................................ 160
2.2.3. Bài tập thực hành ....................................................................................... 168
2.2.4. Bài tập về nhà ............................................................................................. 203
i


Tập bài giảng Thực hành kỹ thuật lập trình

BÀI 3. LẬP TRÌNH TRÊN FORM BƢỚC ĐẦU THAO TÁC VỚI CƠ SỞ DỮ LIỆU .206
3.1. Tóm tắt lý thuyết liên quan ...............................................................................206
3.2. Bài tập mẫu .......................................................................................................209
3.3. Bài tập thực hành .............................................................................................. 284
3.4. Bài tập về nhà ...................................................................................................287

ii


Tập bài giảng Thực hành kỹ thuật lập trình

DANH MỤC HÌNH VẼ
Hình 1. 1. Form dạng bản ghi .......................................................................................... 1
Hình 1. 2. Form dạng một nhiều...................................................................................... 2
Hình 1. 3 Cửa sổ Solotion ............................................................................................... 2
Hình 1. 4 Cửa sổ Toolbox .............................................................................................. 2
Hình 1. 5. Giao diện mẫu................................................................................................. 7
Hình 1. 6. Cửa sổ tạo mới một Project ........................................................................... 8

Hình 1. 7. Tạo mới một ứng dụng Windows Forms ....................................................... 8
Hình 1. 8. Hộp thoại Properties ....................................................................................... 9
Hình 1. 9. Kết quả đổi tên Form ...................................................................................... 9
Hình 1. 10 Kéo thả Label vào Form .............................................................................. 10
Hình 1. 11 Kéo thả Textbox vào Form .......................................................................... 10
Hình 1. 12 Thay đổi thuộc tính Textbox ....................................................................... 11
Hình 1. 13. Thay đổi thuộc tính Label........................................................................... 11
Hình 1. 14 Kết quả thiết kế Form .................................................................................. 11
Hình 1. 15 Chạy thử chƣơng trình ................................................................................. 12
Hình 1. 16. Kết quả chạy chƣơng trình ........................................................................ 13
Hình 1. 17. Chƣơng trình tìm UCLN và BCNN ........................................................... 13
Hình 1. 18. Kết quả thiết kế Form tìm UCLN và BCNN .............................................. 15
Hình 1. 19. Kết quả chạy chƣơng trình tìm UCLN và BCNN ...................................... 17
Hình 1. 20. Chƣơng trình tính diện tích và chu vi tam giác .......................................... 18
Hình 1. 21. Kết quả thiết kế Form tính diện tích và chu vi tam giác ............................ 20
Hình 1. 22. Kết quả chạy chƣơng trình tính diện tích và chu vi tam giác ..................... 23
Hình 1. 23. Form chƣơng trình tính tổng ...................................................................... 23
Hình 1. 24 - Kết quả thiết kế Form tính tổng ................................................................ 25
Hình 1. 25. Kết quả chạy chƣơng trình tính tổng .......................................................... 27
Hình 1. 26. Làm việc với Listbox .................................................................................. 27
Hình 1. 27. Kết quả thiết kế Form làm việc với Listbox ............................................... 30
Hình 1. 28. Kết quả chạy chƣơng trình làm việc với Listbox ....................................... 32
Hình 1. 29. Form đăng nhập .......................................................................................... 32
Hình 1. 30. Kết quả thiết kế Form đăng nhập ............................................................... 34
Hình 1. 31. Kết chạy chƣơng trình đăng nhập............................................................... 35
Hình 1. 32. Form thực hiện các phép tốn cơ bản với hai toán hạng ............................ 36
iii


Tập bài giảng Thực hành kỹ thuật lập trình


Hình 1. 33. Kết quả thiết kế Form thực hiện phép tính ................................................. 37
Hình 1. 35. Form giải hệ phƣơng trình bậc nhất ........................................................... 39
Hình 1. 36. Kết quả chạy chƣơng trình giải hệ phƣơng trình bậc nhất ......................... 43
Hình 1. 37. Giải bất phƣơng trình ................................................................................. 43
Hình 1. 38. Kết quả chạy chƣơng trình giải bất phƣơng trình ...................................... 45
Hình 1. 39. Chƣơng trình giải bất phƣơng trình ............................................................ 45
Hình 1. 40. Chƣơng trình giải phƣơng trình .................................................................. 46
Hình 1. 41. Chƣơng trình giải phƣơng trình bậc 2 ....................................................... 47
Hình 1. 42. Giao diện mẫu............................................................................................. 47
Hình 1. 44. Giao diện mẫu............................................................................................. 49
Hình 1. 45. Giao diện mẫu............................................................................................. 50
Hình 1. 46. Giao diện mẫu............................................................................................. 50
Hình 1. 47. Giao diện mẫu............................................................................................. 51
Hình 1. 49 Giao diện mẫu.............................................................................................. 52
Hình 1. 50 Bài tập về mảng một chiều .......................................................................... 53
Hình 1. 51. Thiết kế Form các thao tác trên mảng một chiều ....................................... 55
Hình 1. 52. Kết quả chạy chƣơng trình các thao tác trên mảng một chiều ................... 59
Hình 1. 53. Bài tập mảng một chiều .............................................................................. 59
Hình 1. 54. Kết quả thiết kế Form bài tập mảng một chiều .......................................... 63
Hình 1. 55 Kết quả chạy chƣơng trình khi kích vào nút bổ sung ................................. 68
Hình 1. 56. Kết quả chạy chƣơng trình khi kích vào nút loại bỏ .................................. 69
Hình 1. 57. Kết quả chạy chƣơng trình khi kích vào nút tìm kiếm ............................... 69
Hình 1. 58. Chƣơng trình đổi hệ đếm ............................................................................ 69
Hình 1. 59. Kết quả thiết kế Form chƣơng trình đổi hệ đếm ........................................ 71
Hình 1. 60. Kết quả chạy chƣơng trình đổi hệ đếm ...................................................... 73
Hình 1. 61. Chƣơng trình nhập danh bạ ........................................................................ 75
Hình 1. 62. Chƣơng trình danh sách sinh viên .............................................................. 75
Hình 1. 64. Kết quả chọn một sinh viên ........................................................................ 76
Hình 1. 65. Bài tập về mảng hai chiều .......................................................................... 77

Hình 1. 66. Kết quả thiết kế Form bài tập mẫu về mảng hai chiều ............................... 79
Hình 1. 67. Kết quả chạy chƣơng trình bài tập mẫu về mảng hai chiều ....................... 83
Hình 1. 68. Các thao tác trên mảng hai chiều ................................................................ 83
Hình 1. 69. Kết quả chạy chƣơng trình ......................................................................... 89
Hình 1. 70. Tổng hai ma trận ......................................................................................... 89
Hình 1. 71. Kết quả chạy chƣơng trình ......................................................................... 93
iv


Tập bài giảng Thực hành kỹ thuật lập trình

Hình 1. 72. Form nhập ma trận vng........................................................................... 94
Hình 1. 73. Form Ma trận vng ................................................................................... 95
Hình 1. 74. Kết quả chạy chƣơng trình ......................................................................... 99
Hình 1. 75. Form kiểm tra xâu đối xứng .....................................................................103
Hình 1. 76. Kết quả chạy chƣơng trình kiểm tra xâu đối xứng ...................................104
Hình 1. 77. Chuẩn hóa và đếm từ trong xâu ................................................................ 105
Hình 1. 78. Kết quả chạy chƣơng trình chuẩn hóa và đếm từ trong xâu .....................107
Hình 1. 79. Chƣơng trình xử lý chuỗi .........................................................................107
Hình 1. 80. Kết quả thiết kế Form chƣơng trình xử lý xâu .........................................109
Hình 1. 81. Kết quả chạy chƣơng trình xử lý xâu ....................................................... 112
Hình 1. 82. Chƣơng trình định giá biểu thức hậu tố ....................................................112
Hình 1. 83.Kết quả thiết kế Form định giá biểu thức hậu tố .......................................114
Hình 1. 84. Kết quả chạy chƣơng trình định giá biểu thức hậu tố .............................. 116
Hình 1. 88. Form chuyển biểu thức trung tố đầy đủ ngoặc sang hậu tố .....................116
Hình 2. 1. Form quản lý giáo viên tiểu học .................................................................119
Hình 2. 2 - Kết quả thiết kế Form quản lý giáo viên tiểu học .....................................123
Hình 2. 3. Kết quả chạy chƣơng trình quản lý giáo viên tiểu học ............................... 128
Hình 2. 4. Form quản lý bán xe mơ tơ .........................................................................128
Hình 2. 5. Kết quả chạy chƣơng trình quản lý bán xe mơ tơ .......................................135

Hình 2. 6. Form danh sách sinh viên ...........................................................................135
Hình 2. 7. Kết quả thiết kế Form quản lý sinh viên ....................................................139
Hình 2. 8. Kết quả chạy chƣơng trình quản lý sinh viên .............................................145
Hình 2. 9. Chƣơng trình quản lý lƣơng nhân viên....................................................... 145
Hình 2. 10. Kết quả thiết kế Form quản lý lƣơng nhân viên .......................................149
Hình 2. 11.Kết quả chạy chƣơng trình quản lý lƣơng nhân viên ................................ 155
Hình 2. 12. Form lớp sinh viên cơng nghệ thơng tin ...................................................156
Hình 2. 13. Form Thơng tin mặt hàng .........................................................................160
Hình 2. 14. Form Thơng tin mặt hàng .........................................................................168
Hình 2. 15. Form Quản lý giáo viên ............................................................................168
Hình 2. 16. Kết quả thiết kế Form quản lý giáo viên ..................................................172
Hình 2. 19. Kết quả thiết kế Form quản lý lƣơng nhân viên .......................................182
Hình 2. 20. Kết quả chạy chƣơng trình quản lý lƣơng nhân viên ............................... 190
Hình 2. 21. Chƣơng trình quản lý lƣơng nhân viên.....................................................191
Hình 2. 22. Kết quả thiết kế Form sinh viên khoa cơ khí............................................194
v


Tập bài giảng Thực hành kỹ thuật lập trình

Hình 2. 23. Kết quả chạy chƣơng trình sinh viên khoa cơ khí ....................................203
Hình 2. 24. Quản lý nhân viên nghành mỏ ..................................................................203
Hình 2. 25. Quản lý thuê xe ......................................................................................... 205
Hình 3. 1. Fom thơng tin khách hàng ..........................................................................211
Hình 3. 2. Form thơng tin mặt hàng ............................................................................211
Hình 3. 3. Form chi tiết bán hàng ................................................................................212
Hình 3. 4. Form tìm kiếm thơng tin khách hàng ......................................................... 213
Hình 3. 5. Fom tìm kiếm thơng tin mặt hàng .............................................................. 214
Hình 3. 6. Form tìm kiếm thơng tin bán hàng ............................................................. 215
Hình 3. 7. Form MDI ...................................................................................................217

Hình 3. 8. Kết quả thiết kế Form thơng tin khách hàng ..............................................219
Hình 3. 9. Kết quả chạy Form Thơng tin khách hàng .................................................226
Hình 3. 10. Form Thơng tin mặt hàng .........................................................................227
Hình 3. 11. Kết quả thiết kế Form Thơng tin mặt hàng ..............................................227
Hình 3. 12. Kết quả chạy Form Thơng tin mặt hàng ...................................................234
Hình 3. 13. Kết quả thiết Form Chi tiết bán hàng ....................................................... 235
Hình 3. 14. Kết quả chạy Form Chi tiết bán hàng ....................................................... 242
Hình 3. 15. Kết quả thiết kế Form tìm kiếm khách hàng ............................................243
Hình 3. 16. Kết quả chạy Form Tìm kiếm khách hàng ...............................................244
Hình 3. 17. Kết quả thiết kế Form Tìm kiếm mặt hàng ..............................................245
Hình 3. 18. Kết quả chạy Form Tìm kiếm mặt hàng ...................................................246
Hình 3. 19. Cửa sổ Add New Item ..............................................................................247
Hình 3. 20. Form frmMain .......................................................................................... 247
Hình 3. 21. Cửa sổ Items Collection Editor ................................................................ 248
Hình 3. 22. Kết quả Form Menu chính ........................................................................248

vi


Tập bài giảng Thực hành kỹ thuật lập trình

BÀI 1. LẬP TRÌNH TRÊN FORM LÀM VIỆC VỚI CÁC CẤU TRÚC DỮ LIỆU
ĐƠN GIẢN
Mục tiêu
Sau bài học, sinh viên có khả năng:
- Kiến thức: Biết thiết kế Form và sử dụng C# lập trình trên form để xử lý các
cấu trúc dữ liệu đơn giản và thao tác trên mảng, xâu ký tự.
- Kỹ năng: Vận dụng đƣợc kiến thức thiết kế và lập trình trên form thực hiện
giải các bài toán trong tin học.
- Thái độ:

+ Nghiêm túc, sáng tạo
+ Tích cực tập luyện
Chuẩn bị dụng cụ, vật tƣ, thiết bị
Chuẩn bị máy tính có hệ điều hành Windows XP hoặc cao hơn, phần mềm
Microsoft Office, bộ gõ Tiếng Việt, phần mềm Visual Studio 2008 hoặc cao hơn.
1.1. Làm việc với các cấu trúc dữ liệu đơn giản
1.1.1 Tóm tắt kiến thức cần nhớ
1. Một số điều khiển cơ bản trên Form
a. Form
Form là một đối tƣợng đƣợc sử dụng làm giao diện để thực hiện các tƣơng tác
với cơ sở dữ liệu trong đó có các thao tác cập nhật dữ liệu.
Form để cập nhật dữ liệu có nhiều dạng trong đó có một số dạng thơng dụng.
Chẳng hạn nhƣ:
- Dạng bản ghi

Hình 1. 1. Form dạng bản ghi
- Dạng form một - nhiều

1


Tập bài giảng Thực hành kỹ thuật lập trình

Hình 1. 2. Form dạng một nhiều
Đơi khi cịn phối hợp các dạng này với nhau để tạo thành một dạng mới.
b. Cửa sổ Solution Explorer:
- Hiển thị các Project trong Solution, Project đậm đƣợc chạy đầu tiên
- Hiển thị tất cả các tệp trong Project
- Thanh công cụ
+ Show All files: Hiển thị các tệp

+ Refresh: Đọc lại các tệp
+ View Code: Hiển thị mã lệnh
+ View Design: Hiển thị thiết kế
+ Class Diagram: Hiển thị lƣợc đồ lớp
c. Cửa sổ Toolbox
- Chứa các điều khiển Lập trình trực quan
- Nhóm theo các chức năng

Hình
Hình
1 Cửa
1. 3sổCửa
Solution
sổ Solotion
Explorer

Hình 1. 4 Cửa sổ Toolbox
d. Một số điều khiển cơ bản:
Lable (Nhãn): là điều khiển cho phép ngƣời sử dụng hiển thị chuỗi ký tự trên
biểu mẫu nhƣng không thể thay đổi chuỗi ký tự đó một cách trực tiếp.

2


Tập bài giảng Thực hành kỹ thuật lập trình

Textbox (Ơ nhập liệu) là một điều khiển cho phép nhận thông tin do ngƣời sử
dụng nhập vào. Đối với ô nhập liệu ta cũng có thể dùng để hiển thị thơng tin, thông tin
này đƣợc đƣa vào tại thời điểm thiết kế hay thậm chí ở thời điểm thực thi ứng dụng.
Button: Nút lệnh là một điều khiển dùng để bắt đầu, ngắt hoặc kết thúc một quá

trình. Ngƣời sử dụng ln có thể chọn một nút lệnh nào đó bằng cách nhấn chuột trên
nútlệnh đó. Hoặc có thể nhấn Enter để chọn nút lệnh khi nút đó đang có Focus.
Checkbox: Hộp kiểm hay còn gọi là hộp đánh dấu (Checkbox) là một điều
khiển đƣợc hiểnthị dƣới dạng một ô vuông. Ô vuông này hiển thị dấu lựa chọn nếu
nhƣ đƣợc chọn và để trắng nếu ô không đƣợc chọn. Điều khiển Check box đƣợc dùng
khi muốn nhận thôngtin từ ngƣời sử dụng theo kiểu Yes/No hoặc True/False. Ta cũng
có thể gom nhiềuđiều khiển lại một nhóm (dùng cơng cụ Group box) để hiển thị nhiều
khả năng lựachọn. Khi một check box đƣợc chọn thì giá trị của nó là 1; ngƣợc lại là 0.
Radio button: Công dụng của Radio button cũng tƣơng tự nhƣ Checkbox. Điểm
khác nhau chủ yếu giữa hai loại điều khiển này đó là trong cùng một nhóm (đƣợc tạo
bởi groupbox hay picturebox) tại mỗi thời điểm ta chỉ có thể chọn một radio button
nhƣng có thể đánh dấu chọn nhiều checkbox.
Listbox: Điều khiển này hiển thị một danh sách các đề mục mà ở đó ngƣời sử
dụng có thể chọn lựa một hoặc nhiều đề mục. ListBox giới thiệu với ngƣời sử dụng
một danh sách các lựa chọn. Một cách mặc định các lựa chọn hiển thị theo chiều dọc
trên một cột và bạn có thể thiết lập là hiển thị theo nhiều cột. Nếu số lƣợng các lựa
chọn nhiều và không thể hiển thị hết trong danh sách thì một thanh trƣợt sẽ tự động
xuất hiện trên điều khiển.
Combobox: Điều khiển Combobox có thể đƣợc xem là tích hợp giữa hai điều
khiển Textbox và ListBox. Ngƣời sử dụng có thể chọn một đề mục bằng cách đánh
chuỗi văn bản vào Combobox hoặc chọn một đề mục trong danh sách.
ListView: Là điều khiển dùng cho việc hiển thị dữ liệu dƣới dạng bảng.
Menu: Là một cách tổ chức để lựa chọn các chức năng nào đó cần thực hiện của
một ứng dụng. Có thể trình bày menu dƣới dạng đồ họa kiểu các button hoặc trình bày
dƣới dạng thanh menu có phân cấp. Với dạng menu có phân cấp thì cấp đầu tiên là
menu bar nó gồm một số mục chọn chính gọi là menu pad. Khi một menu pad đƣợc
chọn thì hoặc thực thi cơng việc đƣợc gắn với sự kiện của nó hoặc sẽ thả xuống một
menu con gồm nhiều mục chọn cấp thấp hơn gọi là menu pulldown hoặc menu popup.
Khi một mục của menu này đƣợc chọn thì nó thực thi một công việc gắn với mục chọn
này hoặc tiếp tục mở ra một menu con cấp thấp hơn nữa…Ngƣời ta thƣờng tổ chức

menu trên một form quản lý chung của ứng dụng.
Ngồi ra có thể cịn có nhiều điều khiển khác cũng hay đƣợc sử dụng.
3


Tập bài giảng Thực hành kỹ thuật lập trình

Muốn điều khiển đƣợc các đối tƣợng trên form để thực hiện yêu cầu nào đó,
ngƣời sử dụng phải viết các đoạn mã lệnh nhằm thực hiện các thao tác tƣơng ứng
mong muốn.
2. Một số kiểu dữ liệu dựng sẵn trong C#
Kiểu C#

Kiểu .Net

Byte

Byte

Char

Char

Bool

Boolean

sbyte

Sbyte


short

Int16

ushort

Uint16

Int

Int32

Uint

Uint32

float

Single

double

Double

decimal

Decimal

Long


Int64

Ulong

Uint64

3. Cấu trúc điều khiển
a. Lệnh rẽ nhánh
- Lệnh rẽ nhánh if
Cú pháp :
if (biểu thức điều kiện)
{
// câu lệnh thực thi nếu biểu thức điều kiện đúng
}
- Lệnh rẽ nhánh if… else
Cú pháp:
if (biểu thức điều kiện)
{
// câu lệnh thực thi nếu biểu thức điều kiện đúng
}
else
{
// câu lệnh thực thi nếu biểu thức điều kiện sai
}
- Lệnh if…else lồng nhau
Cú pháp:
4



Tập bài giảng Thực hành kỹ thuật lập trình

if(điều_kiện_1)
{
// nhóm lệnh 1
}
else if(điều_ kiện_2)
{
// nhóm lệnh 2;
}
else{

}
b. Lệnh switch
Cú pháp:
switch (biểu thức điều kiện)
{
case <giá trị 1>: < Khối lệnh 1>; break;
case <giá trị 2>: < Khối lệnh 2>; break;
...
[default: <Khối lệnh>;]
}
c. Lệnh lặp
- Lệnh do…while
Cú pháp:
do {
//Dãy_câu_lệnh;
}while (biểu_thức_điều_kiện);
- Lệnh for
Cú pháp:

for(e1; e2; e3) cơng_việc;
Trong đó:
cơng_việc: đƣợc thực hiện bởi một lệnh đơn hoặc khối lệnh.
e1: thƣờng là biểu thức gán để tạo giá trị ban đầu cho biến điều khiển.
e2: là biểu thức quan hệ logic biểu thị điều kiện để tiếp tục chu trình.
e3: là một tốn tử gán dùng để thay đổi giá trị biến điều khiển.
Có thể sử dụng câu lệnh break để thoát và continue để tiếp tục vòng lặp for.
- Lệnh foreach ... in
Cú pháp:
foreach ( <kiểu tập hợp> <tên truy cập thành phần > in < tên tập hợp>)
<Các câu lệnh thực hiện>
- Lệnh while
Cú pháp:
5


Tập bài giảng Thực hành kỹ thuật lập trình

while (Biểu_thức_điều_kiện)
<Câu_lệnh_thực_hiện>;
d. Lệnh nhảy
- Lệnh break: Dùng để kết thúc hay chuyển hƣớng của câu lệnh rẽ nhánh
switch hay lệnh lặp khi chƣơng trình thực thi gặp nó.
- Lệnh continue: Cho phép chuyển việc thực hiện xử lý đến lần lặp kế tiếp
cho đến khi kết thúc vòng lặp.
- Lệnh nhảy goto: Chuyển điều khiển của chƣơng trình thực hiện trực tiếp đến
nhãn. Thông thƣờng lệnh nhảy goto đƣợc sử dụng để chỉ định đến lệnh case trong lệnh
rẽ nhiều nhánh switch. Ngồi ra lệnh nhảy goto cịn đƣợc sử dụng để chuyển điều
khiển trong các vòng lặp lồng nhau.
e. Cấu trúc kiểm soát ngoại lệ try ... catch

Khi cần kiểm soát lỗi phát sinh của một đoạn mã do quá trình xử lý trong khi
thi hành, ta sử dụng cấu truc try..catch
Cú pháp:
try {
// Các lệnh có khả năng gây lỗi
}
catch ( TypeException1 ex){
// Mã đựơc thực thi khi một ngoại lệ TypeException1 đựơc phát sinh trong
khối try
}
catch ( TypeException2 ex){
// Mã đựơc thực thi khi một ngoại lệ TypeException2 đựơc phát sinh trong
khối try
}
...
catch ( TypeExceptionN ex){
// Mã đựơc thực thi khi một ngoại lệ TypeExceptionN đựơc phát sinh trong
khối try
}
finally
{
// dọn dẹp
}
Nếu khơng có một ngoại lệ nào phát sinh trong khối try thì các mệnh đề catch
sẽ bị bỏ qua, trong trƣờng hợp một trong các câu lệnh bên trong khối try gây ra một
ngoại lệ thì, thì C# sẽ bỏ qua các câu lệnh còn lại trong khối try để đi tìm mã xử lý
ngoại lệ, nếu kiểu ngoại lệ so khớp với kiểu ngoại lệ trong mệnh đề catch, thì mã lệnh
trong khối catch đó sẽ đƣợc thực thi, nếu khơng tìm thấy một kiểu ngại lệ nào đƣợc so
khớp C# sẽ kết thúc phƣơng thức đó và chuyển biệt lệ đó ra phƣơng thức đã gọi
6



Tập bài giảng Thực hành kỹ thuật lập trình

phƣơng thức này quá trình này đƣợc tiếp tục cho đến khi tìm thấy mã xử lý biệt lệ, nếu
khơng tìm thấy mã xử lý biệt lệ trong chuỗi các phƣơng thức gọi nhau, chƣơng trình có
thể chấm dứt và in thơng báo lỗi…
Khối finally chứa đựng đoạn mã mà dọn dẹp tài nguyên hoặc làm bất kì hành
động nào muốn thực hiện vào cuối khối try hay catch. Khối finally đƣợc thực thi dù
có hay khơng có bất kì ngoại lệ nào đƣợc ném ra bởi vì mục tiêu chính của
khối finally là chứa đựng đoạn mã luôn đƣợc thực thi. trình biên dịch sẽ báo lỗi nếu đặt
một lệnh return bên trong khối finally.
1.1.2. Bài tập mẫu
Bài tập 1: Viết chƣơng trình tính tổng T = 1 + 2 + 3 + … + n (n nguyên dƣơng nhập từ
bàn phím) với Form mẫu nhƣ sau:

Hình 1. 5. Giao diện mẫu
Hướng dẫn thực hiện
Phân tích u cầu:
-

-

Trên Form có các đối tƣợng:
o Hai label có các thuộc tính:
Text: “Nhập n”, “Tổng”
Font: Time New Roman
Size: 16
Font style: True
ForeColor: Blue

o Hai textbox có các thuộc tính
Name: txtN, txtTong
Font: Time New Roman
Size: 16
o Hai Button có các thuộc tính
Name: btnTinh, btnThoat
Text: “Tính”, “Thốt”
Font: Time New Roman
Size: 14
Các sự kiện:
7


Tập bài giảng Thực hành kỹ thuật lập trình

o Khi nhấn nút “Tính” chƣơng trình thực hiện tính giá trị biểu thức T =
1 + 2+ 3 +…+ n với n đã đƣợc nhập vào textbox txtN
o Khi nhấn nút “Thốt thì thốt khỏi chƣơng trình”
Các bƣớc thực hiện
1. Tạo Form mới
Trên thanh menu, chọn File/New/Project.

Hình 1. 6. Cửa sổ tạo mới một Project
Trên màn hình xuất hiện cửa sổ New Project, chọn ứng dụng Windows Form
Appication, sau đó nhập tên của Project vào ơ Name, kích vào Browse để chọn thƣ
mục lƣu trữ Project, sau đó chọn OK.

Hình 1. 7. Tạo mới một ứng dụng Windows Forms
2. Đổi tên Form thành BaiTap01
Click lên Form1 ở cửa sổ Design, trên cửa sổ Properties tìm thuộc tính Text

(giá trị mặc định là Form1), đổi thành BaiTap01.

8


Tập bài giảng Thực hành kỹ thuật lập trình

Hình 1. 8. Hộp thoại Properties
Kết quả:

Hình 1. 9. Kết quả đổi tên Form
3. Kéo thả các control từ Toolbox vào Form
Từ thanh Toolbox, kéo thả một Label bỏ vào Form, sau đó di chuyển chuột đến cửa sổ
Properties, chọn thuộc tính Text, đổi từ label1 sang Nhập n.

9


Tập bài giảng Thực hành kỹ thuật lập trình

Hình 1. 10 Kéo thả Label vào Form
Tiếp theo kéo thả một Textbox bỏ vào form.

Hình 1. 11 Kéo thả Textbox vào Form
Trong cửa sổ Properties của textbox này, đổi tên thuộc tính Name từ textBox1 thành txtN.
10


Tập bài giảng Thực hành kỹ thuật lập trình


Hình 1. 12 Thay đổi thuộc tính Textbox
Tƣơng tự thêm vào form một label có thuộc tính Text đổi thành Tổng và một
textbox có thuộc tính Name đổi thành txtTong.

Hình 1. 13. Thay đổi thuộc tính Label
Tiếp theo, kéo một Button từ Toolbox và thả vào Form, đổi thuộc tính Name của
button này là btnTinh, text là Tính.
Kéo thả thêm một Button nữa tƣơng tự trên, Name = btnThoat, Text = Thốt.

Hình 1. 14 Kết quả thiết kế Form
Đƣa chuột về các góc của Form để thay đổi kích thƣớc cửa sổ.
4. Xử lý sự kiện click chuột lên button
11


Tập bài giảng Thực hành kỹ thuật lập trình

Double click vào button Tính (btnTinh), một cửa sổ soạn thảo xuất hiện với nội dung:

Chú ý: Cửa sổ này là Form1.cs tƣơng ứng với Form1.cs[Design].
Phƣơng thức btnTinh_Click đƣợc phát sinh do ta vừa double click vào btnTinh.
private void btnTinh_Click(object sender, EventArgs e)
{
int n = int.Parse(txtN.text);
long s = 0;
for (i=1; itxtTong.Text = s.Tostring();
}
- Xử lý sự kiện click chuột cho button btnThoat.
Quay lại Form1.cs[Design], double click lên button Thoát

Phƣơng thức btnThoat_Click đƣợc phát sinh do ta vừa double click vào btnThoat
private void btnThoat_Click(object sender, EventArgs e)
{
Close();
}
Chạy thử chƣơng trình (F5):

Hình 1. 15 Chạy thử chƣơng trình
Nhập n = 4 và click vào button Tính. Kết quả xuất hiện ở txtTong:

12


Tập bài giảng Thực hành kỹ thuật lập trình

Hình 1. 16. Kết quả chạy chƣơng trình
Click vào button Thốt để kết thúc chƣơng trình.
Yêu cầu mở rộng: Xây dựng thêm các chức năng cho chƣơng trình:
- Kiểm tra điều kiện: textbox txtN không đƣợc phép để trống, dữ liệu nhập vào phải
là số ngun
-

Khi nhập nút “Thốt” chƣơng trình hiện ra hộp thoại hỏi ngƣời sử dụng có thực sự
mn thốt khỏi chƣơng trình hay khơng.

Bài tập 2. Viết chƣơng trình tính ƣớc số chung lớn nhất và bội số chung nhỏ nhất của
2 số nguyên dƣơng nhập từ bàn phím với giao diễn mẫu nhƣ sau:

Hình 1. 17. Chƣơng trình tìm UCLN và BCNN
Yêu cầu thiết kế:

- Nhãn Chƣơng trình tìm UCLN và BCNN: Font Time New Roman, chữ hoa,
in đậm, size 16, căn giữa Form, màu xanh
- Các nhãn nhập số thứ nhất, nhập số thứ hai: Font Time New Roman, size 14,
màu đen.
- Các điều khiển để nhập số thứ nhất, số thứ hai, điều khiển để hiển thị UCLN,
BCNN của hai số nguyên dƣơng là các textbox.
- Các điều khiển “Nhập”, “Tìm UCLN”, “Tìm BCNN”, “Thốt” là các button.
Lập trình cho các sự kiện:
- Khi Load Form:
+ Các textbox để nhập số thứ nhất, số thứ hai, textbox để hiển thị ƣớc chung lớn
nhất và bội chung nhỏ nhất của hai số nguyên dƣơng vô hiệu hóa.
+ Các điều khiển “Tìm UCLN”, “Tìm BCNN” vơ hiệu hóa.
+ Các điều khiển “Nhập”, “Thốt” sáng (cho phép hoạt động).
13


Tập bài giảng Thực hành kỹ thuật lập trình

- Khi ngƣời dùng kích vào nút “Nhập”:
+ Các textbox để nhập số thứ nhất, số thứ hai sáng.
+ Con trỏ đặt tại textbox nhập số thứ nhất, đồng thời các điều khiển “Tìm
UCLN” và “BCNN” sáng lên (cho phép hoạt động).
- Khi ngƣời dùng kích vào nút “Tìm UCLN”:
+ Nút “Nhập” vơ hiệu hóa.
+ Thực hiện kiểm tra xem ngƣời dùng đã nhập số thứ nhất và số thứ hai vào các
textbox tƣơng ứng chƣa? Nếu chƣa thì hiện lên hộp thoại thông báo và cho phép nhập
lại. Nếu dữ liệu đã nhập đủ thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ
khơng? (giá trị nhập vào phải là số nguyên). Nếu giá trị nhập vào không hợp lệ thì hiện
lên hộp thoại thơng báo và u cầu nhập lại.
+ Thực hiện tìm ƣớc chung lớn nhất của hai số nguyên dƣơng và hiển thị kết

quả ra textbox ƣớc chung lớn nhất.
- Khi ngƣời dùng kích vào nút “Tìm BCNN”:
+ Nút “Nhập” vơ hiệu hóa.
+ Thực hiện kiểm tra xem ngƣời dùng đã nhập số thứ nhất và số thứ hai vào các
textbox tƣơng ứng chƣa? Nếu chƣa thì hiện lên hộp thoại thơng báo và cho phép nhập
lại. Nếu dữ liệu đã nhập đủ thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ
không? (giá trị nhập vào phải là số nguyên). Nếu giá trị nhập vào khơng hợp lệ thì hiện
lên hộp thoại thông báo và yêu cầu nhập lại.
+ Thực hiện tìm bội chung nhỏ nhất của hai số nguyên dƣơng và hiển thị kết
quả ra textbox bội chung nhỏ nhất.
- Khi ngƣời dùng kích vào nút “Thốt”: thực hiện kết thúc chƣơng trình.
Hướng dẫn thực hiện:
1. Thiết kế Form theo yêu cầu đề bài
2. Phân tích yêu cầu:
Theo yêu cầu trên thì phải có một form chứa:
- Các đối tƣợng có nội dung “CHƢƠNG TRÌNH TÌM UCLN VÀ BCNN”,
“Nhập số thứ nhất”, “Nhập số thứ hai” là các Label.
- Các đối tƣợng ô nhập số thứ nhất, nhập số thứ hai, đối tƣợng ô để hiển thị ƣớc
chung lớn nhất và bội chung nhỏ nhất là các Textbox.
- Các nút “Nhập”, “Tìm UCLN”, “BCNN”, “Thốt” là các Button
3. Các bƣớc thực hiện:
Thiết kế Form theo mẫu và gắn các điều khiển
- Để tạo điểu khiển CHƢƠNG TRÌNH TÌM UCLN VÀ BCNN theo yêu cầu cần
thực hiện:
+ Kéo điều khiển Label từ cửa sổ Toolbox
14


Tập bài giảng Thực hành kỹ thuật lập trình


+ Kích phải chuột vào Label chọn Properties và thiết lập các thuộc tính cho
Label nhƣ sau:
Text: CHƢƠNG TRÌNH TÌM UCLN VÀ BCNN
Font: Time New Roman
Size: 16
Font style: True
ForeColor: Blue
Trên menu chọn Format/Center in form/Horizontally để căn giữa.
Thực hiện thao tác tƣơng tự với Label nhập số thứ nhất và nhập số thứ hai.
- Để tạo điều khiển txt_so1 tƣơng ứng với nhãn nhập số thứ nhất theo yêu cầu
cần thực hiện:
+ Kéo điểu khiển Textbox từ cửa sổ Toolbox vào Form.
+ Kích phải chuột vào Textbox chọn Properties và thiết lập các thuộc tính cho
Textbox nhƣ sau:
Name: txt_so1
Font: Time New Roman
Size: 14
Thực hiện tƣơng tự với các textbox nhập số thứ hai, textbox hiển thị ƣớc chung
lớn nhất và bội chung nhỏ nhất.
- Tạo điều khiển “Nhập” nhƣ sau:
+ Kéo điều khiển Button từ cửa số Toolbox vào Form.
+ Kích phải chuột vào Button và thiết lập các thuộc tính cho Button này:
Name: bt_nhap
Text: Nhập
Font: Time New Roman
Size: 14
Thực hiện tƣơng tự với các nút “Tìm UCLN”, “Tìm BCNN”, “Thốt”.
Kết quả thiết kế Form

Hình 1. 18. Kết quả thiết kế Form tìm UCLN và BCNN

15


Tập bài giảng Thực hành kỹ thuật lập trình

Viết mã lệnh cho các sự kiện
- Viết mã lệnh cho sự kiện Load Form
private void Form1_Load(object sender, EventArgs e)
{
txt_so1. Enable=false;
txt_so1. Enabled=false;
txt_so1. Enabled=false;
txt_so1. Enabled=false;
bt_UCLN.Enabled= false;
bt_BCNN.Enabled= false;
}
- Viết mã lệnh cho hàm kiểm tra dữ liệu nhập vào
bool kiemtra_dulieu()
{ int n;
if (kiemtra(txt_so1.Text) || kiemtra(txt_so2.Text)) return false;
if (!int.TryParse(txt_so1.Text, out n) || n < 0) return false;
if (!int.TryParse(txt_so2.Text, out n) || n < 0) return false;
return true;
}
- Viết mã lệnh cho hàm kiểm tra chuỗi rỗng
bool kiemtra(string s)
{
if (string.IsNullOrWhiteSpace(s)) return true;
else return false;
}

- Viết mã lệnh cho sự kiện kích chuột vào nút Nhập
private void bt_Nhap_Click(object sender, EventArgs e)
{
txt_so1.Enabled = true;
txt_so2.Enabled = true;
txt_so1.Focus();
bt_BCNN.Enabled = true;
bt_UCLN.Enabled = true;
}
- Viết mã lệnh cho hàm tìm ƣớc chung lớn nhất của hai số nguyên dƣơng
int ucln(int a, int b)
{
while (a != b)
if (a > b) a = a - b;
else b = b - a;
return a;
}
16


Tập bài giảng Thực hành kỹ thuật lập trình

- Viết mã lệnh sự kiện kích chuột vào nút tìm ƣớc chung lớn nhất của hai số
nguyên dƣơng
private void bt_UCLN_Click(object sender, EventArgs e)
{
bt_Nhap.Enabled = false;
if (kiemtra_dulieu())
{
txt_UCLN.Text = ucln(int.Parse(txt_so1.Text),

int.Parse(txt_so2.Text)).ToString();
}
else MessageBox.Show("Nhập sai dữ liệu", "Thơng báo");
}
- Viết mã lệnh sự kiện kích chuột vào nút tìm bội chung nhỏ nhất của hai số
nguyên dƣơng
private void bt_BCNN_Click(object sender, EventArgs e)
{
bt_Nhap.Enabled = false;
if (kiemtra_dulieu())
{
int s1, s2;
s1=int.Parse(txt_so1.Text);
s2 = int.Parse(txt_so2.Text);
int n= ucln(s1,s2);
txt_BCNN.Text=((s1*s2)/n).ToString();
}
else MessageBox.Show("Nhập sai dữ liệu", "Thông báo");
}
- Viết mã lệnh sự kiện kích chuột vào nút thốt
private void bt_Thoat_Click(object sender, EventArgs e)
{
this.Close();
}
Kết quả chạy chƣơng trình

Hình 1. 19. Kết quả chạy chƣơng trình tìm UCLN và BCNN
Bài tập 3. Viết chƣơng trình tính chu vi và diện tích tam giác với các yêu cầu:
1. Thiết kế Form theo mẫu
17



Tập bài giảng Thực hành kỹ thuật lập trình

Hình 1. 20. Chƣơng trình tính diện tích và chu vi tam giác
Yêu cầu:
- Nhãn tính chu vi và diện tích tam giác: Font Time New Roman, chữ hoa, in
đậm, size 16, căn giữa Form.
- Các nhãn nhập cạnh thứ 1, nhập cạnh thứ 2, nhập cạnh thứ 3, kết quả: Font
Time New Roman, size 14, màu đen.
- Các điều khiển để nhập cạnh thứ nhất, cạnh thứ hai, cạnh thứ ba là các
textbox.
- Các điều khiển “Nhập”, “Thoát” là các button.
- Điều khiển để lựa chọn cơng việc tính chu vi hay tính diện tích là các
radiobutton.
- Điều khiển nhập dữ liệu và tính là các GroupBox.
2. Lập trình cho các sự kiện:
- Khi Load Form:
+ Các textbox để nhập cạnh thứ nhất, cạnh thứ 2, cạnh thứ 3, GroupBox tính vơ
hiệu hóa, nhãn kết quả ẩn.
+ Các điều khiển “Nhập”, “Thốt” sáng (cho phép hoạt động).
- Khi ngƣời dùng kích vào nút “Nhập”:
+ Các textbox để nhập cạnh thứ nhất, cạnh thứ 2, cạnh thứ 3, GroupBox tính
sáng lên.
+ Con trỏ đặt tại textbox nhập cạnh thứ 1.
- Khi ngƣời kích chọn radio button tính diện tích tam giác:
+ Nút “Nhập” và các textbox vơ hiệu hóa.
+ Thực hiện kiểm tra xem ngƣời dùng đã nhập đủ dữ liệu vào các textbox chƣa?
Nếu chƣa thì hiện lên hộp thoại thơng báo và cho phép nhập lại. Nếu dữ liệu đã nhập
đủ thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ khơng? (giá trị nhập vào phải

18


Tập bài giảng Thực hành kỹ thuật lập trình

là số thực). Nếu giá trị nhập vào khơng hợp lệ thì hiện lên hộp thoại thông báo và yêu
cầu nhập lại.
+ Nhãn kết quả hiện lên.
+ Kiểm tra xem độ dài 3 cạnh nhập vào ở 3 textbox tƣơng ứng có lập thành tam
giác khơng? Nếu có thì thực hiện tính diện tích tam giác và hiển thị kết quả ra nhãn kết
quả. Nếu khơng thì thơng báo lên nhãn kết quả là ba cạnh không lập thành tam giác.
- Khi ngƣời kích chọn radio button tính chu vi tam giác:
+ Nút “Nhập” và các textbox vơ hiệu hóa.
+ Thực hiện kiểm tra xem ngƣời dùng đã nhập đủ dữ liệu vào các textbox chƣa?
Nếu chƣa thì hiện lên hộp thoại thông báo và cho phép nhập lại. Nếu dữ liệu đã nhập
đủ thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ khơng? (giá trị nhập vào phải
là số thực). Nếu giá trị nhập vào không hợp lệ thì hiện lên hộp thoại thơng báo và u
cầu nhập lại.
+ Nhãn kết quả hiện lên.
+ Kiểm tra xem độ dài 3 cạnh nhập vào ở 3 textbox tƣơng ứng có lập thành tam
giác khơng? Nếu có thì thực hiện tính chu vi tam giác và hiển thị kết quả ra nhãn kết
quả. Nếu khơng thì thơng báo lên nhãn kết quả là ba cạnh không lập thành tam giác.
- Khi ngƣời dùng kích vào nút “Thốt”: thực hiện đóng chƣơng trình.
Hướng dẫn thực hiện:
1. Thiết kế Form theo yêu cầu đề bài
2. Phân tích yêu cầu:
Theo yêu cầu trên thì phải có một form chứa:
- Các đối tƣợng có nội dung “TÍNH DIỆN TÍCH VÀ CHU VI TAM GIÁC”,
“Nhập cạnh thứ 1”, “Nhập cạnh thứ 2”, “Nhập cạnh thứ 3”, “Kết quả” là các Label.
- Các đối tƣợng ô nhập cạnh thứ 1, cạnh thứ 2, cạnh thứ 3 là các Textbox.

- Các nút “Nhập”, “Thoát” là các Button.
- Đối tƣợng “Nhập dữ liệu” và “Tính” là các GroupBox.
3. Các bƣớc thực hiện
Thiết kế Form theo mẫu và gắn các điều khiển
- Để tạo điểu khiển TÍNH DIỆN TÍCH VÀ CHU VI TAM GIÁC theo yêu cầu
cần thực hiện:
+ Kéo điều khiển Label từ cửa sổ Toolbox
+ Kích phải chuột vào Label chọn Properties và thiết lập các thuộc tính cho
Label nhƣ sau:
Text: TÍNH DIỆN TÍCH VÀ CHU VI TAM GIÁC
Font: Time New Roman
19


×