水利工程論文-渠道水力計(jì)算在delphi上的實(shí)現(xiàn).doc_第1頁
水利工程論文-渠道水力計(jì)算在delphi上的實(shí)現(xiàn).doc_第2頁
水利工程論文-渠道水力計(jì)算在delphi上的實(shí)現(xiàn).doc_第3頁
水利工程論文-渠道水力計(jì)算在delphi上的實(shí)現(xiàn).doc_第4頁
水利工程論文-渠道水力計(jì)算在delphi上的實(shí)現(xiàn).doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

水利工程論文-渠道水力計(jì)算在delphi上的實(shí)現(xiàn)摘要:渠道水力計(jì)算一直以來在渠道設(shè)計(jì)中就是一件煩瑣的事情,因?yàn)槠渖婕暗酱罅康脑囁愎ぷ?,在水利工程灌溉渠系設(shè)計(jì)中常令人不勝其煩。為化繁為簡,減少設(shè)計(jì)中的工作量,考慮使用計(jì)算機(jī)技術(shù)實(shí)現(xiàn)試算工作的程序化。我局正使用delphi編程技術(shù)進(jìn)行管理信息系統(tǒng)(MIS)的開發(fā)建設(shè)工作,故決定將其納入MIS系統(tǒng)建設(shè)中,成為本局MIS系統(tǒng)的一部分。Delphi技術(shù)是美國Inprise公司開發(fā)的基于pascal語言的程序開發(fā)軟件,其不僅在數(shù)據(jù)庫編程方面有卓越表現(xiàn),而且在數(shù)學(xué)計(jì)算中也成績斐然。關(guān)鍵詞:水力計(jì)算Delphi謝才系數(shù)流量模數(shù)業(yè)務(wù)服務(wù)器客戶端一、水力計(jì)算簡介將渠道內(nèi)水流視作明渠均勻流這是渠道水力計(jì)算的前提,故計(jì)算公式采用明渠均勻流公式。主要任務(wù)是解決渠道的過水能力問題,即設(shè)計(jì)渠道的斷面尺寸,以保證通過所需的流量,或校核渠道是否滿足輸水流量的要求等。總體而言,渠道水力計(jì)算的問題主要分兩類:1、校核渠道過水能力;2、計(jì)算渠道的斷面尺寸。校核渠道的過水能力主要指在渠道的斷面形式、尺寸、糙率、底坡等都已確定的情況下,計(jì)算其過水能力。計(jì)算步驟為:先根據(jù)水深h,底寬b及邊坡系數(shù)m計(jì)算出過水?dāng)嗝婷娣e、濕周、水力半徑R。再根據(jù)糙率n及水力半徑R計(jì)算(或查表)求出謝才系數(shù)C。最后用明渠均勻流公式Q=C(Ri)1/2計(jì)算出流量。計(jì)算渠道的斷面尺寸是渠系工程設(shè)計(jì)中遇到最多的問題。在規(guī)劃設(shè)計(jì)新渠道時(shí),設(shè)計(jì)流量由工程要求而定,坡度一般是由渠道大小根據(jù)地形條件確定,邊坡系數(shù)m及糙率n,則由土質(zhì)及渠壁材料與施工、管理運(yùn)用等條件而定。也即已知Q、m、n、i,求渠道的水深h及底寬b。此問題有兩個(gè)未知數(shù)b及h,故須經(jīng)過試算才能確定。計(jì)算步驟為:1、根據(jù)已知的流量Q及渠道底坡i,求出流量模數(shù)k0(標(biāo)準(zhǔn)流量模數(shù));2、初步假定一水深,計(jì)算其相應(yīng)的過水?dāng)嗝?、濕周、水力半徑R,并根據(jù)糙率n及水力半徑R計(jì)算或查表求出相應(yīng)的謝才系數(shù)C值。然后,按公式K=CR1/2求出相應(yīng)的流量模數(shù)值(設(shè)計(jì)流量模數(shù));3、將計(jì)算出的設(shè)計(jì)流量模數(shù)與標(biāo)準(zhǔn)流量模數(shù)比較,若兩者相等,則所設(shè)水深即為所求。若不等,則可另設(shè)一水深,重復(fù)上述步驟,直到計(jì)算出的設(shè)計(jì)流量模數(shù)與標(biāo)準(zhǔn)流量模數(shù)相等為止。然后經(jīng)綜合考慮各方面因素,如施工便利,防洪超高和其他用途后最終確定渠道斷面尺寸。二、delphi技術(shù)簡介Delphi是由美國Inprise公司(前Borland公司)推出的可視化編程環(huán)境,它提供了一種方便、快捷的Windows應(yīng)用程序開發(fā)工具。Delphi使用了MicrosoftWindows圖形用戶界面的許多先進(jìn)特性和設(shè)計(jì)思想,采用了可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z言(Object-OrientedLanguage)、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫技術(shù)。Delphi技術(shù)的基礎(chǔ)源自pascal語言,是對pascal語言編程的可視化、面向?qū)ο蠡l(fā)展,從早期的對TurboPascal的Windows化到如今對網(wǎng)絡(luò)化編程擁有強(qiáng)大功能,Delphi已經(jīng)升級到了如今的第七個(gè)版本,功能更加強(qiáng)大,對網(wǎng)絡(luò)開發(fā)的需求更為適應(yīng),對數(shù)據(jù)庫開發(fā)的技術(shù)更為成熟與穩(wěn)定。三、程序?qū)崿F(xiàn)的方法本程序作為我局管理信息系統(tǒng)(MIS)的一部分外掛于我局管理信息系統(tǒng)的主界面上,屬于水利常用計(jì)算模塊。我局管理信息系統(tǒng)采用客戶端、業(yè)務(wù)服務(wù)器、數(shù)據(jù)庫管理系統(tǒng)(DBMS)三級結(jié)構(gòu),客戶端和業(yè)務(wù)服務(wù)器采用dephi開發(fā)實(shí)現(xiàn),數(shù)據(jù)庫管理系統(tǒng)(DBMS)選擇美國Microsoft公司倍受業(yè)界好評的sqlserver2000。因此,本程序的數(shù)據(jù)計(jì)算、數(shù)據(jù)添加和數(shù)據(jù)刪除功能以函數(shù)的形式建于業(yè)務(wù)服務(wù)器中,在客戶端通過函數(shù)調(diào)用達(dá)到功能的實(shí)現(xiàn)。為實(shí)現(xiàn)數(shù)據(jù)的保存與查詢,相應(yīng)地在我局管理信息系統(tǒng)的業(yè)務(wù)數(shù)據(jù)庫lsdata中建立一個(gè)數(shù)據(jù)庫表watercalculationtable??蛻舳顺龑?shí)現(xiàn)業(yè)務(wù)服務(wù)器相關(guān)函數(shù)的調(diào)用外,還承擔(dān)程序外觀界面設(shè)置和部分簡單功能的實(shí)現(xiàn)。用戶只能通過程序客戶端實(shí)現(xiàn)對軟件的操作。1、功能設(shè)計(jì)本程序設(shè)計(jì)的主要目的在于實(shí)現(xiàn)對渠道水力計(jì)算的程序化和智能化,主要功能包括計(jì)算、成果顯示、數(shù)據(jù)打印,另外為方便數(shù)據(jù)輸入加入重置功能,為便于數(shù)據(jù)管理加入刪除功能,另外為實(shí)現(xiàn)計(jì)算界面的退出而加入界面退出功能。2、界面設(shè)計(jì)為實(shí)現(xiàn)計(jì)算成果的顯示功能在界面上添加一個(gè)dxdbgrid控件,作為成果顯示的載體。為方便數(shù)據(jù)的錄入和計(jì)算成果的單條顯示添加十五個(gè)coastedit控件,為逐一說明各個(gè)coastedit控件代表的數(shù)據(jù)而增入十五個(gè)與之對應(yīng)的label控件,為程序美觀用一個(gè)groupbox將所有coastedit控件和label控件歸為一組。為了實(shí)現(xiàn)計(jì)算、刪除、重置、打印、退出功能,引入五個(gè)button控件其中計(jì)算按鈕除在單擊時(shí)觸發(fā)計(jì)算功能外,在計(jì)算結(jié)束后自動執(zhí)行數(shù)據(jù)添加功能,將計(jì)算數(shù)據(jù)添加入數(shù)據(jù)庫中;刪除按鈕實(shí)現(xiàn)對庫內(nèi)單條數(shù)據(jù)的刪除;重置按鈕主要對coastedit控件中的數(shù)據(jù)進(jìn)行清除,以利于新數(shù)據(jù)的輸入;打印功能作用在于將計(jì)算所得的成果通過外接打印機(jī)打印出來;退出按鈕的功能在于實(shí)現(xiàn)界面的退出,返回主界面。程序界面中渠道名稱、試算次序數(shù)、渠道底寬、渠道水深、渠道比降、邊坡系數(shù)、渠道糙率、設(shè)計(jì)流量等數(shù)據(jù)可以手動輸入,其他數(shù)據(jù)不能在界面上輸入,由程序自動計(jì)算,并顯示。根據(jù)渠道水力計(jì)算原理,可輸入的數(shù)據(jù)除設(shè)計(jì)流量外均不允許為空,此外渠道糙率和渠道比降不能為零,出現(xiàn)上述情況,計(jì)算時(shí)程序?qū)⒂枰蕴崾?。為?shí)現(xiàn)程序的打印功能,特增加一打印界面,在點(diǎn)擊打印按鈕時(shí)自動彈出,打印界面可以實(shí)現(xiàn)打印、打印預(yù)覽功能,在此界面可以調(diào)用windows打印程序。具體界面設(shè)計(jì)圖樣見圖1。(圖一)3、數(shù)據(jù)庫表設(shè)計(jì)本程序只有一張庫表,即渠道水力計(jì)算表(watercalculationtable),經(jīng)過慎密的數(shù)據(jù)分析,設(shè)計(jì)該表共包含十五個(gè)字段,分別為:渠道名稱、試算次序數(shù)、渠道寬度、渠道水深、渠道比降、邊坡系數(shù)、設(shè)計(jì)流量、渠道糙率、濕周、標(biāo)準(zhǔn)流量模數(shù)、過水?dāng)嗝婷娣e、水力半徑、謝才系數(shù)、設(shè)計(jì)斷面過水流量、設(shè)計(jì)流量模數(shù)。具體庫表設(shè)計(jì)見表一:渠道水力計(jì)算表(watercalculationtable)表一編號中文名字段名數(shù)據(jù)類型數(shù)據(jù)長度可否為空備注1渠道名稱DitchnameChar20否主鍵2試算次序數(shù)CalculationnoChar8否3渠道底寬DitchwidthNumer8否4渠道水深ditchheightNumer8否5渠道比降DitchslopeNumer8否6邊坡系數(shù)SlopenumerNumer8否7設(shè)計(jì)流量PlanvolumeNumer8可8渠道糙率DitchroughNumer8否9濕周XnumerNumer12可10標(biāo)準(zhǔn)流量模數(shù)KstandardNumer12可11過水?dāng)嗝婷娣eFlowareaNumer12可12水力半徑WaterradiusNumer12可13謝才系數(shù)CnumerNumer12可14過水流量DesignvolumeNumer12可15設(shè)計(jì)流量模數(shù)KdesignNumer12可4、內(nèi)置代碼設(shè)計(jì)內(nèi)置代碼主要是針對程序中相關(guān)控件觸發(fā)的事件而設(shè)定的相應(yīng)響應(yīng)。本程序包含的事件主要有各button控件引發(fā)的單擊事件、單擊dxdbgrid控件引發(fā)的事件(dxdbgridclick)、數(shù)據(jù)集控件滾動事件(ADODataSet1AfterScroll)和程序界面建立時(shí)的事件(formcreat)。另外,業(yè)務(wù)服務(wù)器(teoperationserver)中包含的兩個(gè)函數(shù)addwatercalculation和deletewatercalculation也用程序代碼建立。各事件代碼分別如下:1)addwatercalculation函數(shù),代碼為:functionTTeOperationServer.addwatercalculation(constditchname:WideString;ditchwidth,ditchheight,ditchslope,slopenumer,ditchrough,planvolume:Currency;constcalculationno:WideString):LongWord;varstrSql:string;dwAffected:Integer;kstandard,flowarea,waterradius,cnumer,designvolume,kdesign,xnumer:currency;beginResult:=MakeResult(Sev_Error,Facility_Account,Err_Suc);kstandard:=strtofloat(formatfloat(0.00,(planvolume/sqrt(ditchslope);flowarea:=strtofloat(formatfloat(0.00,(ditchwidth+slopenumer*ditchheight)*ditchheight);xnumer:=strtofloat(formatfloat(0.00,(ditchwidth+2*ditchheight*sqrt(1+sqr(slopenumer);waterradius:=strtofloat(formatfloat(0.000,(flowarea/xnumer);cnumer:=strtofloat(formatfloat(0.00,(1/ditchrough*power(waterradius,1/6);kdesign:=strtofloat(formatfloat(0.00,(flowarea*cnumer*sqrt(waterradius);designvolume:=strtofloat(formatfloat(0.00,(flowarea*cnumer*sqrt(waterradius*ditchslope);strsql:=insertintowatercalculationtable(ditchname,ditchwidth,ditchheight,+ditchslope,slopenumer,planvolume,ditchrough,kstandard,+flowarea,waterradius,cnumer,designvolume,Kdesign,xnumer,calculationno)+values(+ditchname+,+floattostr(ditchwidth)+,+floattostr(ditchheight)+,+floattostr(ditchslope)+,+floattostr(slopenumer)+,+floattostr(planvolume)+,+floattostr(ditchrough)+,+floattostr(kstandard)+,+floattostr(flowarea)+,+floattostr(waterradius)+,+floattostr(cnumer)+,+floattostr(designvolume)+,+floattostr(kdesign)+,+floattostr(xnumer)+,+calculationno+);ExecuteSQL(strSql,dwAffected);ifdwAffected=0thenbeginResult:=MakeResult(SEV_Error,Facility_Account,err_Insert);exit;end;end;2)deletewatercalculation函數(shù)的代碼為:functionTTeOperationServer.deletewatercalculation(constditchname,calculationno:WideString):LongWord;varstrSql:string;dwAffected:Integer;beginResult:=MakeResult(Sev_Error,Facility_Account,Err_Suc);StrSql:=Deletefromwatercalculationtable+whereditchname=+ditchname+andca

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論