Biến và cách sử dụng biếnLưu trữ dữ liệu trong bộ nhớ Toán tử số học và thứ tự ưu tiên của chúng Giải thuật và dùng mã giả để biểu diễn cho giải thuật Biều đồ hoạt động UML Câu lệnh lựa
Trang 1BÀI 4:
LỆNH LỰA CHỌN & QUY TRÌNH PHÁT TRIỂN PHẦN MỀM
Trang 2Biến và cách sử dụng biến
Lưu trữ dữ liệu trong bộ nhớ
Toán tử số học và thứ tự ưu tiên của chúng
Giải thuật và dùng mã giả để biểu diễn cho giải thuật
Biều đồ hoạt động UML
Câu lệnh lựa chọn If…Then và If…Then…Else
Thiết lập các breakpoint và sử dụng cửa sổ Watch để gỡlỗi
Hệ thống bài cũ
Biến và cách sử dụng biến
Lưu trữ dữ liệu trong bộ nhớ
Toán tử số học và thứ tự ưu tiên của chúng
Giải thuật và dùng mã giả để biểu diễn cho giải thuật
Biều đồ hoạt động UML
Câu lệnh lựa chọn If…Then và If…Then…Else
Thiết lập các breakpoint và sử dụng cửa sổ Watch để gỡlỗi
Trang 3Mục tiêu bài học
Biết cách sử dụng CheckBox và hộp thoại
Hiểu về các toán tử logic và sử dụng toán tử logic để kếthợp nhiều điều kiện đơn
Hiểu và sử dụng lệnh đa lựa chọn Select Case
Hiểu về quy trình phát triển ứng dụng
Hiểu về cách tổ chức mã của Visual Basic
Biết cách sử dụng CheckBox và hộp thoại
Hiểu về các toán tử logic và sử dụng toán tử logic để kếthợp nhiều điều kiện đơn
Hiểu và sử dụng lệnh đa lựa chọn Select Case
Hiểu về quy trình phát triển ứng dụng
Hiểu về cách tổ chức mã của Visual Basic
Trang 5CheckBox có hai trạng thái là được chọn (checked) và không
Kiểm soát trạng thái của CheckBox bằng thuộc tính Checked
CheckBox chưa được chọn Thuộc tính Checked
Trang 6Thuộc tính quan trọng
Autosize - Cho phép tự động điều chỉnh kích thước của
CheckBox.
Checked - Chỉ định CheckBox này được chọn (True) hay
không được chọn (False)
Location - Chỉ định vị trí của CheckBox ở trên Form.
Name - Chỉ ra tên được sử dụng để truy cập CheckBox
trong khi lập trình Tên nên có hậu tố CheckBox vào phía sau.
Size - Chỉ ra chiều rộng và chiều cao (bằng pixel) của
Checked - Chỉ định CheckBox này được chọn (True) hay
không được chọn (False)
Location - Chỉ định vị trí của CheckBox ở trên Form.
Name - Chỉ ra tên được sử dụng để truy cập CheckBox
trong khi lập trình Tên nên có hậu tố CheckBox vào phía sau.
Size - Chỉ ra chiều rộng và chiều cao (bằng pixel) của
CheckBox.
Text - Chỉ ra nội dung được hiển thị bên cạnh CheckBox.
Trang 7Demo sử dụng CheckBox
Thêm CheckBox vào Form
Tùy chỉnh CheckBox
Trang 8Hộp thoại
Sử dụng để hiển thị thông báo hướng dẫn hay hiển thị thông báo lỗi cho người dùng
Được định nghĩa bởi lớp MessageBox
Sử dụng phương thức MessageBox.Show để hiển thị
Sử dụng để hiển thị thông báo hướng dẫn hay hiển thị thông báo lỗi cho người dùng
Được định nghĩa bởi lớp MessageBox
Sử dụng phương thức MessageBox.Show để hiển thị
Trang 9Hộp thoại
MessageBox.Show( _
“Hãy nhập tên của bạn vào", _
“Thiếu thông tin", MessageBoxButtons.OK, _ MessageBoxIcon.Error)
Nội dung văn bản hiển thị
trên hộp thoại
MessageBox.Show( _
“Hãy nhập tên của bạn vào", _
“Thiếu thông tin", MessageBoxButtons.OK, _ MessageBoxIcon.Error)
Nội dung trên
thanh tiêu đề
Button được hiển thị trên hộp thoại Biểu tượng xuất
hiện trên hộp thoại
Trang 10YesNoCancel Button Yes, No và Cancel Cho phép người dùngtrả lời câu hỏi hoặc bỏ qua.
AbortRetryIgnore Button Abort, Retry và Ignore Khi một thaotác trong một dãy các thao tác thất bại, những Button
này cho phép người dùng dừng toàn bộ dãy thao tác, hoặc thử thực hiện lại thao tác thất bại hoặc bỏ qua thao tác thất bại và tiếp tục thực hiện những thao tác còn lại.
Trang 11Các hằng MessageBoxIcon
MessageBoxIcon.
Exclamation Biểu tượng này chứa hình dấu chấmthan Được dùng để cảnh báo cho
người dùng về vấn đề có thể xảy ra MessageBoxIcon.
Information Biểu tượng này chứa chữ “i” Đượcdùng để hiển thị thông tin về trạng
thái của ứng dụng.
Biểu tượng này chứa chữ “i” Được dùng để hiển thị thông tin về trạng thái của ứng dụng.
MessageBoxIcon.
None Không có biểu tượng nào được hiểnthị MessageBoxIcon.
Error Biểu tượng này chứa dấu x màutrắng trong hình tròn màu đỏ Dùng
để cảnh báo người sử dụng về lỗi hoặc một tình huống nghiêm trọng.
Trang 12Demo sử dụng hộp thoại
Thay đổi giá trị đối số thứ tư Icon hiển thị khác nhau
Thay đổi giá trị đối số thứ tư Icon hiển thị khác nhau
Trang 14Toán tử AndAlso
Có giá trị là True khi và chỉ khi hai điều kiện đơn cùng đúng
If gioiTinhTextBox.Text = “Nu” AndAlso tuoi> = 65 Then
soPhuNuCaoTuoi += 1 End If
Nếu gioiTinhextBox.Text có giá trị là “Nu”
và tuoi có giá trị lớn hơn hoặc bằng 65 thì biến soPhuNuCaoTuoi được tăng thêm 1.
Nêu không, bỏ qua lệnh này
Nếu gioiTinhextBox.Text có giá trị là “Nu”
và tuoi có giá trị lớn hơn hoặc bằng 65 thì biến soPhuNuCaoTuoi được tăng thêm 1.
Nêu không, bỏ qua lệnh này
Trang 15Bảng sự thật của toán tử AndAlso
Biểu thức ĐK 1 Biểu thức ĐK 2 Biểu thức ĐK 1 AndAlso Biểu
thức ĐK 2
Trang 16Toán tử OrElse
Có giá trị là True khi một hoặc cả hai điều kiện đơn đúng
Bài toán:
Một sinh viên sẽ đạt điểm A của kỳ đó nếu điểm thi cuối kỳ
>=90 hoặc điểm trung bình của cả kỳ >= 90
If (diemTrungBinh >= 90) OrElse (diemThiCuoiKy >= 90) Then
MessageBox.Show(“Sinh vien co so diem la A”, “Diem”
MessageBoxButtons.OK, MessageBoxIcon.Information) End If
If (diemTrungBinh >= 90) OrElse (diemThiCuoiKy >= 90) Then
MessageBox.Show(“Sinh vien co so diem la A”, “Diem”
MessageBoxButtons.OK, MessageBoxIcon.Information) End If
Trang 17Bảng sự thật của toán tử OrElse
Biểu thức
ĐK 1 Biểu thức ĐK 2 Biểu thức ĐK 1 OrElse Biểu thức ĐK 2
Trang 18Đánh giá theo cơ chế tối ưu
Thực hiện đánh giá cho đến khi biết giá trị của nó là đúnghay sai thì dừng lại
Toán tử AndAlso và OrElse được đánh giá theo cơ chế tối ưu
Toán tử And và Or không đánh giá theo cơ chế tối ưu
If (gioiTinhTextBox.Text = “Nu”) AndAlso (tuoi>= 65)
Nếu gioiTinhTextBox.Text có giá trị khác
“Nu” thì dừng là và trả về False
Thực hiện đánh giá cho đến khi biết giá trị của nó là đúnghay sai thì dừng lại
Toán tử AndAlso và OrElse được đánh giá theo cơ chế tối ưu
Toán tử And và Or không đánh giá theo cơ chế tối ưu
Nếu gioiTinhTextBox.Text có giá trị khác
“Nu” thì dừng là và trả về False
If (diemTrungBinh >= 90) OrElse (diemThiCuoiKy >= 90)
Nếu diemTrungBinh có giá trị lớn hoặc bằng 90 thì dừng là và trả về True
Trang 19Toán tử Xor
Có giá trị là True khi và chỉ khi một toán hạng của nó có
giá trị True và toán hạng còn lại có giá trị False
Nếu tất cả toán hạng có giá trị False hoặc tất cả các toán hạng có giá trị True thì toán bộ biểu thức có giá trị False
Biểu thức ĐK 1 Biểu thức ĐK 2 Biểu thức ĐK 1 Xor Biểu
thức ĐK 2
Biểu thức ĐK 1 Biểu thức ĐK 2 Biểu thức ĐK 1 Xor Biểu
thức ĐK 2
Trang 20Toán tử Not
Là toán tử một ngôi
Đảo ngược giá trị logic của điều kiện
If Not (diem = value) Then
hienthiLabel.Text = “chúng không bằng nhau”
End If
Biểu thức ĐK Giá trị nghịch đảo của biểu thức
ĐK
Trang 21Lệnh đa lựa chọn Select Case
Hiển thị thông báo dựa trên điểm của sinh viên
If diem = “A” Then
hienthiLabel.Text = “Tuyet voi!”
Trong trường hợp diem bằng
“A” thì hiển thị “Tuyet voi!”
Select Case diem Case “A”
hienthiLabel.Text = “Tuyet voi!”
Hiển thị thông báo dựa trên điểm của sinh viên
If diem = “A” Then
hienthiLabel.Text = “Tuyet voi!”
Trang 22Lệnh đa lựa chọn Select Case
Ký hiệu ghép kết hợp hai luồng hoạt động thành một luồng
hiển thị “Tuyet voi!”
Ký hiệu ghép kết hợp hai luồng hoạt động thành một luồng
Trang 23Mệnh đề Case Else
Là mệnh đề không bắt buộc trong lệnh Case
Được thực thi khi không có mệnh đề Case nào đúng
Mệnh đề Case Else phải nằm sau tất cả các mệnh đề Case khác Mỗi lệnh Select Case chỉ có một mệnh đề Case Else
Select Case diem Case “A”
hienthiLabel.Text = “Tuyet voi!”
Trang 24Nhiều giá trị trong mệnh đề Case
Có thể có nhiều giá trị trong một mệnh đề Case
Select Case diem Case “A”
hienthiLabel.Text = “Tuyet voi!”
Select Case diem Case “A”
hienthiLabel.Text = “Tuyet voi!”
Trang 25Từ khóa Is
Từ khóa Is đi trước toán tử quan hệ hay toán tử bằng
được dùng để so sánh biểu thức điều khiển với giá trị bên phải của toán tử
Select Case diem Case Is >= 90
hienthiLabel.Text = “Tuyet voi!”
hienthiLabel.Text = “Diem khong hop le”
Select Case diem Case Is >= 90
hienthiLabel.Text = “Tuyet voi!”
hienthiLabel.Text = “Diem khong hop le”
Từ khóa Is đi trước
toán tử quan hệ
Trang 26Từ khóa To
Từ khóa To xác định một khoảng giá trị
Select Case diem Case Is >= 90
hienthiLabel.Text = “Tuyet voi!”
Select Case diem Case Is >= 90
hienthiLabel.Text = “Tuyet voi!”
Trang 27Datagridview và sơ lược về đọc file
Trang 28Datagridview và sơ lược về đọc file
Đọc dữ liệu từ file và đưa vào DataGridView
Trang 29Quy trình phát triển ứng dụng
Bước 1 Xác định yêu cầu
Một phòng thí nghiệm muốn lắp đặt bảng an ninh phía ngoài phòng Chỉ nhân
viên được cho phép mới có thể vào trong phòng bằng cách sử dụng mã bảo mật.
Sau đây là các mã bảo mật hợp lệ (còn được gọi là mã truy cập) và các nhóm
nhân viên tương ứng:
Giá trị Nhóm
1645-1689 Kỹ thuật viên
8345 Nhân viên tạp vụ
9998, 1006-1008 Nhà khoa học Mỗi khi nhập mã bảo mật, truy cập sẽ được chấp nhận hoặc bị từ chối Thông tin
mỗi lần truy cập đều được ghi vào cửa sổ bên dưới bàn phím Nếu truy cập được
chấp nhận thì thông tin về thời gian truy cập và nhóm (nhà khoa học, nhân viên
tạp vụ, v.v…) được ghi vào cửa sổ Nếu truy cập bị từ chối thì thông tin về thời
gian và thông báo “Access Denied” sẽ được ghi vào cửa sổ Ngoài ra, người dùng
có thể nhập mã truy cập là một chữ số bất kỳ để yêu cầu nhân viên bảo vệ đến trợ
Một phòng thí nghiệm muốn lắp đặt bảng an ninh phía ngoài phòng Chỉ nhân
viên được cho phép mới có thể vào trong phòng bằng cách sử dụng mã bảo mật.
Sau đây là các mã bảo mật hợp lệ (còn được gọi là mã truy cập) và các nhóm
nhân viên tương ứng:
Giá trị Nhóm
1645-1689 Kỹ thuật viên
8345 Nhân viên tạp vụ
9998, 1006-1008 Nhà khoa học Mỗi khi nhập mã bảo mật, truy cập sẽ được chấp nhận hoặc bị từ chối Thông tin
mỗi lần truy cập đều được ghi vào cửa sổ bên dưới bàn phím Nếu truy cập được
chấp nhận thì thông tin về thời gian truy cập và nhóm (nhà khoa học, nhân viên
tạp vụ, v.v…) được ghi vào cửa sổ Nếu truy cập bị từ chối thì thông tin về thời
gian và thông báo “Access Denied” sẽ được ghi vào cửa sổ Ngoài ra, người dùng
có thể nhập mã truy cập là một chữ số bất kỳ để yêu cầu nhân viên bảo vệ đến trợ
Trang 30Quy trình phát triển ứng dụng
Bước 2 Thiết kế ứng dụng
Thiết kế giao diện cho ứng dụng
Ký tự ngụy trang được hiển thị tuy nhiên giá trị Text của TextBox vẫn chứa giá trị do người dùng nhập vào
Thiết lập thuộc tính
PasswordChar là * để
ẩn mã truy cập
Bước 2 Thiết kế ứng dụng
Thiết kế giao diện cho ứng dụng
Ký tự ngụy trang được hiển thị tuy nhiên giá trị Text của TextBox vẫn chứa giá trị do người dùng nhập vào
Thiết lập thuộc tính
PasswordChar là * để
ẩn mã truy cập
Trang 31Quy trình phát triển ứng dụng
Thiết kế giải thuật cho ứng dụng
Nếu người dùng nhấn Button # thì
Lấy giá trị mã an ninh do người dùng nhập vào
Xóa nội dung trên TextBox
Chọn trường hợp đúng dựa trên mã truy cập
Trong trường hợp mã truy cập nhỏ hơn 10
Lưu văn bản “Assistance Requested” vào biến String
Trong trường hợp mã truy cập nằm trong dãy 1645 đến 1689
Lưu văn bản “Technicians” vào biến String
Trong trường hợp mã truy cập bằng 8345
Lưu văn bản “Costodians” vào biến String
Trong trường hợp mã truy cập bằng 9998 hoặc trong dãy 1006 đến 1008
Lưu văn bản “Scientists” vào biến String
Trong trường hợp không rơi vào các trường hợp trên
Lưu văn bản “Access Denied” vào biến String
Kết thúc lệnh Chọn
Nếu người dùng nhấn Button # thì
Lấy giá trị mã an ninh do người dùng nhập vào
Xóa nội dung trên TextBox
Chọn trường hợp đúng dựa trên mã truy cập
Trong trường hợp mã truy cập nhỏ hơn 10
Lưu văn bản “Assistance Requested” vào biến String
Trong trường hợp mã truy cập nằm trong dãy 1645 đến 1689
Lưu văn bản “Technicians” vào biến String
Trong trường hợp mã truy cập bằng 8345
Lưu văn bản “Costodians” vào biến String
Trong trường hợp mã truy cập bằng 9998 hoặc trong dãy 1006 đến 1008
Lưu văn bản “Scientists” vào biến String
Trong trường hợp không rơi vào các trường hợp trên
Lưu văn bản “Access Denied” vào biến String
Kết thúc lệnh Chọn
Trang 32Quy trình phát triển ứng dụng
Bước 3 Viết mã (coding)
Viết mã dựa theo phân tích ở bước 3
Trang 33Demo viết mã ứng dụng
Public Class SecurityPanelForm
' xử lý sự kiện Click cho Button enterButton
Private Sub enterButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles enterButton.Click
Dim accessCode As Integer ' lưu mã truy cập được nhập vào
Dim message As String ' hiển thị trạng thái truy cập
accessCode = Val(securityCodeTextBox.Text) securityCodeTextBox.Clear()
Select Case a ccessCode ' kiểm tra mã truy cập
Case Is < 10 ' mã truy cập bé hơn 10
message = "Assistance Requested"
Case 1645 To 1689 ' mã truy cập nằm giữa 1645 và 1689
Case Else ' nếu không có trường hợp nào ở trên đúng
message = "Access Denied"
End Select
Public Class SecurityPanelForm
' xử lý sự kiện Click cho Button enterButton
Private Sub enterButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles enterButton.Click
Dim accessCode As Integer ' lưu mã truy cập được nhập vào
Dim message As String ' hiển thị trạng thái truy cập
accessCode = Val(securityCodeTextBox.Text) securityCodeTextBox.Clear()
Select Case a ccessCode ' kiểm tra mã truy cập
Case Is < 10 ' mã truy cập bé hơn 10
message = "Assistance Requested"
Case 1645 To 1689 ' mã truy cập nằm giữa 1645 và 1689
Case Else ' nếu không có trường hợp nào ở trên đúng
message = "Access Denied"
End Select
Trang 34Demo viết mã ứng dụng
' xử lý sự kiện Click cho Button zeroButton
Private Sub zeroButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles zeroButton.Click
securityCodeTextBox.Text &= "0" ' nối thêm "0" để hiển thị
End Sub ' zeroButton_Click
' xử lý sự kiện Click của Button oneButton
Private Sub oneButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles oneButton.Click
securityCodeTextBox.Text &= "1" ' nối thêm "1" để hiển thị
End Sub ' oneButton_Click
' xử lý sự kiện Click của Button twoButton
Private Sub twoButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles twoButton.Click
securityCodeTextBox.Text &= "2" 'nối thêm "2" để hiển thị
End Sub ' twoButton_Click
' xử lý sự kiện Click của Button threeButton
Private Sub threeButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles threeButton.Click
securityCodeTextBox.Text &= "3" 'nối thêm "3" để hiển thị
End Sub ' threeButton_Click
' xử lý sự kiện Click cho Button zeroButton
Private Sub zeroButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles zeroButton.Click
securityCodeTextBox.Text &= "0" ' nối thêm "0" để hiển thị
End Sub ' zeroButton_Click
' xử lý sự kiện Click của Button oneButton
Private Sub oneButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles oneButton.Click
securityCodeTextBox.Text &= "1" ' nối thêm "1" để hiển thị
End Sub ' oneButton_Click
' xử lý sự kiện Click của Button twoButton
Private Sub twoButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles twoButton.Click
securityCodeTextBox.Text &= "2" 'nối thêm "2" để hiển thị
End Sub ' twoButton_Click
' xử lý sự kiện Click của Button threeButton
Private Sub threeButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles threeButton.Click securityCodeTextBox.Text &= "3" 'nối thêm "3" để hiển thị
End Sub ' threeButton_Click