姜依彤
(黑龍江省水利水電勘測(cè)設(shè)計(jì)研究院,哈爾濱 150080)
文章編號(hào):1007-7596(2015)12-0100-03
Visual Basic在計(jì)算堤防超高中的應(yīng)用
姜依彤
(黑龍江省水利水電勘測(cè)設(shè)計(jì)研究院,哈爾濱 150080)
隨著計(jì)算機(jī)的飛速發(fā)展,如今計(jì)算機(jī)已成為各行各業(yè)中必不可少的工具。而利用計(jì)算機(jī)更好的在專業(yè)當(dāng)中發(fā)揮作用,那要靠一些程序?qū)崿F(xiàn)。利用VB編程,可以做一些簡(jiǎn)單的程序,節(jié)省工作時(shí)間,使計(jì)算成果更精準(zhǔn),更有效的完成工作。文章利用VB編程,來(lái)實(shí)現(xiàn)堤防超高的計(jì)算。
網(wǎng)站建設(shè);網(wǎng)站設(shè)計(jì);網(wǎng)頁(yè)設(shè)計(jì);水利工程
Visual Basic是一種常用的編程開(kāi)發(fā)工具。Visual Basic是一種由 Microsoft 公司開(kāi)發(fā)的結(jié)構(gòu)化的、模塊化的、面向?qū)ο蟮?、包含協(xié)助開(kāi)發(fā)環(huán)境的事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語(yǔ)言[1]。
VB的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來(lái)指定組建的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫多少代碼就可以完成一個(gè)簡(jiǎn)單的程序。
VB有如下特點(diǎn):
1)可視化編程:最直觀的編程方法,程序人員只需繪制界面,無(wú)需編程,VB自動(dòng)產(chǎn)生界面代碼,就可以完成許多步驟。這樣大大的提高了程序設(shè)計(jì)的效率。這些在以前的編程語(yǔ)言下是要經(jīng)過(guò)相當(dāng)復(fù)雜的工作的。
2)面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。
3)事件驅(qū)動(dòng)的編程機(jī)制:由事件來(lái)引發(fā)程序的運(yùn)行。
4)結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。
5)支持多種數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn):Access、dBASE、FoxPro等。
6)支持DDE和OLE。
7)充分利用WINDOWS資源:通過(guò)ActiveX控件OCX、動(dòng)態(tài)鏈接庫(kù)DLL、應(yīng)用程序接口API可任意擴(kuò)展功能。
8)VB6.0在開(kāi)發(fā)環(huán)境上、網(wǎng)絡(luò)功能等的增強(qiáng)。
如今,計(jì)算機(jī)已經(jīng)是各行各業(yè)中必不可少的工具,而利用計(jì)算機(jī)更好的在專業(yè)當(dāng)中發(fā)揮作用,那要靠一些程序?qū)崿F(xiàn)。利用VB編程,可以做一些簡(jiǎn)單的程序,節(jié)省工作時(shí)間,使計(jì)算成果更精準(zhǔn),更有效的完成工作。
編程應(yīng)用于各個(gè)領(lǐng)域當(dāng)中,在水利工程設(shè)計(jì)中,更是應(yīng)用廣泛。根據(jù)VB的特點(diǎn),在水利工程當(dāng)中,可以利用VB編寫很多程序,比如堤基處理計(jì)算、設(shè)計(jì)潮位計(jì)算、護(hù)岸計(jì)算、滲流計(jì)算、抗滑穩(wěn)定計(jì)算等。
運(yùn)用VB編寫完程序后,可以代替電子表格等工具進(jìn)行計(jì)算,實(shí)現(xiàn)輸入數(shù)據(jù)自動(dòng)生成結(jié)果,大量節(jié)省了工作時(shí)間,提高工作效率。
經(jīng)實(shí)驗(yàn),運(yùn)用VB編程,實(shí)現(xiàn)了堤防超高的計(jì)算。
下面運(yùn)用VB,簡(jiǎn)單實(shí)現(xiàn)堤防超高的計(jì)算。
3.1 主界面
首先做一個(gè)Frame框架,將所需要的基礎(chǔ)數(shù)據(jù)要素名稱都用Label標(biāo)簽輸入進(jìn)去,在每一個(gè)Label標(biāo)簽后都做個(gè)Text文本框,內(nèi)容為空,以便運(yùn)行程序時(shí)輸入基礎(chǔ)數(shù)據(jù)用。做好的主界面如圖1所示。
圖1 主界面
3.2 波浪要素確定
首先做一個(gè)Frame框架,將所要生成的數(shù)據(jù)要素名稱都用Label標(biāo)簽輸入進(jìn)去,在每一個(gè)Label標(biāo)簽后都做個(gè)Text文本框,內(nèi)容為空,在下面做一個(gè)command按鈕。運(yùn)行程序時(shí),點(diǎn)擊按鈕,計(jì)算結(jié)果均顯示在文本框里。做好的主界面如圖2所示。
圖2 波浪要素確定界面
3.3 風(fēng)浪爬高確定
首先做一個(gè)Frame框架,將所要生成的數(shù)據(jù)要素名稱都用Label標(biāo)簽輸入進(jìn)去,在每一個(gè)Label標(biāo)簽后都做個(gè)Text文本框,內(nèi)容為空,在下面做一個(gè)command按鈕。運(yùn)行程序時(shí),點(diǎn)擊按鈕,計(jì)算結(jié)果均顯示在文本框里。
對(duì)于“請(qǐng)選擇護(hù)面類型”和“是否允許越浪”,這里做了一個(gè)ComboBox組合框,當(dāng)選擇時(shí),K△1與K△2、Kp均由程序給出數(shù)值。
做好的主界面如圖3所示。
圖3 風(fēng)浪爬高確定界面
3.4 波浪爬高折減
首先做一個(gè)Frame框架,將所要生成的數(shù)據(jù)要素名稱都用Label標(biāo)簽輸入進(jìn)去,在每一個(gè)Label標(biāo)簽后都做個(gè)Text文本框,內(nèi)容為空,在下面做一個(gè)command按鈕。運(yùn)行程序時(shí),點(diǎn)擊按鈕,計(jì)算結(jié)果均顯示在文本框里。做好的主界面如圖4所示。
圖4 波浪爬高折減界面
3.5 超高計(jì)算
首先做一個(gè)Frame框架,將將所需要的基礎(chǔ)數(shù)據(jù)要素名稱和所要生成的數(shù)據(jù)要素名稱都用Label標(biāo)簽輸入進(jìn)去,在每一個(gè)Label標(biāo)簽后都做個(gè)Text文本框,內(nèi)容為空,再做一個(gè)command按鈕。運(yùn)行程序時(shí),點(diǎn)擊按鈕,計(jì)算結(jié)果均顯示在最后的文本框里。做好的主界面如圖5所示。
圖5 超高計(jì)算界面
通過(guò)以上圖1~圖5這幾個(gè)步驟,超高計(jì)算就自動(dòng)生成出來(lái)了。
3.6 菜單編輯
打開(kāi)菜單編輯器,對(duì)菜進(jìn)行編輯,做這個(gè)菜單編輯的好處就是,今后可以編寫更多的內(nèi)容來(lái)完善VB小程序,做好的菜單如圖6所示。
圖6 菜單界面
可視化的“框架”做好了,接下來(lái)就是對(duì)每一個(gè)控件進(jìn)行程序編寫。
下面以“3.2風(fēng)浪要素確定”為例簡(jiǎn)單介紹。
根據(jù)《堤防工程設(shè)計(jì)規(guī)范》GB50286-2013,其中C.1.2、C.1.3、C.1.4計(jì)算波長(zhǎng)L的公式。公式如下:
(1)
按平均波周期計(jì)算的波長(zhǎng)可按下式計(jì)算:
(2)
式中:L為平均波長(zhǎng),m。
對(duì)于“計(jì)算”按鈕的程序編寫如下:
Private Sub Command1_Click()
Dim V, f, m, d, H, T, l As Double
Dim A1, b1, c1, d1, e1, V1, L1 As Double
m = Text3.Text
V1 = Text1.Text
V = V1 * Text17.Text
f = Text2.Text
d = Text5.Text
A1 = 0.7 * (9.81 * d / (V ^ 2)) ^ 0.7
b1 = 0.0018 * (9.81 * f / (V ^ 2)) ^ 0.45
c1 = (Exp(A1) - Exp(-A1)) / (Exp(A1) + Exp(-A1))
d1 = b1 / (0.13 * c1)
e1 = (Exp(d1) - Exp(-d1)) / (Exp(d1) + Exp(-d1))
H = 0.13 * c1 * e1 * (V ^ 2) / 9.81
T = 13.9 * (9.81 * H / (V ^ 2)) ^ 0.5 * V / 9.81
l = 1
Do
L1 = 9.81 * T ^ 2 * ((Exp(2 * 3.1415926 * d / l) - Exp(-2 * 3.1415926 * d / l)) / (Exp(2 * 3.1415926 * d / l) + Exp(-2 * 3.1415926 * d / l))) / (2 * 3.1415926)
l = l + 0.001
Loop While l <= L1
Text6.Text = H
Text7.Text = T
Text8.Text = L1
Text11.Text = V / (9.81 * d) ^ (0.5)
Text13.Text = H / d
End Sub
運(yùn)用VB編寫完程序后,可以代替電子表格等工具進(jìn)行計(jì)算,實(shí)現(xiàn)輸入數(shù)據(jù)自動(dòng)生成結(jié)果,大量節(jié)省了工作時(shí)間,提高工作效率。因此,在今后的工作中,可以用VB編寫一些程序,有效的利用在水利工程設(shè)計(jì)當(dāng)中。
[1]龔沛增,Visual Basic 程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2004:26-34.
2015-09-11
姜依彤(1987- ),女,黑龍江哈爾濱人,助理工程師。
TP311.1
B