Tính khả thi của dự án

Một phần của tài liệu nghiên cứu lập trình tính toán nhanh một số bài toán trắc địa cơ bản phục vụ giải đáp bài tập trắc địa đại cương (Trang 93)

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

Một phần của tài liệu nghiên cứu lập trình tính toán nhanh một số bài toán trắc địa cơ bản phục vụ giải đáp bài tập trắc địa đại cương (Trang 93)

Tải bản đầy đủ (PDF)

(106 trang)