




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、渠道水力計算在delphi上的實(shí)現(xiàn)摘要:渠道水力計算一直以來在渠道設(shè)計中就是一件煩瑣的事情,因?yàn)槠渖婕暗酱罅康脑囁愎ぷ鳎谒こ坦喔惹翟O(shè)計中常令人不勝其煩。為化繁為簡,減少設(shè)計中的工作量,考慮使用計算機(jī)技術(shù)實(shí)現(xiàn)試算工作的程序化。我局正使用delphi編程技術(shù)進(jìn)展管理信息系統(tǒng)(IS)的開發(fā)建立工作,故決定將其納入IS系統(tǒng)建立中,成為本局IS系統(tǒng)的一局部。Delphi技術(shù)是美國Inprise公司開發(fā)的基于pasal語言的程序開發(fā)軟件,其不僅在數(shù)據(jù)庫編程方面有卓越表現(xiàn),而且在數(shù)學(xué)計算中也成績斐然。關(guān)鍵詞:水力計算Delphi謝才系數(shù)流量模數(shù)業(yè)務(wù)效勞器客戶端一、水力計算簡介將渠道內(nèi)水流視作明渠均勻
2、流這是渠道水力計算的前提,故計算公式采用明渠均勻流公式。主要任務(wù)是解決渠道的過水才能問題,即設(shè)計渠道的斷面尺寸,以保證通過所需的流量,或校核渠道是否滿足輸水流量的要求等。總體而言,渠道水力計算的問題主要分兩類:1、校核渠道過水才能;2、計算渠道的斷面尺寸。校核渠道的過水才能主要指在渠道的斷面形式、尺寸、糙率、底坡等都已確定的情況下,計算其過水才能。計算步驟為:先根據(jù)水深h,底寬b及邊坡系數(shù)計算出過水?dāng)嗝婷娣e、濕周、水力半徑R。再根據(jù)糙率n及水力半徑R計算或查表求出謝才系數(shù)。最后用明渠均勻流公式Q=(Ri)1/2計算出流量。計算渠道的斷面尺寸是渠系工程設(shè)計中遇到最多的問題。在規(guī)劃設(shè)計新渠道時,設(shè)
3、計流量由工程要求而定,坡度一般是由渠道大小根據(jù)地形條件確定,邊坡系數(shù)及糙率n,那么由土質(zhì)及渠壁材料與施工、管理運(yùn)用等條件而定。也即Q、n、i,求渠道的水深h及底寬b。此問題有兩個未知數(shù)b及h,故須經(jīng)過試算才能確定。計算步驟為:1、根據(jù)的流量Q及渠道底坡i,求出流量模數(shù)k0標(biāo)準(zhǔn)流量模數(shù);2、初步假定一水深,計算其相應(yīng)的過水?dāng)嗝妗裰堋⑺Π霃絉,并根據(jù)糙率n及水力半徑R計算或查表求出相應(yīng)的謝才系數(shù)值。然后,按公式K=R1/2求出相應(yīng)的流量模數(shù)值設(shè)計流量模數(shù);3、將計算出的設(shè)計流量模數(shù)與標(biāo)準(zhǔn)流量模數(shù)比擬,假設(shè)兩者相等,那么所設(shè)水深即為所求。假設(shè)不等,那么可另設(shè)一水深,重復(fù)上述步驟,直到計算出的設(shè)計
4、流量模數(shù)與標(biāo)準(zhǔn)流量模數(shù)相等為止。然后經(jīng)綜合考慮各方面因素,如施工便利,防洪超高和其他用處后最終確定渠道斷面尺寸。二、delphi技術(shù)簡介Delphi是由美國Inprise公司前Brland公司推出的可視化編程環(huán)境,它提供了一種方便、快捷的inds應(yīng)用程序開發(fā)工具。Delphi使用了irsftinds圖形用戶界面的許多先進(jìn)特性和設(shè)計思想,采用了可重復(fù)利用的完好的面向?qū)ο蟪绦蛘Z言bjet-rientedLanguage、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫技術(shù)。Delphi技術(shù)的根底源自pasal語言,是對pasal語言編程的可視化、面向?qū)ο蠡_展,從早期的對TurbPasal的inds化到如
5、今對網(wǎng)絡(luò)化編程擁有強(qiáng)大功能,Delphi已經(jīng)晉級到了如今的第七個版本,功能更加強(qiáng)大,對網(wǎng)絡(luò)開發(fā)的需求更為適應(yīng),對數(shù)據(jù)庫開發(fā)的技術(shù)更為成熟與穩(wěn)定。三、程序?qū)崿F(xiàn)的方法本程序作為我局管理信息系統(tǒng)(IS)的一局部外掛于我局管理信息系統(tǒng)的主界面上,屬于水利常用計算模塊。我局管理信息系統(tǒng)采用客戶端、業(yè)務(wù)效勞器、數(shù)據(jù)庫管理系統(tǒng)DBS三級構(gòu)造,客戶端和業(yè)務(wù)效勞器采用dephi開發(fā)實(shí)現(xiàn),數(shù)據(jù)庫管理系統(tǒng)DBS選擇美國irsft公司倍受業(yè)界好評的sqlserver2000。因此,本程序的數(shù)據(jù)計算、數(shù)據(jù)添加和數(shù)據(jù)刪除功能以函數(shù)的形式建于業(yè)務(wù)效勞器中,在客戶端通過函數(shù)調(diào)用到達(dá)功能的實(shí)現(xiàn)。為實(shí)現(xiàn)數(shù)據(jù)的保存與查詢,相應(yīng)地在
6、我局管理信息系統(tǒng)的業(yè)務(wù)數(shù)據(jù)庫lsdata中建立一個數(shù)據(jù)庫表ateralulatintable。客戶端除實(shí)現(xiàn)業(yè)務(wù)效勞器相關(guān)函數(shù)的調(diào)用外,還承當(dāng)程序外觀界面設(shè)置和局部簡單功能的實(shí)現(xiàn)。用戶只能通過程序客戶端實(shí)現(xiàn)對軟件的操作。1、功能設(shè)計本程序設(shè)計的主要目的在于實(shí)現(xiàn)對渠道水力計算的程序化和智能化,主要功能包括計算、成果顯示、數(shù)據(jù)打印,另外為方便數(shù)據(jù)輸入?yún)⒓又刂霉δ埽瑸楸阌跀?shù)據(jù)管理參加刪除功能,另外為實(shí)現(xiàn)計算界面的退出而參加界面退出功能。2、界面設(shè)計為實(shí)現(xiàn)計算成果的顯示功能在界面上添加一個dxdbgrid控件,作為成果顯示的載體。為方便數(shù)據(jù)的錄入和計算成果的單條顯示添加十五個astedit控件,為逐一說
7、明各個astedit控件代表的數(shù)據(jù)而增入十五個與之對應(yīng)的label控件,為程序美觀用一個grupbx將所有astedit控件和label控件歸為一組。為了實(shí)現(xiàn)計算、刪除、重置、打英退出功能,引入五個buttn控件其中計算按鈕除在單擊時觸發(fā)計算功能外,在計算完畢后自動執(zhí)行數(shù)據(jù)添加功能,將計算數(shù)據(jù)添參加數(shù)據(jù)庫中;刪除按鈕實(shí)現(xiàn)對庫內(nèi)單條數(shù)據(jù)的刪除;重置按鈕主要對astedit控件中的數(shù)據(jù)進(jìn)展去除,以利于新數(shù)據(jù)的輸入;打印功能作用在于將計算所得的成果通過外接打印機(jī)打印出來;退出按鈕的功能在于實(shí)現(xiàn)界面的退出,返回主界面。程序界面中渠道名稱、試算次序數(shù)、渠道底寬、渠道水深、渠道比降、邊坡系數(shù)、渠道糙率、設(shè)
8、計流量等數(shù)據(jù)可以手動輸入,其他數(shù)據(jù)不能在界面上輸入,由程序自動計算,并顯示。根據(jù)渠道水力計算原理,可輸入的數(shù)據(jù)除設(shè)計流量外均不允許為空,此外渠道糙率和渠道比降不能為零,出現(xiàn)上述情況,計算時程序?qū)⒂枰蕴崾尽閷?shí)現(xiàn)程序的打印功能,特增加一打印界面,在點(diǎn)擊打印按鈕時自動彈出,打印界面可以實(shí)現(xiàn)打英打印預(yù)覽功能,在此界面可以調(diào)用inds打印程序。詳細(xì)界面設(shè)計圖樣見圖1。圖一3、數(shù)據(jù)庫表設(shè)計本程序只有一張庫表,即渠道水力計算表ateralulatintable,經(jīng)過慎密的數(shù)據(jù)分析,設(shè)計該表共包含十五個字段,分別為:渠道名稱、試算次序數(shù)、渠道寬度、渠道水深、渠道比降、邊坡系數(shù)、設(shè)計流量、渠道糙率、濕周、標(biāo)準(zhǔn)
9、流量模數(shù)、過水?dāng)嗝婷娣e、水力半徑、謝才系數(shù)、設(shè)計斷面過水流量、設(shè)計流量模數(shù)。詳細(xì)庫表設(shè)計見表一:渠道水力計算表ateralulatintable表一編號中文名字段名數(shù)據(jù)類型數(shù)據(jù)長度可否為空備注1渠道名稱Dithnaehar20否主鍵2試算次序數(shù)alulatinnhar8否3渠道底寬DithidthNuer8否4渠道水深dithhEightNuer8否5渠道比降DithslpeNuer8否6邊坡系數(shù)SlpenuerNuer8否7設(shè)計流量PlanvlueNuer8可8渠道糙率DithrughNuer8否9濕周XnuerNuer12可10標(biāo)準(zhǔn)流量模數(shù)KstandardNuer12可11過水?dāng)嗝婷娣eF
10、lareaNuer12可12水力半徑aterradiusNuer12可13謝才系數(shù)nuerNuer12可14過水流量DesignvlueNuer12可15設(shè)計流量模數(shù)KdesignNuer12可4、內(nèi)置代碼設(shè)計內(nèi)置代碼主要是針對程序中相關(guān)控件觸發(fā)的事件而設(shè)定的相應(yīng)響應(yīng)。本程序包含的事件主要有各buttn控件引發(fā)的單擊事件、單擊dxdbgrid控件引發(fā)的事件(dxdbgridlik)、數(shù)據(jù)集控件滾動事件(ADDataSet1AfterSrll)和程序界面建立時的事件(frreat)。另外,業(yè)務(wù)效勞器(teperatinserver)中包含的兩個函數(shù)addateralulatin和deleteat
11、eralulatin也用程序代碼建立。各事件代碼分別如下:1addateralulatin函數(shù),代碼為:funtinTTeperatinServer.addateralulatin(nstdithnae:ideString;dithidth,dithheight,dithslpe,slpenuer,dithrugh,planvlue:urreny;nstalulatinn:ideString):Lngrd;varstrSql:string;dAffeted:Integer;kstandard,flarea,aterradius,nuer,designvlue,kdesign,xnuer:urr
12、eny;beginResult:=akeResult(Sev_Errr,Faility_Aunt,Err_Su);kstandard:=strtflat(fratflat(0.00,(planvlue/sqrt(dithslpe);flarea:=strtflat(fratflat(0.00,(dithidth+slpenuer*dithheight)*dithheight);xnuer:=strtflat(fratflat(0.00,(dithidth+2*dithheight*sqrt(1+sqr(slpenuer);aterradius:=strtflat(fratflat(0.000,
13、(flarea/xnuer);nuer:=strtflat(fratflat(0.00,(1/dithrugh*per(aterradius,1/6);kdesign:=strtflat(fratflat(0.00,(flarea*nuer*sqrt(aterradius);designvlue:=strtflat(fratflat(0.00,(flarea*nuer*sqrt(aterradius*dithslpe);strsql:=insertintateralulatintable(dithnae,dithidth,dithheight,+dithslpe,slpenuer,planvl
14、ue,dithrugh,kstandard,+flarea,aterradius,nuer,designvlue,Kdesign,xnuer,alulatinn)+values(+dithnae+,+flattstr(dithidth)+,+flattstr(dithheight)+,+flattstr(dithslpe)+,+flattstr(slpenuer)+,+flattstr(planvlue)+,+flattstr(dithrugh)+,+flattstr(kstandard)+,+flattstr(flarea)+,+flattstr(aterradius)+,+flattstr
15、(nuer)+,+flattstr(designvlue)+,+flattstr(kdesign)+,+flattstr(xnuer)+,+alulatinn+);ExeuteSQL(strSql,dAffeted);ifdAffeted=0thenbeginResult:=akeResult(SEV_Errr,Faility_Aunt,err_Insert);exit;end;end;2deleteateralulatin函數(shù)的代碼為:funtinTTeperatinServer.deleteateralulatin(nstdithnae,alulatinn:ideString):Lngrd
16、;varstrSql:string;dAffeted:Integer;beginResult:=akeResult(Sev_Errr,Faility_Aunt,Err_Su);StrSql:=Deletefrateralulatintable+heredithnae=+dithnae+andalulatinn=+alulatinn+;ExeuteSQL(strSql,dAffeted);ifdAffeted0thenbeginResult:=akeResult(SEV_Errr,Faility_Aunt,err_Delete);exit;end;end;3)計算按鈕(Buttn1lik)的代碼
17、為:predureTFrPrie.Buttn1lik(Sender:Tbjet);varresultde:hresubeginresultde:=-1;ifastedit1.text=thenbeginappliatin.essagebx(對不起,渠道名稱不能為空.,提示,b_k+b_inarning);astedit1.setfus;exit;end;ifastedit2.text=thenbeginappliatin.essagebx(對不起,渠道底寬,不能為空,提示,b_k+b_inarning);astedit2.SetFus;exit;end;ifastedit3.text=then
18、beginappliatin.essagebx(對不起,渠道水深,不能為空,提示,b_k+b_inarning);astedit3.SetFus;exit;end;ifastedit4.text=thenbeginappliatin.essagebx(對不起,邊坡系數(shù),不能為空,提示,b_k+b_inarning);astedit4.SetFus;exit;end;ifastedit5.text=thenbeginappliatin.essagebx(對不起,渠道糙率,不能為空,提示,b_k+b_inarning);astedit5.SetFus;exit;end;ifastedit6.tex
19、t=thenbeginappliatin.essagebx(對不起,渠道比降,不能為空,提示,b_k+b_inarning);astedit6.SetFus;exit;end;ifastedit15.text=thenbeginappliatin.essagebx(對不起,試算次序數(shù),不能為空,提示,b_k+b_inarning);astedit15.SetFus;exit;end;ifastedit2.value=0thenbeginappliatin.essagebx(對不起,渠道底寬,不能為零,提示,b_k+b_inarning);astedit2.SetFus;exit;end;ifa
20、stedit3.value=0thenbeginappliatin.essagebx(對不起,渠道水深,不能為零,提示,b_k+b_inarning);astedit3.SetFus;exit;end;ifastedit6.value=0thenbeginappliatin.essagebx(對不起,渠道比降,不能為零,提示,b_k+b_inarning);astedit6.SetFus;exit;end;ifastedit5.value=0thenbeginappliatin.essagebx(對不起,渠道糙率,不能為零,提示,b_k+b_inarning);astedit5.SetFus;
21、exit;end;tryteperatinserver.begintrans;resultde:=teperatinserver.Addateralulatin(astedit1.text,astedit2.value,astedit3.value,astedit6.value,astedit4.value,astedit5.value,astedit7.value,astedit15.text);finallyifHResultde(Resultde)=0thenbeginteperatinserver.it;Refresh;astedit1.text:=;astedit2.text:=;a
22、stedit3.text:=;astedit4.text:=;astedit5.text:=;astedit6.text:=;astedit7.text:=;astedit8.text:=;astedit9.text:=;astedit10.text:=;astedit11.text:=;astedit12.text:=;astedit13.text:=;astedit14.text:=;astedit15.text:=;astedit1.setfus;endelsebeginteperatinserver.rllbak;appliatin.essageBx(添加失敗,提示,b_k+b_ina
23、rning);astedit1.SetFus;end;end;end;4打印按鈕(Buttn2lik)的代碼為:predureTFrPrie.Buttn2lik(Sender:Tbjet);varsvdata:string;Iheader:integer;Iheaderbjet:integer;strsql:string;Rerdset10:_Rerdset;beginSvDatafile:=GetParentDir(ExtratFilePath(ParaStr(0)+dataateralulatin.txt;ppReprt1.lseDataPipelines;ifHFile0thenFIle
24、Lse(HFile);ifFileExists(svdatafile)thenDeletefile(svdatafile);hFile:=Filereate(svDatafile);strSQL:=selet*frlsdata.db.ateralulatintable;svdata:=teperatinServer.ResultStrrder(strSQL);Filerite(hFile,Pinter(SvData),Length(SvData);Filelse(HFile);ppTextPipeline1.FileNae:=SvDataFile;ppReprt1.DataPipeline:=
25、pptextPipeLine1;/處理表尾ifppReprt1.bjetByNae(iHeader,iHeaderbjet,ppLabel8)thenTPpLabel(PpReprt1.Bandsiheader.bjetsiHeaderbjet).aptin:=Fainfraebjet.peratrnae;ithTfrReprtPrevie1.reate(self)dtryppVieer1.Reprt:=ppReprt1;ppVieer1.FirstPage;sh;exeptfree;end;ppReprt1.lseDataPipelines;filelse(hfile);end;5)重置按鈕
26、(Buttn5lik)的代碼為:predureTFrPrie.Buttn5lik(Sender:Tbjet);beginastedit1.text:=;astedit2.text:=;astedit3.text:=;astedit4.text:=;astedit5.text:=;astedit6.text:=;astedit7.text:=;astedit8.text:=;astedit9.text:=;astedit10.text:=;astedit11.text:=;astedit12.text:=;astedit13.text:=;astedit14.text:=;astedit15.t
27、ext:=;end;end.6)刪除按鈕(Buttn4lik)的代碼為:predureTFrPrie.Buttn4lik(Sender:Tbjet);varresultde:Hresubeginresultde:=-1;ifappliatin.essageBx(您確實(shí)要刪除嗎?,刪除確認(rèn),B_YesN+B_INARNING+B_DefButtn2+B_Systedal)=IdNthenexit;tryteperatinServer.BeginTrans;resultde:=teperatinServer.deleteateralulatin(astedit1.text,astedit15.te
28、xt);finallyifHResultde(Resultde)=0thenbeginappliatin.essageBx(刪除成功,提示,B_K+B_INARNING);teperatinServer.it;Refresh;astedit1.text:=;astedit2.text:=;astedit3.text:=;astedit4.text:=;astedit5.text:=;astedit6.text:=;astedit7.text:=;astedit8.text:=;astedit9.text:=;astedit10.text:=;astedit11.text:=;astedit12
29、.text:=;astedit13.text:=;astedit14.text:=;astedit15.text:=;endelsebeginappliatin.essageBx(刪除失敗,提示,B_K+B_INARNING);teperatinServer.RllBak;end;end;end;7)退出按鈕(Buttn4lik)的代碼為:predureTFrPrie.Buttn3lik(Sender:Tbjet);beginlse;end;8)程序界面創(chuàng)立事件(frreat)的代碼為:predureTFrPrie.Frreate(Sender:Tbjet);varstrsql:string;
30、destring1:string;beginteperatinServer:=getserver(teperatinServer);Refresh;astedit1.text:=;astedit2.text:=;astedit3.text:=;astedit4.text:=;astedit5.text:=;astedit6.text:=;astedit7.text:=;astedit8.text:=;astedit9.text:=;astedit10.text:=;astedit11.text:=;astedit12.text:=;astedit13.text:=;astedit14.text:=;astedit15.text:=;end;9)單擊dxdbgrid事件和數(shù)據(jù)集控件滾動事件的代碼(兩事件代碼根本一樣):beginif(addataset1.rerdsetnil)and(addataset1.rerdunt0)thenbeginastEdit1.text:=AdDataset1.Fields0.Value;astEdit2.value:=AdDataset1.Fields1.Value;astEdit3.value:=AdDataset1.Fields2.Value;astEdit4.value:=AdDataset1.Fields3.Value;a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇護(hù)理職業(yè)學(xué)院《匯編與接口技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 塔里木大學(xué)《材料科學(xué)與工程專業(yè)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省蘇州市昆山市、太倉市2025年初三5月熱身考試英語試題含答案
- 六盤水市重點(diǎn)中學(xué)2025年高三下學(xué)期摸底(期末)考試英語試題含解析
- 內(nèi)蒙古能源職業(yè)學(xué)院《學(xué)術(shù)與實(shí)務(wù)講座A》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧省大連市第七十六中學(xué)2025屆初三第一次五校聯(lián)考自選模塊試卷含解析
- 鹽城工學(xué)院《古代文學(xué)Ⅱ(4)》2023-2024學(xué)年第一學(xué)期期末試卷
- 寧夏回族固原市原州區(qū)2025屆小升初數(shù)學(xué)重難點(diǎn)模擬卷含解析
- 順德市李兆基中學(xué)高三月月考英語試題
- 邯鄲市高二上學(xué)期期中考試化學(xué)試題
- 胸腔閉式引流護(hù)理-2023年中華護(hù)理學(xué)會團(tuán)體標(biāo)準(zhǔn)
- 2023年《移動式壓力容器充裝質(zhì)量管理手冊》
- 第二屆全國物流設(shè)計大賽一等獎作品:北京交通大學(xué)一隊(duì)全國決賽作品
- 全飛秒激光技術(shù)
- 水泥產(chǎn)品生產(chǎn)許可證實(shí)施細(xì)則
- ABB變頻器ACS510說明書
- 城軌道交通接觸網(wǎng)檢修工職業(yè)標(biāo)準(zhǔn)
- QC成果減少隧道工程Ⅳ類Ⅴ類圍巖超挖量
- LY/T 1763-2008沿海防護(hù)林體系工程建設(shè)技術(shù)規(guī)程
- 校園網(wǎng)站設(shè)計論文
- GB/T 17213.4-2015工業(yè)過程控制閥第4部分:檢驗(yàn)和例行試驗(yàn)
評論
0/150
提交評論