1. Trang chủ
  2. » Công Nghệ Thông Tin

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

18 403 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 547 KB

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

Nội dung

BÀI THỰC HÀNH SỐ 1 Viết chương trình nhập vào 3 giá trị dương a, b, c.. BÀI THỰC HÀNH SỐ 3 Viết chương trình cho phép xem ảnh và quản lý File dạng đơn giản... BÀI THỰC HÀNH SỐ 4 Viết chư

Trang 1

BÀI THỰC HÀNH SỐ 1

Viết chương trình nhập vào 3 giá trị dương a, b, c Kiểm tra xem chúng có thể tạo thành

ba cạnh của một tam giác hay không, nếu đúng thì đó là tam giác vuông, cân, đều hay tam giác thường và cho biết chu vi và diện tích của hình tam giác đó

Hướng dẫn

Diện tích tam giác được tính: S = p ( pa )( pb )( pc ) với

2

c b a

Giao diện chương trình:

- Các đối tượng TextBox có thuộc tính Name là: Text1 -> Text7 (thứ tự từ trên xuống)

- Các đối tượng CommandButton (nút lệnh) có Name từ: Command1 -> Command3

Mã lệnh tham khảo

Dim a As Byte, b As Byte, c As Byte ‘ Các biến chứa ba cạnh tam giác

Dim S As Single, P As Single ‘ Chứa diện tích và chu vi của tam giác

‘ Sự kiện Click của nút Command2 (nút Tiep tuc)

Private Sub Command2_Click()

Text1.Text = "" ‘ Xóa rỗng các đối tượng TextBox

Text2.Text = "" : Text3.Text = ""

Text4.Text = "" : Text5.Text = ""

Text6.Text = "" : Text7.Text = ""

End Sub

‘Sự kiện Click của nút Command3 (nút Ket thuc)

Private Sub Command3_Click()

Unload Me

End Sub

‘Sự kiện Click của nút Command1 (nút Kiem tra)

Private Sub Command1_Click()

a = Val(Text1.Text) ‘ Cho biến a nhận giá trị từ Text1

b = Val(Text2.Text) ‘ Cho biến b nhận giá trị từ Text2

c = Val(Text3.Text) ‘ Cho biến c nhận giá trị từ Text3

If (a + b > c) And (a + c > b) And (b + c > a) Then

' Kiểm tra loại tam giác - Chỉ khi a, b, c là ba cạnh của tam giác

Text4.Text = "DIEU NAY DUNG"

If (a = b) And (b = c) Then

Text5.Text = "TAM GIAC DEU"

ElseIf (a = b) Or (a = c) Or (b = c) Then

Text5.Text = "TAM GIAC CAN"

ElseIf (a*a + b*b = c^2) Or (b*b + c*c = a^2) Or (a*a + c*c = b^2) Then

Đúng / Sai Cân/Vuông/Ðều/Thường

Trang 2

Text5.Text = "TAM GIAC VUONG"

Else

Text5.Text = "TAM GIAC THUONG"

End If

P = (a + b + c) / 2 ‘ Tính chu vi của tam giác

’ Đối tượng Text6 chứa chu vi tam giác

Text6.Text = Str(2 * P)

‘ Tính diện tích tam giác

S = Sqr(P * (P - a) * (P - b) * (P - c))

‘ Đối tượng text7 chứa diện tích tam giác

Text7.Text = Str(S)

Else

Text4.Text = "DIEU NAY SAI"

End If

End Sub

Các bài tập khác

1 Giải phương trình bậc hai ax2 + bx + c = 0 (a ≠ 0)

2 Giải hệ phương trình bậc nhất

= +

= +

2 2 2

1 1 1

c y b x a

c y b x a

Hướng dẫn:

D=

2

2

1

1

b

a

b

a

Dx=

2

2

1

1

c

b

c

b

; Dy=

2 2

1 1

a c

a c

- D ≠ 0: Có nghiệm x=Dx/D và

y=Dy/D

- D=0:

o Nếu Dx=0 và Dy=0: Vô số

nghiệm

o Nếu Dx≠ 0 hoặc Dy≠ 0: Vô

nghiệm

Trang 3

BÀI THỰC HÀNH SỐ 2

Viết chương trình mô phỏng một máy tính bỏ túi dạng đơn giản, có thể thực hiện được

các phép toán +, -, *, / và các hàm Sin(x), Cos(x), Tan(x), Cotang(x), n!,

Thiết kế giao diện

Mã lệnh tham khảo

Dim s1 As Double, s2 As Double, kq As Double ‘ Số thứ nhất, thứ hai và kết quả

Dim Pheptoan As Byte

‘ Sự kiện Click mảng đối tượng Command2 (0, 1, 2,…,9 và )

Private Sub Command2_Click(Index As Integer)

Text1.Text = Text1.Text & Command2(Index).Caption

End Sub

‘ Sự kiện Click mảng đối tượng Command1 (Sin, Cos, Tan,…)

Private Sub Command1_Click(Index As Integer)

Dim a As Double, ra As Double

a = Val(Text1.Text) ‘ Nhận giá trị của a từ đối tượng Text1

ra = ToRadian(a) ‘ Gọi CTC đổi a sang đơn vị Radian

Select Case Index

Case 0: Text1.Text = Sin(ra) ‘ Gọi hàm tính Sin

Case 1: Text1.Text = Cos(ra) ‘ Gọi hàm tính Cos

Case 2: Text1.Text = Tan(ra) ‘ Gọi hàm tính Tan

Case 3: Text1.Text = 1/Tan(ra) ‘ Gọi hàm tính Cotang

Case 4: Text1.Text = Sqr(a) ‘ Gọi hàm tính căn bậc hai

Case 5: Text1.Text = Giaithua(CByte(a)) ‘ Gọi CTC tính N! (định nghĩa ở dưới)

Case 6: Text1.Text = Log(a) / Log(10) ‘ Tính Lôgarít cơ số 10 (thập phân) Case 7: Text1.Text = Exp(a) ‘ Gọi hàm tính Exp(x) _ tính e mũ x

End Select

End Sub

‘ Sự kiện Click đối tượng Command3 (=)

Private Sub Command3_Click()

s2 = Val(Text1.Text) ‘ Lưu số thứ 2 vào biến s2

Select Case Pheptoan

Case 0: kq = s1 + s2

Case 1: kq = s1 - s2

Case 2: kq = s1 * s2

Case 3: kq = s1 / s2

End Select

Các đối tượng trên FORM bao gồm:

Ä Ðối tượng độc lập: Text1

Ä Mảng đối tượng Command1

Bao gồm: Sin, Cos, Tan, Ctan, Sqr, n!, Log, Exp với

chỉ số Index tương ứng chạy từ 0 → 7

Ä Mảng đối tượng Command2

Bao gồm: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 và với chỉ số Index

tương ứng chạy từ 0 → 11

Ä Ðối tượng độc lập Command3: nút =

Ä Mảng đối tượng Command4

Bao gồm: các nút +, -, , / có chỉ số Index tương ứng

chạy từ 0 → 3

Ä Ðối tượng độc lập Command5: Exit

Ä Đối tượng độc lập Command6: Clear

Trang 4

Text1.Text = kq ‘ Hiển thị kết quả

End Sub

‘ Sự kiện Click mảng đối tượng Command4 (=)

Private Sub Command4_Click(Index As Integer)

Pheptoan = Index ‘ Lưu phép toán

s1 = Val(Text1.Text) ‘ Lưu số thứ nhất vào biến s1

Text1.Text = "" ‘ Xoá nội dung màn hình

End Sub

‘ Sự kiện Click đối tượng Command5 (Exit)

Private Sub Command5_Click()

Unload Me

End Sub

‘ Sự kiện Click đối tượng Command6 (Clear)

Private Sub Command6_Click()

Text1.Text = ""

End Sub

‘ Ðịnh nghĩa hàm đổi từ Ðộ → Radian

Private Function ToRadian(a As Double) As Double

Dim kq As Double

kq = (3.141592654 / 180) * a

ToRadian = kq ‘ Gán kết quả lại cho tên hàm

End Function

‘ Ðịnh nghĩa hàm tính N!

Private Function Giaithua(N As Byte) As Long

Dim i As Byte, Dim kq As Long

kq = 1

For i = 1 To N

kq = kq * i

Next i

Giaithua = kq ‘ Gán kết quả lại cho tên hàm

End Function

Các bài tập khác

Viết chương trình hiện lên màn hình 8 bảng cửu chương từ 2 đến 9

Hướng dẫn:

Trang 5

BÀI THỰC HÀNH SỐ 3

Viết chương trình cho phép xem ảnh và quản lý File dạng đơn giản

Giao diện

Mã lệnh thao khảo

Option Explicit

‘ Sự kiện khi Click vào đối tượng File1 để chọn ảnh cần xem:

Private Sub File1_Click()

Dim fName As String, s As String

Dim pos As Integer

fName = File1.FileName ‘ Lấy tên của File ảnh

Text1.Text = File1.FileName ‘ Hiện tên của File ảnh vào Text1

pos = Val(InStr(1, fName, ".")) ‘ Tìm vị trí của dấu chấn trong tên

s = LCase(Mid(fName, pos)) ‘ Chuyển từ chữ thường sang chữ hoa

If s = ".gif" Or s = ".jpg" Or s = ".bmp" Then

Picture2.Picture = LoadPicture(File1.Path & "\" & File1.FileName)

End If

Picture2.Move 0, 0 ‘ Di chuyển Picture2 đến góc trái trên

' Thanh cuộn ngang

If Picture2.Width <= Picture1.Width Then

HScroll1.Visible = False ' Ẩn thanh cuộn ngang

Else

HScroll1.Visible = True ' Hiển thị thanh cuộn ngang

HScroll1.Max = Picture2.Width - Picture1.Width

End If

' Thanh cuộn dọc

If Picture2.Height <= Picture1.Height Then

VScroll1.Visible = False ' Ẩn thanh cuộn dọc

Else

VScroll1.Visible = True ' Hiển thị thanh cuộn dọc

VScroll1.Max = Picture2.Height - Picture1.Height

End If

End Sub

‘ Sự kiện Click của Check1, 2, 3, 4

Private Sub Check1_Click()

Trang 6

If Check1.Value = 0 Then

File1.Archive = False

Else

File1.Archive = True

End If

End Sub

Private Sub Check2_Click()

If Check2.Value = 0 Then

File1.System = False

Else

File1.System = True

End If

End Sub

Private Sub Check3_Click()

If Check3.Value = 0 Then

File1.Hiđen = False

Else

File1.Hiđen = True

End If

End Sub

Private Sub Check4_Click()

If Check4.Value = 0 Then

File1.Normal = False

Else

File1.Normal = True

End If

End Sub

Private Sub Combo1_Click()

Select Case Combo1.ListIndex

‘ Thiết lập thuộc tính Fillter

Case 0: File1.Pattern = "*.jpg; *.gif;

*.bmp"

Case 1: File1.Pattern = "*.*"

Case 2: File1.Pattern = "*.txt"

End Select

File1.Refresh

‘ Xóa nội dung của bức ảnh hiện tại

Picture1.Picture = LoadPicture()

End Sub

‘ Sự kiện Change của đối tượng Dir1

Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

‘ Sự kiện Change của Drive1

Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive End Sub

‘ Sự kiện nạp của FORM

Private Sub Form_Load() Text1.Text = ""

Combo1.AddItem ("Picture Files_ (*.jpg;

*.gif; *.bmp)") Combo1.AddItem ("All Files (*.*)") Combo1.AddItem ("Text Files (*.txt)") Combo1.ListIndex = 1

If File1.Archive = True Then Check1.Value = 1

Else Check1.Value = 0 End If

If File1.System = True Then Check2.Value = 1

Else Check2.Value = 0 End If

If File1.Hiđen = True Then Check3.Value = 1 Else

Check3.Value = 0 End If

If File1.Normal = True Then Check4.Value = 1 Else

Check4.Value = 0 End If

Form1.ScaleMode = vbPixels Picture1.ScaleMode = vbPixels Picture2.AutoSize = True Picture2.BorderStyle = 0 End Sub

‘ Sự kiện Change của HScroll1

Private Sub HScroll1_Change() Picture2.Left = -HScroll1.Value End Sub

Private Sub VScroll1_Change() Picture2.Top = -VScroll1.Value End Sub

Trang 7

BÀI THỰC HÀNH SỐ 4

Viết chương trình quản lý sinh viên dạng đơn giản

sử dụng đối tượng ADO gồm có:

o 3 form: frmConnect, frmLogin và form

chính frmMain

o 1 Module: Module1 (chứa đối tượng Db kết

nối CSDL)

Form frmConnect (kết nối CSDL)

* Giao diện

Gồm các đối tượng để nhập dữ liệu Text1, Text2, Text3, Text4 và 2 nút lệnh Command1, Command2

* Mã lệnh tham khảo

Private Sub Command1_Click() ' Nút Kết nối

Dim rs As New ADODB.Recordset

Set Db = New ADODB.Connection

Db.Provider = "SQLOLEDB.1"

Db.ConnectionString = "Data Source=" + Text1.Text + ";Initial Catalog=" + Text2.Text + ";User ID=" + Text3.Text + ";Password=" + Text4.Text + ""

On Error Resume Next ' Bẫy lỗi

Db.Open

If Db.Errors.Count <> 0 Then

MsgBox "Loi : " & Err.Description, vbCritical

Else

frmLogin.Show ' Hiển thị form Login

Unload Me

End If

End Sub

Private Sub Command2_Click() ' Nút Thoát

Unload Me

End Sub

Form frmLogin (đăng nhập)

* Giao diện

Gồm các đối tượng để nhập dữ liệu Text1, Text2 và 2 nút lệnh Command1, Command2

* Mã lệnh tham khảo

Option Explicit

Private Sub Command1_Click()

Dim rs As New ADODB.Recordset

rs.Open "Select * from Users where Username='" + Text1.Text + "' and Password='" +

Text2.Text + "'", Db

If rs.EOF Then

MsgBox "Ten User khong ton tai hoac mat khau khong dung !", vbCritical

Else

frmMain.Show ' Hiển thị form chính

Unload Me ' Đóng form log in

End If

End Sub

Private Sub Command2_Click() ' Nút thoát

Unload Me

End Sub

Trang 8

Form frmMain (giao diện chính)

* Giao diện

Gồm các đối tượng có tên giống như hình sau, ngoài ra còn có các đối tượng

chkGioitinh (þGiới tính), cmdNew (nút Tạo mới), cmdSave (nút Lưu), cmdDelete (nút

Xoá)

* Mã lệnh tham khảo

‘ Câu lệnh sau yêu cầu các biến phải khai báo

Option Explicit

Dim MaSV As Integer, MaL As Integer ' Chứa Mã SV và Mã lớp

Private Sub Form_Load()

Dim rs As New ADODB.Recordset

cboLop.Clear: cboMaL.Clear

rs.Open "select * from Lop order by TenL", Db

Do While Not rs.EOF

cboMaL.AddItem rs!MaL

cboLop.AddItem rs!TenL

rs.MoveNext

Loop

ClearAll

End Sub

' Chương trình con liệt kê DSSV

Public Sub LietkeDSSV(MaL As Integer)

Dim rs As New ADODB.Recordset

lstHoten.Clear: lstMaSV.Clear

ClearAll ‘ Gọi Chương trình con xoá các thông tin

rs.Open "select * from Sinhvien where MaL=" & MaL & " order by Hoten", Db

Do While Not rs.EOF

lstHoten.AddItem rs!Hoten

lstMaSV.AddItem rs!MaSV

rs.MoveNext

Loop

MaSV = 0

End Sub

Trang 9

' Chương trình con hiển thị thông tin sinh viên

Private Sub HienthiSV(MaSV As Integer)

Dim rs As New ADODB.Recordset

rs.Open "select * from Sinhvien where MaSV=" & MaSV & "", Db

If Not rs.EOF Then

txtHoten.Text = rs!Hoten

chkGioitinh.Value = IIf(rs!Gioitinh = True, 1, 0)

txtNgaysinh.Text = rs!Ngaysinh & ""

txtNoisinh.Text = rs!Noisinh & ""

txtMon1.Text = rs!Mon1 & "": txtMon2.Text = rs!Mon2 & ""

txtMon3.Text = rs!Mon3 & ""

txtDTB.Text = rs!dtb & ""

txtXeploai.Text = rs!Xeploai & ""

Else

ClearAll ‘ Gọi Chương trình con xoá các thông tin

End If

End Sub

' Chương trình con xoá các thông tin

Private Sub ClearAll()

txtHoten.Text = "": txtNgaysinh.Text = "": txtNoisinh.Text = ""

txtMon1.Text = "": txtMon2.Text = "": txtMon3.Text = ""

txtDTB.Text = "": txtXeploai.Text = ""

End Sub

‘ Xảy ra khi chọn một lớp từ danh sách lớp

Private Sub cboLop_Click()

MaL = cboMaL.List(cboLop.ListIndex) ' Mã lớp đang xem

LietkeDSSV MaL

End Sub

‘ Xảy ra khi chọn một sinh viên từ danh sách

Private Sub lstHoten_Click()

MaSV = lstMaSV.List(lstHoten.ListIndex) ' Mã sinh viên hiện tại

HienthiSV MaSV ' Gọi CTC hiển thị thông tin sinh viên

End Sub

‘ Xảy ra khi nhắp nút Tạo mới một sinh viên

Private Sub cmdNew_Click() ' Nút tạo mới

ClearAll ‘ Gọi Chương trình con xoá các thông tin

MaSV = 0

End Sub

‘ Lưu thông tin về sinh viên

Private Sub cmdSave_Click() ' Nút lưu

Dim rs As New ADODB.Recordset

If txtHoten.Text = "" Or txtNgaysinh.Text = "" Or MaL = 0 Then

MsgBox "Chua nhap Ho ten, Ngay sinh hoac chua chon Lop !", vbCritical

Else

rs.Open "select * from Sinhvien where MaSV='" & MaSV & "'", Db, adOpenStatic, adLockOptimistic

If rs.EOF Then rs.AddNew

rs!Hoten = txtHoten.Text

rs!Ngaysinh = txtNgaysinh.Text

rs!Noisinh = txtNoisinh.Text

rs!Gioitinh = IIf(chkGioitinh.Value = 1, True, False)

rs!Mon1 = Val(txtMon1.Text)

rs!Mon2 = Val(txtMon2.Text)

rs!Mon3 = Val(txtMon3.Text)

txtDTB.Text = Round((rs!Mon1 + rs!Mon2 + rs!Mon3) / 3, 2) ' Làm tròn 2 chữ số Select Case Val(txtDTB.Text)

Case Is >= 8: txtXeploai.Text = "Giỏi"

Trang 10

Case Is >= 7: txtXeploai.Text = "Khá"

Case Is >= 5: txtXeploai.Text = "Trung bình"

Case Else: txtXeploai.Text = "Yếu"

End Select

rs!dtb = txtDTB.Text

rs!Xeploai = txtXeploai.Text

rs!MaL = MaL

rs.Update ' Lưu vào CSDL

If MaSV = 0 Then LietkeDSSV MaL

End If

End Sub

‘ Xoá thông tin về sinh viên

Private Sub cmdDelete_Click()

Dim traloi As Integer

If MaSV = 0 Then

MsgBox "Phai chon SV can xoa", vbInformation

Else

traloi = MsgBox("Ban muon xo SV nay hay khong?", vbQuestion + vbYesNo)

If traloi = vbYes Then

Db.Execute "delete from Sinhvien where MaSV=" & MaSV & ""

LietkeDSSV MaL

End If

End If

End Sub

Một số yêu cầu khác

1 Ứng dụng thanh tiến trình ProgressBar trong khi hiển thị danh sách sinh viên của

một lớp

2 Xây dựng hệ thống Menu cho form gồm

các mục như hình bên Khi nhắp chọn

các mục ‘Chon mau nen’ và ‘Chon hinh

nen’ sẽ cho phép đổi màu nền và hình

nền của form (sử dụng điều khiển

Common Dialog)

3 Xây dựng thanh công cụ (Toolbar) gồm

một số mục tuỳ ý Chẳng hạn như hình

sau:

Ngày đăng: 31/07/2014, 01:20

TỪ KHÓA LIÊN QUAN

w