Với mục tiêu đã đặt ra, tác giả rất mong sản phẩm của dự án đƣợc ứng dụng. Do có nhiều nguyên do nhƣ:
Trƣớc tiên khi giải bài với phần mềm thì kết quả trả về có độ chính xác là tuyệt đối, không mắt phải một số lỗi do nguyên nhân khách quan nhƣ kỷ năng hay thao tác…
Thứ hai là khi ứng dụng phần mềm thì khi tiến hành giải bài tập thì mất ít thời gian và công sức
Có thể tránh đƣợc một số lỗi không đáng có trong quá trình tính toán
Và do khiền thức hạn hẹp nên có những lợi ích khi sử dụng phần mềm tác giả còn chƣa nói hết đƣợc.
74
CHƢƠNG 4. KẾT LUẬN VÀ KIẾN NGHỊ 4.1. Kết luận
Ngôn ngữ lập trình Visual Basic rất mạnh, có khả năng hỗ trợ tốt lập trình tính toán nhanh một số bài toán trắc địa cơ bản
Sử dụng ngôn ngữ lập trình Visual Basic thiết kế phần mềm hỗ trợ giải đáp nhanh một số bài toán trong trắc địa đại cƣơng. Giao diện chƣơng trình gồm một số công cụ chính đã thiết kế thành công nhƣ sau:
- Công cụ tính toán nhanh và giải đáp kết quả bài toán thuận, nghịch trong trắc địa - Công cụ tính toán mối quan hệ giữa góc định hƣớng với góc bằng
- Công cụ tính toán mối quan hệ giữa góc bằng với góc định hƣớng
4.2. Kiến nghị
- Cần nghiên cứu công cụ có chức năng tính toán hỗ trợ tính toán nhƣ sai số trong đo đạc, bài toán bình sai lƣới dƣờng chuyền.
75
TÀI LIỆU THAM KHẢO
Trần Văn Quảng 2001 , Tr c địa đ i cương, NXB Xây dựng Hà Nội. Phạm Văn Chuyên 2008 , Tr c địa đ i cương, NXB Xây dựng Hà Nội.
Bùi Quang Tuyến 2005 , i giảng tr c địa, Trƣờng Đại học Cần Thơ, Cần Thơ. Đàm Xuân Hoàn 2007 , Tr c địa (Giáo trình cho ng nh địa chính v quản lý đất đai)
Trƣờng Đại học Nông Nghiệp I, Hà Nội.
Nguyễn Quang Tác 2008 , Trắc Địa, NXB Xây dựng Hà Nội.
Đinh Công Hòa 2010 Lập trình b i toán tr c địa cơ s , NXB Giao thông vận tải Hà Nội Lâm Hoài Bảo 2005 , Giáo trình isual asic, Khoa Công nghệ thông tin-Trƣờng Đại học
Cần Thơ
Lâm Hoài Bảo 2005 , Giáo trình thực h nh Visual Basic, Khoa Công nghệ thông tin-Trƣờng Đại học Cần Thơ
Các trang web
http://www.youtube.com/watch?v=pv72lxgpVKo (10/9/2014) http://www.youtube.com/watch?v=mwGbbEAHqdU (10/9/2014)
76
PHỤ CHƢƠNG 1
CODE FORM GIAO DIỆN CHÍNH PHẦM MỀM
Private Sub BTNghich_Click()
Dim form1 As Form3
Form3.Show
Me.Hide
End Sub
Private Sub BTThuan_Click()
Dim form1 As Form2
Form2.Show
Me.Hide
End Sub
Private Sub DCKinhviho_Click()
Dim form1 As Form6
Form6.Show
Me.Hide
End Sub
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1
Timer2.Enabled = True
Timer2.Interval = 1
End Sub
Private Sub Mttin_Click()
filesl = ""
CommonDialog1.DialogTitle = "Nhap Ten File So Lieu"
CommonDialog1.Filter = "Solieu(*.sl)|*.sl|All File (*.*)|*.*|"
CommonDialog1.ShowOpen
filesl = CommonDialog1.FileName
End Sub
Private Sub QHGBGocdinhhuong_Click()
77 Form4.Show
Me.Hide
End Sub
Private Sub QHGDhuonggocbang_Click()
Dim form1 As Form5
Form5.Show
Me.Hide
End Sub
Private Sub QHGDHuongvoihaiphuong_Click()
Dim form1 As Form6
Form6.Show
Me.Hide
End Sub
Private Sub Timer1_Timer()
Label3.Caption = Time
End Sub
Private Sub Timer2_Timer()
Label4.Caption = Date
78
PHỤ CHƢƠNG 2
CODE FORM BÀI TOÁN TRẮC ĐỊA THUẬN
Private Function doiRadian(BETA#) As Double
Dim id%, ip%, giay#, pi#, pi2#, ro#
pi = Atn(1) * 4#
ro = 180# * 3600# / pi
id = Fix(BETA)
ip = Fix((BETA - id) * 100#)
giay = ((BETA - id) * 100# - ip) * 100#
BETA = (id * 3600# + ip * 60# + giay) / ro
End Function
Private Sub CmdThoat_Click()
End
End Sub
Private Sub CmdThuchien_Click()
Dim xa#, ya#, s#, afa#
Dim Xb#, Yb#
Dim id$, ip$, giay#
pi = Atn(1) * 4#
pi2 = pi * 2#
ro = 180# * 3600# / pi
If (TxtXa.Text = "" Or TxtYa = "") Then GoTo 10
If (TxtGDH.Text = "") Then GoTo 11
If (TxtKC.Text = "") Then GoTo 12
xa = Val(TxtXa.Text) ya = Val(TxtYa.Text) s = Val(TxtKC.Text) afa = Val(TxtGDH.Text) doiRadian afa Xb = xa + s * Cos(afa) Yb = ya + s * Sin(afa) TxtXb = Format(Xb, "0.000")
79 TxtYb = Format(Yb, "0.000")
Exit Sub
10:
MsgBox ("Ban can nhap toa do X,Y cua diem A"), vbYes, "THONG BAO"
Exit Sub
11:
MsgBox ("Ban can nhap goc dinh huong"), vbYes, "THONG BAO"
Exit Sub
12:
MsgBox ("Ban can nhap khoang cach"), vbYes, "THONG BAO"
80
PHỤ CHƢƠNG 3
CODE BÀI TOÁN TRẮC ĐỊA NGHỊCH
Private Function KC(xa#, ya#, Xb#, Yb#) As Double
Dim dx#, dy#
dx = Xb - xa
dy = Yb - ya
KC = Sqr(dx * dx + dy * dy)
End Function
Private Function DhHg(xa#, ya#, Xb#, Yb#) As Double
Dim dx#, dy#, dxy#, R#, pi#, pi2#
pi = Atn(1) * 4# pi2 = pi * 2# dx = Xb - xa dy = Yb - ya If (dx = 0) Then R = pi / 2# Else dxy = Abs(dy / dx) R = Atn(dxy) End If If (dx >= 0 And dy >= 0) Then DhHg = R If (dx <= 0 And dy >= 0) Then DhHg = pi - R If (dx <= 0 And dy <= 0) Then DhHg = pi + R
If (dx >= 0 And dy <= 0) Then DhHg = pi2 - R
End Function
Private Function DH(xa#, ya#, Xb#, Yb#, afa0#) As Double
Dim dx#, dy#, dxy#, R#, ro#, pi#, pi2#
pi = Atn(1) * 4#
pi2 = pi * 2#
ro = 180# * 3600# / pi
dx = Xb - xa
81 If (dx = 0) Then R = pi / 2# Else dxy = Abs(dy / dx) R = Atn(dxy) End If
If (dx >= 0 And dy >= 0) Then afa0 = R
If (dx <= 0 And dy >= 0) Then afa0 = pi - R
If (dx <= 0 And dy <= 0) Then afa0 = pi + R
If (dx >= 0 And dy <= 0) Then afa0 = pi2 - R
End Function
Private Function doiRadian(BETA#) As Double
Dim id%, ip%, giay#, pi#, pi2#, ro#
pi = Atn(1) * 4#
ro = 180# * 3600# / pi
id = Fix(BETA)
ip = Fix((BETA - id) * 100#)
giay = ((BETA - id) * 100# - ip) * 100#
BETA = (id * 3600# + ip * 60# + giay) / ro
End Function
Private Function DoPhutGiay(BETA#, Kdo%, Kphut%, Kgiay#) As Double
Dim pi#, pi2#, ro#
pi = Atn(1) * 4#
ro = 180# * 3600# / pi
BETA = BETA * ro
Kdo = Fix(BETA / 3600#)
Kphut = Fix((BETA - Kdo * 3600#) / 60#)
Kgiay = BETA - Kdo * 3600# - Kphut * 60#
End Function
Private Sub Command1_Click()
Dim xa#, ya#, Xb#, Yb#
Dim dx#, dy#, s#, afa#, pi#, pi2#
82 Dim sodo%, sophut%, sogiay#
pi = Atn(1) * 4#
pi2 = pi * 2#
ro = 180# * 3600# / pi
If (TxtXa.Text = "" Or TxtYa = "") Then GoTo 10
If (TxtXb.Text = "" Or TxtYb = "") Then GoTo 11
xa = Val(TxtXa.Text)
ya = Val(TxtYa.Text)
Xb = Val(TxtXb.Text)
Yb = Val(TxtYb.Text)
'Tinh chieu dai
s = KC(xa, ya, Xb, Yb)
TxtS = Format(s, "0.000")
'Tinh goc dinh huong
afa = DhHg(xa, ya, Xb, Yb)
'Doi ra do, phut, giay
DoPhutGiay afa, sodo, sophut, sogiay
Txtanpha1 = Format(sodo, "000")
Txtanpha2 = Format(sophut, "00")
Txtanpha3 = Format(sogiay, "0.00")
Exit Sub
10:
MsgBox ("Ban can nhap toa do X,Y cua diem dau"), vbYes, "THONG BAO"
Exit Sub
11:
MsgBox ("Ban can nhap toa do X,Y cua diem sau"), vbYes, "THONG BAO"
End Sub
Private Sub Command2_Click()
End
83
PHỤ CHƢƠNG 4
CODE FORM BTQH_GÓC BẰNG VỚI GÓC ĐỊNH HƢỚNG
Private Function DoPhutGiay(BETA#, Kdo%, Kphut%, Kgiay#) As Double
Dim pi#, pi2#, ro#
pi = Atn(1) * 4#
ro = 180# * 3600# / pi
BETA = BETA * ro
Kdo = Fix(BETA / 3600#)
Kphut = Fix((BETA - Kdo * 3600#) / 60#)
Kgiay = BETA - Kdo * 3600# - Kphut * 60#
End Function
Private Function doiRadian(BETA#) As Double
Dim id%, ip%, giay#, pi#, pi2#, ro#
pi = Atn(1) * 4#
ro = 180# * 3600# / pi
id = Fix(BETA)
ip = Fix((BETA - id) * 100#)
giay = ((BETA - id) * 100# - ip) * 100#
BETA = (id * 3600# + ip * 60# + giay) / ro
End Function
Private Sub Command1_Click()
Dim afaP#, afaT#, pi#, ro#
Dim BETAP#, BETAT#
Dim sodo%, sophut%, sogiay#, id%, ip%, giay#
pi = Atn(1) * 4#
pi2 = pi * 2#
ro = 180# * 3600# / pi
'MsgBox "So pi=" & Format(pi, "0.00000000000000") & "So ro =" & Format(ro, "0.0000000000000000")
If (TxtGDHP = "") Then GoTo 10
If (TxtGDHT = "") Then GoTo 11
afaP = Val(TxtGDHP.Text)
84 afaT = Val(TxtGDHT.Text)
doiRadian afaT
BETAP = afaP - afaT
If (BETAP > pi2) Then BETAP = BETAP - pi2
If (BETAP < 0) Then BETAP = pi2 + BETAP
DoPhutGiay BETAP, sodo, sophut, sogiay
TxtGBP1 = Format(sodo, "000")
TxtGBP2 = Format(sophut, "00")
TxtGBP3 = Format(sogiay, "0.00")
Exit Sub
10:
MsgBox ("Ban can nhap GDH Tia Phai"), vbYes, "THONG BAO"
Exit Sub
11:
MsgBox ("Ban can nhap GDH Tia Trai"), vbYes, "THONG BAO"
End Sub
Private Sub Command2_Click()
End
85
PHỤ CHƢƠNG 5
CODE FORM BTQH_GÓC ĐỊNH HƢỚNG VỚI GÓC BẰNG
Private Function DoPhutGiay(BETA#, Kdo%, Kphut%, Kgiay#) As Double
Dim pi#, pi2#, ro#
pi = Atn(1) * 4#
ro = 180# * 3600# / pi
BETA = BETA * ro
Kdo = Fix(BETA / 3600#)
Kphut = Fix((BETA - Kdo * 3600#) / 60#)
Kgiay = BETA - Kdo * 3600# - Kphut * 60#
End Function
Private Function doiRadian(BETA#) As Double
Dim id%, ip%, giay#, pi#, pi2#, ro#
pi = Atn(1) * 4#
ro = 180# * 3600# / pi
id = Fix(BETA)
ip = Fix((BETA - id) * 100#)
giay = ((BETA - id) * 100# - ip) * 100#
BETA = (id * 3600# + ip * 60# + giay) / ro
End Function
Private Sub Command1_Click()
Dim afaD#, GB#, pi#, ro#
Dim afaS#
Dim sodo%, sophut%, sogiay#, id%, ip%, giay#
pi = Atn(1) * 4# pi2 = pi * 2# ro = 180# * 3600# / pi If (TxtGDHD = "") Then GoTo 10 If (TxtGBP = "") Then GoTo 11 afaD = Val(TxtGDHD.Text) doiRadian afaD GB = Val(TxtGBP.Text)
86 doiRadian GB
If (Option1.Value = True) Then
afaS = afaD + pi - GB
If (afaS > pi2) Then afaS = afaS - pi2
If (afaS < 0) Then afaS = pi2 + afaS
DoPhutGiay afaS, sodo, sophut, sogiay
TxtGDHS1 = Format(sodo, "000")
TxtGDHS2 = Format(sophut, "00")
TxtGDHS3 = Format(sogiay, "0.00")
Else
afaS = afaD - pi + GB
If (afaS > pi2) Then afaS = afaS - pi2
If (afaS < 0) Then afaS = pi2 + afaS
DoPhutGiay afaS, sodo, sophut, sogiay
TxtGDHS1 = Format(sodo, "000") TxtGDHS2 = Format(sophut, "00") TxtGDHS3 = Format(sogiay, "0.00") End If Exit Sub 10:
MsgBox ("Ban Can Nhap Goc Dinh Huong Canh Dau"), vbYes, "THONG BAO"
Exit Sub
11:
MsgBox ("Ban Can Nhap Goc Bang"), vbYes, "THONG BAO"
End Sub
Private Sub Command2_Click()
End