1000部丰满熟女富婆视频,托着奶头喂男人吃奶,厨房挺进朋友人妻,成 人 免费 黄 色 网站无毒下载

首頁 > 文章中心 > 正文

Java在線農業輔助分析

前言:本站為你精心整理了Java在線農業輔助分析范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

Java在線農業輔助分析

1問題的提出

隨著信息技術的飛速發展,互聯網已經滲透到社會生產和生活的各個方面。農業專家系統正是這一背景下的產物,它將農業生產技術和計算機網絡技術高效結合,將與農業生產相關的地質情況、土壤類型、肥料配方等數據通過互聯網整合起來,對緩解農業生產技術的地區差異、解決農業生產中所遇到的問題和加快科技成果的交流起到了積極作用。java語言是一個“簡單、強大、面向對象、平臺獨立、多線程、動態和通用的編程環境”,它被廣泛采用和迅速普及的核心在于其平臺的獨立性[1]。Java語言不僅僅是一個程序設計語言,更是一個網絡操作系統。Java語言將從根本上改變網絡應用程序的開發和使用方式,使它逐漸成為在Internet網絡以及操作系統等方面的應用上最受歡迎的開發與編程語言之一。筆者將基于土壤信息管理、生產力評價和肥料配方等幾方面來研究互聯網環境下農業專家系統的輔助系統的設計與實現,以期為相關研究提供借鑒。

2在線農業輔助系統的結構體系

2.1整體結構如圖1所示,因為用戶較為分散,同時為了節約成本,該系統采用基于客戶端/服務器的B/S結構:第1層為客戶端,用戶使用Web瀏覽器進行登陸;通過互聯網與處于第2層的服務器端進行連接;第3層為數據庫,實現數據的存儲與管理。

2.2客戶端模塊客戶端使用JavaApplet來實現,通過在Web頁面中嵌入具有計算功能的Applet小程序來完成Ap-plet與Servlet的通信,以及將集成有數據訪問和計算功能的類包隨同Web頁面一起下載到客戶端,從而實現對分布異構數據的調用和分布式計算。如圖2所示,在線農業輔助系統的客戶端有4個相對獨立的模塊:土壤信息、生產力信息、肥料名稱和數量以及配方施肥結果。

2.3服務器端模塊服務器端使用JavaServlet程序實現,如圖3所示。與客戶端相對應,同樣有4個模塊:土壤信息查詢、生產力信息分析、肥料名稱查詢和施肥配方分析。

2.4數據庫設計數據庫的內容和數據的組織形式,是系統各功能之間數據共享的基礎。該系統數據庫采用SQLServer2005,它的主要內容包括土壤信息(土壤養分、土壤環境和土壤類型)和肥料信息(有機肥和化肥)。數據庫的主要操作流程為:讀取土壤信息和肥料信息,傳給Applet供用戶選擇使用,也可以為施肥配方分析提供依據。

2.5系統功能用戶依據土壤信息、生產力情況和選擇施用的肥料,通過該在線系統制定農作物在每個生長時期的科學施肥方案,從而提高作物產量,具體功能有8個。①用戶給出土壤養分及環境條件,系統根據土壤生產潛力模型預估土地單位面積產量。②利用土地的歷年平均產量得到目標年該土地的推薦目標產量。③根據土壤的氮、磷含量和土地目標產量進行目標產量與土壤養分的有效性檢驗。④利用氮、磷素肥建立數學模型,根據土壤養分和目標產量求出土壤所需純氮、磷量。⑤用戶輸入所需有機肥的數量和種類。⑥通過模型計算用戶選擇施用的有機肥的純氮、磷含量。⑦根據土壤所需純氮、磷量和用戶施用有機肥的純氮、磷量,得到土壤所需化肥的純氮、磷量。⑧根據土壤所需化肥純氮、磷量和施肥配比模型,得到每個生育期的肥料計劃。施肥量的計算模型為:施肥量=(作物單位產量養分吸收量×目標產量-土壤測試值×0•15×土壤養分校正系數)/(肥料中養分含量×肥料當季利用率)[2]。其中,土壤養分校正系數=(無肥區產量×作物單位產量養分吸收量)/(土壤養分測定值×0.15)。

3實現系統的關鍵環節

3.1JavaServlet技術主要利用JavaServlet技術來實現該系統[3]。JavaServlet程序運行在服務器端,與傳統的CGI技術相比,JavaServlet效率高、容易使用,具有強大的功能,可移植性更強,有利于節約資金。JavaServlet的運行機制為:客戶建立一個Web服務請求,命名一個Serverle,t就如同URL的一部分,Web服務器向由Servlet類對象所定位的Servlet引擎發送一個請求,Servlet引擎調用一個Servlet服務方法。即:瀏覽器(客戶)←URL請求→Web服務器←→Servlet對象(應用程序服務器)。

3.2系統運行環境系統采用基于B/S結構的3層網絡結構,因此客戶端需要擁有支持JavaApplet的瀏覽器、支持JavaServlet的服務器和能運行相關的數據庫,并且客戶端的瀏覽器需要支持Java虛擬機[4]。服務器端的應用程序要運行在一個支持JavaServlet的Web服務器上,或者在現有的Web服務器上安裝Servlet軟件包。該系統采用的是Sun的JavaWebServer。該服務器用Java語言寫成。實現該系統時,主要涉及以下幾個關鍵技術:客戶端Ja-vaApplet與服務器端JavaServlet的通信;服務器端對數據庫的操作。客戶端和服務器端可以通過Http協議的Get和Post進行交互,客戶端必須打開一個到指定服務器端的URL連接;一旦建立了此連接,客戶端就可以從服務器端得到一個OutputStream或InputStream對象。實現客戶端與服務器通信的關鍵代碼為://Applet與Servlet通訊的連接URLurl=newURL(serverURL);URLConnectionuc=ur.lopenConnection();//輸出流DataOutputStreamFlush=newDataOutputStream(uc.getOutputStream());Flush.writeBytes(querystring);Flush.flush();Flush.close();//接受流InputStreamReadinFlush=newInputStreamReader(uc.getInputStream());服務器通過Servlet中的getParameter來獲取客戶端請求,通過ServletOutputStream將服務器響應流輸出,相應程序片段為://服務器端獲取請求和響應StringSQL=new(req.getParamenter(“param”);//響應ServletOutputStreamservletout=res.getOutputStream();…servletou.tprintln(responsel);

3.3JavaServlet與數據庫的連接首先使用Connection對象的createStatement()方法創建一個可以有查詢的State-ment類的對象。然后使用該類的executiveQuery()方法,它的參數是包含SQL語句的字符串,并且會返回數據庫中的所有內容,并把它作為ResultSet類的對象,然后使用ResultSet類的geMtetaData()方法,返回一個ResultSeMtetaData類的對象。

3.4數據處理在數據庫訪問的基礎上,可將所獲數據傳遞給相應Applet進行計算分析。由于數據庫訪問過程中采用字符串的數據格式讀出數據,所以在涉及計算的應用中,所獲數據不能直接進行計算,還需進一步將數據流轉化為雙精度格式。完成相應數據讀取和數據轉換格式的程序為://讀取數據do{Stringreturninfo=rs.getString();Listtable1.add(returninfo);Seclections0=listtable1.getItems();for(intloopIndex=0;loopIndex<selection0.lengtn();loopIndex++){al[loopIndex]=Double.parseDouble(selection0[loopIn-dex];}}while(rs.next())

3.5關閉數據庫連接當訪問完某個數據庫時,應該關閉數據連接,釋放與連接有關的資源。具體方法為:依次調用Result類、SetStatement類和Connection類的close()方法。另外,在程序中,使用繼承方法,實現了帶有有效性檢驗的浮點型單行編輯器,并可自定義小數進行四舍五入的運算。同時可以運用多態方法,使控件對象的使用更具靈活性。

4結論與討論

采用Java技術,設計和實現了在線農業輔助系統,即由客戶端通過瀏覽器訪問服務器,下載集成有計算分析功能的Applet小程序,通過Applet和Servlet通訊,調用和處理服務器與客戶端本地數據,再利用客戶端的計算資源實現計算。在未來的工作中,將研究如何將分布式網絡用于該系統中,以便更好地利用網絡資源。

主站蜘蛛池模板: 深圳市| 文化| 桂平市| 石首市| 丘北县| 宁乡县| 信宜市| 山丹县| 巍山| 嘉义县| 平山县| 康平县| 海安县| 青州市| 云梦县| 攀枝花市| 静宁县| 梧州市| 平邑县| 蚌埠市| 万荣县| 朝阳市| 灯塔市| 成安县| 彭阳县| 桂林市| 杨浦区| 吉木萨尔县| 龙井市| 密山市| 丹巴县| 闵行区| 芒康县| 大田县| 鸡泽县| 余干县| 彩票| 胶南市| 定西市| 宜城市| 昌平区|