棗品質(zhì)決策系統(tǒng)-決策樹生成與果實評估畢業(yè)設(shè)計_第1頁
棗品質(zhì)決策系統(tǒng)-決策樹生成與果實評估畢業(yè)設(shè)計_第2頁
棗品質(zhì)決策系統(tǒng)-決策樹生成與果實評估畢業(yè)設(shè)計_第3頁
棗品質(zhì)決策系統(tǒng)-決策樹生成與果實評估畢業(yè)設(shè)計_第4頁
棗品質(zhì)決策系統(tǒng)-決策樹生成與果實評估畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要棗因其營養(yǎng)價值高,易種植,耐存活且在不同地域擁有不同特色而成為許多地方特別是山區(qū)高原致富之道,但由于技術(shù)方面的欠缺使得果農(nóng)無法用專業(yè)知識去評估自己手中果實的品質(zhì)和正確價值導向,由此帶來一系列問題,信息消息的滯后導致農(nóng)戶盲目種植,產(chǎn)品積壓,銷售停滯。因此就要找到相關(guān)途徑,知己之道,才能讓棗農(nóng)更快發(fā)展富裕起來。由此需求設(shè)計了《棗品質(zhì)決策系統(tǒng)》,它是依托當前信息的網(wǎng)絡(luò)化、快速化,使用網(wǎng)絡(luò)評估果實品質(zhì),給出相關(guān)建議等服務(wù)為前提的綜合信息評估服務(wù)系統(tǒng)的設(shè)計。實現(xiàn)通過Internet互聯(lián)網(wǎng)對專家和果農(nóng)給出的信息數(shù)據(jù)的采集整理生成決策樹,進行相關(guān)評估工作。通過《棗品質(zhì)決策系統(tǒng)》進行果實評估給出建議,方便即果農(nóng)專家進行相關(guān)工作,又減少成本??s短果農(nóng)與專家的距離。在此項目中選擇了JavaWeb作為開發(fā)語言,用到了面向?qū)ο蟮拈_發(fā)思想和mvc設(shè)計模式的設(shè)計理念。在接口設(shè)計上,實現(xiàn)了數(shù)據(jù)封裝和信息隱藏。關(guān)鍵字:棗品質(zhì)評估、決策樹分析、JavaWeb、mvc模式、數(shù)據(jù)挖掘。

AbstractDatesbecauseofitshighnutritionalvalue,easytogrow,resistancetosurviveandindifferentregionshavedifferentcharacteristicsandbecomerichinmanyplaces,especiallyinmountainousplateau,butduetothelackoftechnologymakethefruitcannotuseprofessionalknowledgetoevaluatethequalityoftheirownhandsthefruitandthecorrectvalueguidance,leadingtoaseriesofproblems,informationmessagesdelayleadtofarmersplantingblindly,productbacklog,salesstalled.Sowillfindrelevantway,bosomfriend,togetthemostrichfasterdevelopment.Thusdemand"jujubequalitydecisionsystemisdesigned,itisrelyingonthecurrentinformationnetwork,rapidness,usingthenetworkevaluatingfruitquality,andprovideadviceandotherservicesastheprerequisiteofcomprehensiveassessmentinformationservicesystemdesign.ImplementationthroughtheInternetInternetforexpertsandfruitgiveinformationdatacollectiontogeneratethedecisiontree,relatedtotheassessmentwork.Throughthejujubequalitydecision-makingsystemtoevaluatefruitrecommendations,namelyfruitexpertsforarelatedwork,andreducecosts.Shortenthedistanceofgrowersandexperts.InthisprojectweselectJavaWebasadevelopmentlanguage,usetheobject-orienteddevelopmentthoughtandthedesignconceptoftheMVCdesignpattern.Intheinterfacedesign,realizedthedataencapsulationandinformationhiding.Keywords:Jujubequalityassessment,decisiontreeanalysis,JavaWeb,MVCmode,datamining.目錄1.引言 11.1背景和意義 11.1.1背景 11.1.2意義 11.2國內(nèi)外的現(xiàn)狀 11.3本文的重點 22.技術(shù)支持 32.1開發(fā)工具和環(huán)境 32.1.1開發(fā)工具選擇 32.1.2運行環(huán)境 42.2用JDBC連接數(shù)據(jù)庫的方法 42.3決策樹算法 43.需求分析與概要設(shè)計 63.1需求分析 63.1.1條件和限制 63.1.2功能需求 63.2概要設(shè)計 63.2.1系統(tǒng)總體分析 63.2.2按模塊分總體設(shè)計 73.2.3按各模塊間關(guān)系 83.2.4系統(tǒng)模塊劃分 84.詳細設(shè)計及實現(xiàn) 94.1設(shè)計說明 94.2數(shù)據(jù)結(jié)構(gòu)設(shè)計 94.2.1數(shù)據(jù)結(jié)構(gòu) 94.3決策流程 114.3.2模塊流程圖 124.4決策樹實現(xiàn) 134.4.1系統(tǒng)設(shè)計模式 134.4.2數(shù)據(jù)庫信息獲取方法 134.4.3系統(tǒng)拓展實現(xiàn) 144.4.4接口的設(shè)計 154.4.5后臺包及設(shè)計 164.4.6異常處理 174.4.7出現(xiàn)的問題以及解決方法 175結(jié)論 185.1技術(shù)特點 185.2缺點及不足 185.3系統(tǒng)擴展 185.4總結(jié) 18致謝 19參考文獻 201.引言本系統(tǒng)是面向?qū)<液娃r(nóng)戶,基于中小型數(shù)據(jù)庫數(shù)據(jù)挖掘工具。它基于語言開發(fā),不但操作簡單,界面友好,易于操作,實用性強;同時還能夠跨平臺運行。1.1背景和意義1.1.1背景棗本身的功能價值賦予的,棗的補血、美容、保健、營養(yǎng)、抗癌、抗疲勞、鎮(zhèn)靜、護發(fā)、降脂、降糖、養(yǎng)生等等效果符合現(xiàn)代人追求的時尚要素國務(wù)院總理溫家寶3月5日在十二屆全國人大一次會議上作政府工作報告時提出,要促進農(nóng)業(yè)穩(wěn)定發(fā)展和農(nóng)民持續(xù)增收。堅持把解決好“三農(nóng)”問題作為各項工作的重中之重。黨的十六大以來,黨中央明確要把解決好“三農(nóng)”問題放在全黨工作重中之重的位置,著力統(tǒng)籌城鄉(xiāng)經(jīng)濟社會發(fā)展,加快形成城鄉(xiāng)發(fā)展一體化新格局。黨的十八大從中國特色社會主義事業(yè)總體布局出發(fā),推出了“促進工業(yè)化、信息化、城鎮(zhèn)化、農(nóng)業(yè)現(xiàn)代化同步發(fā)展”,明確“城鄉(xiāng)發(fā)展一體化”是解決“三農(nóng)”問題的根本途徑。隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速崛起,計算機日漸深刻的在改變著人們的生產(chǎn)生活方式。而互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道,并逐步進入科學種植決策領(lǐng)域。1.1.2意義棗樹的種植區(qū)域地理環(huán)境和人文環(huán)境特征賦予的,棗樹的種植不僅僅有它的經(jīng)濟意義,更有重要的環(huán)境意義和社會價值,棗樹種植的區(qū)域主要分布在我過干旱、半干旱、風沙荒漠化和土地鹽堿化的區(qū)域,棗樹的種植可以極大的改善這些區(qū)域的生態(tài)環(huán)境,符合人類與自然和諧相處的命題,同時這些區(qū)域主要為中國經(jīng)濟發(fā)展相對滯后的區(qū)域,是我國改善這些區(qū)域人民生活環(huán)境、提高他們生活水平,增加收入來源的重要抓手,對于縮小區(qū)域經(jīng)濟差異,促進經(jīng)濟和諧發(fā)展有著重要意義。1.2國內(nèi)外的現(xiàn)狀過去的二十年,傳統(tǒng)信息隨著應(yīng)用領(lǐng)域增多以電子格式存儲的數(shù)據(jù)在量上有了戲劇性的增長。數(shù)據(jù)的累積量已經(jīng)在以指數(shù)性的速率遞增。人們已經(jīng)評估出世界上信息的數(shù)量每二十個月翻一番,并且數(shù)據(jù)庫的數(shù)量與大小正在以更快的速度增長。諸如"物種屬性"或遠程移動設(shè)備等的電子數(shù)據(jù)采集設(shè)備的增長更加劇了可用數(shù)據(jù)的增加。如何有效地獲取和利用這些平時的采樣數(shù)據(jù),并且變數(shù)據(jù)為知識,是我們研究的主要課題。數(shù)據(jù)挖掘的發(fā)展歷史是建立在相關(guān)學科發(fā)展的基礎(chǔ)上的。隨著數(shù)據(jù)庫技術(shù)的發(fā)展及應(yīng)用,人們積累的數(shù)據(jù)越來越多。激增的數(shù)據(jù)背后隱藏著許多重要的信息,簡單的查詢和統(tǒng)計已經(jīng)無法滿足商業(yè)的需求,需要出現(xiàn)一種挖掘數(shù)據(jù)背后隱藏的知識的手段。決策樹通過用數(shù)據(jù)庫管理系統(tǒng)來存儲數(shù)據(jù),用機器學習的方法來分析數(shù)據(jù),挖掘大量數(shù)據(jù)背后的知識,這兩者的結(jié)合促成了數(shù)據(jù)庫中的知識發(fā)現(xiàn)(KDD:KnowledgeDiscoveryinDatabases)的產(chǎn)生。數(shù)據(jù)挖掘(DM:DataMining)是知識發(fā)現(xiàn)(KDD)最核心的部分。1998年第四屆知識發(fā)現(xiàn)與數(shù)據(jù)挖掘國際學術(shù)會議上不僅進行了學術(shù)討論,并且有30多家軟件公司展示了他們的數(shù)據(jù)挖掘軟件產(chǎn)品,不少軟件已在北美、歐洲等國得到應(yīng)用。經(jīng)歷十多年的發(fā)展,數(shù)據(jù)挖掘已經(jīng)成為一個自成體系的應(yīng)用學科。數(shù)據(jù)挖掘應(yīng)用的主要對象是海量數(shù)據(jù),從基礎(chǔ)的數(shù)據(jù)條件來看,電信、金融機構(gòu)和政府稅務(wù)部門都已具備。所以數(shù)據(jù)挖掘技術(shù)興起不久,特別是成熟的軟件產(chǎn)品問世后,立刻就在在這些領(lǐng)域里得到了廣泛的應(yīng)用。比如說政府機關(guān)的稅務(wù)部門,國家的宏觀政策上已經(jīng)在金稅四期的工程里提到用數(shù)據(jù)挖掘的方法來解決目前困擾稅務(wù)機關(guān)的納稅評估和稽查選案的兩大問題,而且也有一部分地市作為帶頭人開始使用數(shù)據(jù)挖掘工具。作為決策支持系統(tǒng)的一個重要組成部分,數(shù)據(jù)挖掘已經(jīng)越來越成為近年來國內(nèi)外稅務(wù)部門關(guān)注的焦點之一。在此,我們也可以借鑒一下國外稅務(wù)機關(guān)使用數(shù)據(jù)挖掘的先進經(jīng)驗:1、Texas州的稅務(wù)稽查人員需要確保聯(lián)邦稅法在存在欺詐和不服從的納稅人也可以得到有效得執(zhí)行。40萬個納稅人每年得特許稅(Franchisetax)和營業(yè)稅征收額都在1億9千萬美圓以上。采用數(shù)據(jù)挖掘方法,每年Texas州利用數(shù)據(jù)挖掘技術(shù)從未申報的稅收中發(fā)現(xiàn)百萬計的偷逃稅款。2、美國華盛頓國家稅務(wù)局通過建立數(shù)據(jù)倉庫并進行相應(yīng)的挖掘工作,把最先只能對100個左右的公司進行稽查工作,通過數(shù)據(jù)挖掘進行稽查選案工作,大大提高了對稽查選案時的準確性和稽查額度,節(jié)約了稽查成本并使稽查成果大幅提高。雖然在我們探討研究的同時還需要逐漸完善,但是數(shù)據(jù)挖掘作為一門學科正從原來的邊緣學科轉(zhuǎn)變成為一門成熟學科,同時,伴隨著信息化技術(shù)的發(fā)展,數(shù)據(jù)挖掘的技術(shù)也逐漸趨于成熟,國外的專業(yè)雜志-麻省理工學院的《科技評論》去年提出未來5年對人類產(chǎn)生重大影響的10大新興技術(shù),“數(shù)據(jù)挖掘”位居第三。從以上數(shù)據(jù)挖掘發(fā)展的歷史和未來的前景來看,數(shù)據(jù)挖掘技術(shù)現(xiàn)在已經(jīng)處于一個相對成熟的階段。這為我們查詢和分析工具的設(shè)計提供了很好的技術(shù)支持。同時面向?qū)ο缶幊碳夹g(shù)的應(yīng)用,使得系統(tǒng)有了更加靈活的擴展性,從而使各個模塊間的耦合性大大降低,提高了系統(tǒng)的聚合性。同時基于面向?qū)ο蟮脑O(shè)計模式和重構(gòu)方法的應(yīng)用,使得系統(tǒng)的維護和擴展變的更加容易。1.3本文的重點敘述如何使用MVC的框架,用ID3算法實現(xiàn)決策樹,并用實際數(shù)據(jù)進行評估。2.技術(shù)支持2.1開發(fā)工具和環(huán)境通過MVC結(jié)構(gòu)添加相關(guān)樣本數(shù)據(jù)導入數(shù)據(jù)庫,后臺生成相應(yīng)決策樹,用戶通過前臺確定相關(guān)的查詢數(shù)據(jù),通過決策樹評估得到由該品種的品質(zhì)等級。專家用戶可以進行樣本數(shù)據(jù)查看,增加和刪除,也可以自己通過選擇相應(yīng)的屬性建立決策樹判斷某些屬性對決策結(jié)果的影響。2.1.1開發(fā)工具選擇當前開發(fā)此類工具的語言很多,比如:JAVA,VB,C++,NET…在這些語言當中,要想開發(fā)一個功能完善、界面友好、移植性好、擴展性好的系統(tǒng)并不是所有語言都能滿足的。首先看VB語言:VB在用戶界面開發(fā)方面有很大優(yōu)勢,比如:操作簡單,可視化強。但是它沒有脫離開面向過程的編程模式,可擴展行和維護性很差。而且不支持B/S模式。C++雖然既支持面向?qū)ο缶幊?,同時又支持面向過程編程。然而面向?qū)ο蟛糠纸Y(jié)構(gòu)復雜,而且并不能支持B/S模式。.NET架構(gòu)不但支持面向?qū)ο缶幊?,而且同時支持B/S模式和C/S模式,按說是系統(tǒng)選擇的對象,然而不能實現(xiàn)跨平臺運行導致的低移植性是它的致命缺點。最后,我們把選擇了java。Java語言與其他語言相比有一下優(yōu)點:可移植性與結(jié)構(gòu)中立——結(jié)構(gòu)中立,平臺無關(guān);對網(wǎng)絡(luò)編程,單系統(tǒng)軟件發(fā)布有用。分布式——對象可以在本地或遠程系統(tǒng)中。安全性——并不允許程序訪問所有的計算機內(nèi)存和磁盤空間。健壯性——Java便一起可以在編譯時自行檢測許多問題,而別的語言只有運行時才檢測,Java不支持指針算法,不會有不良的指針管理引起的內(nèi)存泄露或者內(nèi)存錯誤。多線程——可以同時執(zhí)行多個任務(wù)。動態(tài)性——足夠多的運行時類型信息,用于在運行時校驗對象。這使得在一種安全有效的方式下動態(tài)的連接代碼成為可能。在設(shè)計模式上選用MVC設(shè)計模式:當用戶有請求提交時,所有請求都會交給Servlet進行處理,然后由Servlet調(diào)用JavaBean,并將JavaBean的操作結(jié)果通過RequestDispatcher接口傳遞到JSP頁面上。由于這些要顯示的內(nèi)容只是在一次請求-回應(yīng)中有效,所以在MVC設(shè)計模式中,所有的屬性傳遞都將使用request屬性范圍傳遞,這樣可以提升代碼的操作性能。2.1.2運行環(huán)境操作系統(tǒng):Windows系列,內(nèi)存128M以上,硬盤1G以上Java虛擬機版本:jdk1.7.0目前系統(tǒng)可支持的數(shù)據(jù)庫:SqlServer??捎脼g覽器:默認為Ie瀏覽器(支持javascript腳本)。Office:使用excel20032.2用JDBC連接數(shù)據(jù)庫的方法通過java可以有兩種方式連接數(shù)據(jù)庫:JDBC和ODBC,但是因為ODBC是一個C語言接口,所以O(shè)DBC在Java中直接使用不適當。因為從Java中來調(diào)用C代碼在安全性,健壯性,實現(xiàn)的方便,可移植性等方面有許多不便。它使得Java在這些方面的許多優(yōu)點得不到發(fā)揮。于是我們選擇了JDBC與數(shù)據(jù)庫連接。Jdbc是Sun提供的一套數(shù)據(jù)庫編程接口API函數(shù),由Java語言編寫的類、界面組成。用寫的程序能夠自動地將SQL語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)。JDBC連接數(shù)據(jù)庫方法圖2-1:圖2-1:JDBC連接數(shù)據(jù)庫方法2.3決策樹算法采用ID3決策樹算法造決策樹的基本算法是貪心算法,它以自頂向下遞歸的各個擊破方式構(gòu)造決策樹。一種著名的決策樹算法是ID3,算法的基本策略如下:①創(chuàng)建一個節(jié)點。如果樣本都在同一類,則算法停止,把該節(jié)點改成樹葉節(jié)點,并用該類標記。②否則,選擇一個能夠最好的將訓練集分類的屬性,該屬性作為該節(jié)點的測試屬性。③對測試屬性中的每一個值,創(chuàng)建相應(yīng)的一個分支,并據(jù)此劃分樣本。④使用同樣的過程,自頂向下的遞歸,直到滿足下面的三個條件中的一個時就停止遞歸。給定節(jié)點的所有樣本都屬于同一類。沒有剩余的屬性可以用來劃分。分支沒有樣本。設(shè)S是s個數(shù)據(jù)樣本的集合。假定類標號屬性具有m個不同值,定義m個不同類Ci(i=1,2,…,m)。設(shè)si是類Ci中的樣本數(shù)。對一個給定的樣本分類所需要的期望信息由下式給出:其中pi是任意樣本屬于Ci的概率,并用si/s估計。設(shè)屬性A具有v個不同值{a1,a2,…,av}??梢杂脤傩訟將S劃分為v個子集{S1,S2,…,SV};其中,Sj包含S中這樣一些樣本,它們在A上具有值aj。如果A選作測試屬性(即最好的分裂屬性),則這些子集對應(yīng)于由包含集合S的節(jié)點生長出來的分枝。設(shè)sij是子集Sj中類Ci的樣本數(shù)。根據(jù)由A劃分成子集的熵或期望信息由下式給出:其中,是第j個子集的權(quán),并且等于子集(即A值為aj)中的樣本個數(shù)除以S中的樣本總數(shù)。熵值越小,子集劃分的純度越高。注意,對于給定的子集Sj,其中,是Sj中的樣本屬于類Ci的概率。在A上分枝將獲得的編碼信息是。Gain(A)稱為信息增益,它是由于知道屬性A的值而導致的熵的期望壓縮。具有最高信息增益的屬性選作給定集合S的測試屬性。創(chuàng)建一個節(jié)點,并以該屬性標記,對屬性的每個值創(chuàng)建分枝,并據(jù)此劃分樣本。3.需求分析與概要設(shè)計3.1需求分析3.1.用戶必須登錄進入相關(guān)角色才能使用相關(guān)權(quán)限的功能,樣本數(shù)據(jù)庫默認必須至少有一個樣本值。3.1.功能劃分:用戶增刪改查,個人信息修改。樣本數(shù)據(jù)的錄入,導出,刪除。顯示樣本數(shù)據(jù),樣本數(shù)據(jù)值與含義轉(zhuǎn)換。樣本數(shù)據(jù)生成相關(guān)決策樹。輸入相應(yīng)屬性通過決策樹分析評估品種級別。自定義屬性決策樹,進行屬性影響力對比。3.2概要設(shè)計3.2.1系統(tǒng)總體分析總體分析如圖3—1:數(shù)據(jù)庫數(shù)據(jù)庫JavaBeanServletJsp,Javascript,AJAX圖圖3—1系統(tǒng)總分析圖3.2.2棗品質(zhì)決策系統(tǒng)棗品質(zhì)決策系統(tǒng)基礎(chǔ)模塊決策樹模塊數(shù)據(jù)導入模塊分詞模塊顯示模塊獲取數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)存儲提供相關(guān)接口決策樹生成品質(zhì)評估決策樹評估單條數(shù)據(jù)導入批量數(shù)據(jù)導入語句劃分智能加入新詞接收用戶操作顯示評估信息顯示相關(guān)數(shù)據(jù)圖3—23.2.3按各模塊間關(guān)系接收用戶操作接收用戶操作顯示評估信息顯示相關(guān)數(shù)據(jù)語句劃分智能填詞決策樹生成品質(zhì)評估決策樹評估批量數(shù)據(jù)導入單條數(shù)據(jù)導入獲取數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)存儲提供相關(guān)接口顯示模塊分詞模塊決策樹模塊數(shù)據(jù)導入模塊基礎(chǔ)模塊圖3—3各模塊間關(guān)系3.2.4系統(tǒng)模塊劃分模塊一,決策樹生成模塊。(由張金磊完成) 負責用JDBC橋接數(shù)據(jù)庫,使用ID3算法生成ID3型決策樹,根據(jù)輸入屬性完成品質(zhì)評估,樣本數(shù)據(jù)管理,屬性評估。前臺頁面設(shè)計。數(shù)據(jù)庫表設(shè)計。用戶增刪改查。 模塊二,分詞模塊,顯示模塊。(由臧進進完成) 負責根據(jù)輸入的對于果實的通俗描述語句,分出相應(yīng)屬性詞語,并將新描述詞填入詞庫。 模塊三,數(shù)據(jù)導入模塊,基礎(chǔ)模塊。(由富兆慧完成) 負責完成單條數(shù)據(jù)錄入數(shù)據(jù)和用excel表批量導入數(shù)據(jù)庫。4.詳細設(shè)計及實現(xiàn)4.1設(shè)計說明由于系統(tǒng)分三個模塊,由我來負責決策樹生成模塊因此在系統(tǒng)詳細設(shè)計部分,由我來完成決策樹生成模塊的設(shè)計和開發(fā)。4.2數(shù)據(jù)結(jié)構(gòu)設(shè)計由于數(shù)據(jù)庫內(nèi)部結(jié)構(gòu)復雜并且關(guān)系緊密,因此設(shè)計一個合理的數(shù)據(jù)結(jié)構(gòu),用來存儲數(shù)據(jù)庫內(nèi)部表與表、字段與表、字段與字段之間的關(guān)系和信息是很有必要的。4.2.1數(shù)據(jù)結(jié)構(gòu)根據(jù)系統(tǒng)面對用戶,數(shù)據(jù)庫設(shè)計以下結(jié)構(gòu):數(shù)據(jù)庫信息結(jié)構(gòu):數(shù)據(jù)庫名稱(fruit)數(shù)據(jù)庫表信息結(jié)構(gòu):user表createtableusers( user_idintidentity(1,1)notnullprimarykey, user_namevarchar(16)notnull, passwordvarchar(20)notnull, emailvarchar(40), phonevarchar(20), remarksvarchar(50), limitintnotnullcheck(limit>=0andlimit<=2))用戶數(shù)據(jù)表記錄用戶相關(guān)數(shù)據(jù),用戶名,密碼(md5加密),電子郵件,權(quán)限(管理員0,專家1,用戶2)。Part表:createtablepart( part_idintidentity(1,1)notnullprimarykey, part_namevarchar(20)notnull, user_idintreferencesusers(user_id), datedatetime)品種范圍記錄范圍的名稱,創(chuàng)建人id,日期。引用用戶表的user_id。Variety表:createtablevariety( var_idintidentity(1,1)notnullprimarykey, var_namevarchar(20), user_idintreferencesusers(user_id), part_idintreferencespart(part_id), datedatetime)品種表記錄引入創(chuàng)建品種的用戶,品種名,所屬范圍,日期。引用了用戶表的user_id范圍表的part_id。varfield_1表:createtablevarfield_1( vf_idintnotnullprimarykey, attributevarchar(20)notnull, weightfloatnotnull )品種數(shù)據(jù)表,記錄品種屬性名,品種權(quán)值。引用了品種表var_id,表名由品種id決定attvalue_1表:createtableattvalue_1( vf_idintreferencesvarfield_1(vf_id), valueintnotnull, valuenamevarchar(20)notnull primarykey(vf_id,value) )某品種具體屬性記錄表,引用外鍵vf_id,屬性編號value,屬性名稱valuename表名由品種id決定,主鍵由vf_id,value聯(lián)合決定tree_1表:createtabletree_1( idintidentity(1,1)notnullprimarykey, 果肉色澤float, 果肉質(zhì)地float, 酥脆程度float, 果肉粗細float, 果肉汁液float, 酸甜度float, 特殊口味float, 裂果率float, 形狀float, 表皮顏色float, 果點密度float, 果皮厚度float, 果頂float, 果面float, 斑點大小float, 果肩float, 梗洼深度float, 梗洼廣度float, 萼片狀態(tài)float, 柱頭狀態(tài)float, 果實整齊度float, 果核形狀float, 種仁飽滿度float, 核殼有無float, 含仁率float, 豐產(chǎn)性float, 漿爛度float, 果實大小float, 樹形float, 有無殘渣float, 成熟期float, 可食率float, resultintcheck(result>=0andresult<=5))某品種決策樹中具體數(shù)據(jù)表記錄該品種決策樹相關(guān)數(shù)據(jù)(隨品種創(chuàng)建一起創(chuàng)建)表名由品種id決定tree_id。4.3決策流程基礎(chǔ)模塊流程如下:用戶選擇相關(guān)屬性值連接數(shù)據(jù)庫提取樣本生成決策樹根據(jù)提供值評估結(jié)果輸出結(jié)果。生成決策樹評估結(jié)果結(jié)束存入表數(shù)據(jù)結(jié)構(gòu)存入表數(shù)據(jù)結(jié)構(gòu)存入表數(shù)據(jù)結(jié)構(gòu)生成決策樹評估結(jié)果結(jié)束存入表數(shù)據(jù)結(jié)構(gòu)存入表數(shù)據(jù)結(jié)構(gòu)存入表數(shù)據(jù)結(jié)構(gòu)連接到數(shù)據(jù)庫讀取樣本信息讀取品種數(shù)據(jù)讀取屬性表關(guān)閉數(shù)據(jù)庫開始創(chuàng)建數(shù)據(jù)庫鏈接選擇屬性相關(guān)值檢查鏈接是否成功圖4-1模塊流程圖

4.4決策樹實現(xiàn)4.4.1系統(tǒng)設(shè)計模式面向?qū)ο缶幊淌墙鼇沓绦蜷_發(fā)的主流,和以往的面向過程編程相比,它更具有可維護性和可擴展性。無論是從程序設(shè)計還是到程序開發(fā),都展現(xiàn)出了面向過程無法比擬的優(yōu)點。首先,它從人類認識世界的角度出發(fā),提出了“萬物皆對象”的思想。其次,對象具有的繼承、封裝和多態(tài)的特征,為程序的開發(fā)和維護帶來了很大的便利。再次,面向?qū)ο蟮脑O(shè)計重點放在了對象和對象接口設(shè)計上,從而擺脫了以往面向過程的把主要精力放在如何實現(xiàn)的細節(jié)上。從面向?qū)ο蟮乃枷氤霭l(fā),我們開發(fā)數(shù)據(jù)庫查詢和分析工具的基礎(chǔ)模塊,在開發(fā)基礎(chǔ)模塊之前我們要把握好以下幾點:模塊封裝性要好:一個模塊分解是否成功的標志是看該模塊自身的數(shù)據(jù)和細節(jié)封裝的程度的大小。一個好的模塊,可以把所有的實現(xiàn)細節(jié)隱藏起來,提供各外部的API與自己的具體實現(xiàn)區(qū)分開來。這樣各個模塊之間就只通過API進程通信,而不考慮具體的實現(xiàn)細節(jié)。模塊擴展性要好:系統(tǒng)的最大特點就是要做到通用性,要想實現(xiàn)通用性,這就要求我們?nèi)嬷С炙袛?shù)據(jù)庫的表,當有新的數(shù)據(jù)出現(xiàn)時,我們應(yīng)該做到在不更改源代碼的基礎(chǔ)上實現(xiàn)功能的擴展。要求我們嚴格遵守開閉原則,即對擴展開放,對修改關(guān)閉。設(shè)計明確的接口:由于其他模塊的開發(fā)不是有我來完成的,因此,為其他模塊提供一個簡單明了且不變動的接口也是軟件開發(fā)的關(guān)鍵。系統(tǒng)維護性要好:由于系統(tǒng)開發(fā)出來之后,功能不會全部實現(xiàn),有可能以后需要別人來維護系統(tǒng),因此系統(tǒng)在開發(fā)過程中要生成完整的文檔,以供系統(tǒng)維護。4.4.從數(shù)據(jù)庫中獲取指定數(shù)據(jù)庫的庫信息,表信息,字段信息等,可以由一下步驟完成:建立數(shù)據(jù)庫鏈接根據(jù)用戶提供的用戶名,密碼,數(shù)據(jù)庫名和數(shù)據(jù)庫所在位置,我們可以通過jdbc或者dbcb-odbc橋獲得與指定數(shù)據(jù)庫的連接Connection.2.得到DatabaseMetaData對象根據(jù)第一步獲取的連接,我們可以創(chuàng)建一個Connection的對象conn。通過conn.getMetaData()方法,可以獲取DatabaseMetaData的對象。3.獲得數(shù)據(jù)庫內(nèi)信息 根據(jù)不同操作創(chuàng)建相應(yīng)對象獲取數(shù)據(jù)庫信息 獲取樣本數(shù)據(jù)表:slistslist=obtainlist.sourcelist(); 獲取權(quán)值表 float[][]weightlist=weight.obtainweight(); 獲取用戶類: useru=ulogin.getuser(uname);4.4.3系統(tǒng)拓展實現(xiàn)拓展性是每個系統(tǒng)必須要有的,也是設(shè)計追求目標之一,對于決策樹系統(tǒng)而言不止在于棗品質(zhì)測評上,還必須要用于其他品種評估。要實現(xiàn)這個目標,在設(shè)計系統(tǒng)上必須要決策樹系統(tǒng)生成,評估上,必須設(shè)計留有相關(guān)接口,以便在加入其它品種時可以僅需修改小部分代碼,實現(xiàn)代碼復用。<<<interface>>ctreecreattree();id3treecreattree()id3countGaincountGain()<<interface>>countGainColcountGain()4—2.工廠方法類關(guān)系圖4.4.4接口的設(shè)計要想實現(xiàn)模塊與模塊之間良好的通信,設(shè)計一個合理安全的接口是必要的。這個接口既要設(shè)計的簡單,又要屏蔽到程序?qū)崿F(xiàn)的詳細信息.從本模塊功能上分析,這個模塊主要功能是為其他模塊提供數(shù)據(jù)庫結(jié)構(gòu)信息的,因此,它只能為其他模塊提供數(shù)據(jù)庫結(jié)構(gòu)信息,而不能提供修改數(shù)據(jù)庫結(jié)構(gòu)的接口.同時,考慮到系統(tǒng)內(nèi)部類之間關(guān)系的復雜和繁瑣,在設(shè)計這個接口是我們采取了設(shè)計模式的外觀模式。通過創(chuàng)建一個外觀類,其他模塊可以在不了解內(nèi)部信息的基礎(chǔ)上調(diào)用模塊的接口.添加工廠模式之前如圖4-3:對象對象模塊外模塊內(nèi)圖4-3添加工廠模式之后如圖4-4:treeFacadetreeFacade對象模塊外模塊內(nèi)圖4-44.4.5后臺包及設(shè)計Bean包(存放基礎(chǔ)計算代碼):countEnd類:計算決策樹節(jié)點結(jié)果是否唯一。intcEnd(floatlist[][])返回1為結(jié)束節(jié)點,返回0為非結(jié)束節(jié)點。getEndResult類:通過給出的屬性,使用決策樹評估結(jié)果。publicStringgetEResult(floatinlist[])。輸入為屬性集合數(shù)組,返回為評估結(jié)果Bean.id3包(存放生成ID3決策樹時需要的相關(guān)計算類):id3countGain類:決策樹ID3算法,計算最高信息增益列。publicintcountGain(floatlist[][],floatweightlist[][])輸入權(quán)值表,樣本列表。返回當前計算擁有最高熵值的列。cGain類:計算具體屬性的熵值。publicfloatspGain(floatlist[][],intp,doubleI,floatweightlist[][])輸入樣本表,列號,權(quán)值表,總熵值,輸出列號所選熵值。countResult類:統(tǒng)計結(jié)果種類和個數(shù)。publicfloat[][]cResult(floatlist[][])輸入樣本表,輸出該樣本的所有的結(jié)果及其各樣的個數(shù)。Bean.tree包(存放生成決策樹主算法):id3tree類:構(gòu)造id3決策樹。publicnodecreattree()返回值為生成好的決策樹頭結(jié)點。id3Pritree類:構(gòu)造自定義屬性的id3決策樹。publicnodecreatpritree(floatbj[])輸入自定義屬性表,輸出生成好的自定義決策樹頭結(jié)點。Dao包(數(shù)據(jù)庫鏈接基礎(chǔ)包):linkData類:數(shù)據(jù)庫鏈接基礎(chǔ)類,所有鏈接數(shù)據(jù)庫的都調(diào)用此類鏈接數(shù)據(jù)庫。obtaiName類:獲取樣本數(shù)據(jù)表頭名字。obtainlist類:獲取樣本數(shù)據(jù),不包括數(shù)據(jù)表中的id號。obtainWeight類:獲取權(quán)值表。operatefruitData類:操作樣本數(shù)據(jù)表,進行數(shù)據(jù)增刪。getfruitData類:獲取樣本數(shù)據(jù)全部信息。Db包(存放實體類):node類:存放決策樹節(jié)點。slist類:存放樣本表所有相關(guān)信息。user類:存放用戶屬性信息。4.4.6異常處理當用戶非法操作時(不輸入用戶名密碼直接想進入相關(guān)頁面或者進入不屬于自己所有權(quán)限的頁面時),頁面會直接調(diào)到登錄頁面。在后臺當在決策樹生成,果實評估出現(xiàn)異?;蛘邔τ谟脩舨僮鞒霈F(xiàn)時,異常狀態(tài)往上傳到servlet,跳轉(zhuǎn)的顯示提示異常頁面。4.4.7出現(xiàn)的問題以及解決方法問題1:在前臺傳中文值到后臺時,servlet后臺正常接收,但接收后測試時出現(xiàn)亂碼。解決方法:這是編碼不同的結(jié)果,在接收之前通過request.setCharacterEncoding("gb2312");這條語句設(shè)置編碼。設(shè)置后正常接收。問題2: 在界面顯示時,偶爾會出現(xiàn)中文亂碼現(xiàn)象。解決方法: 這往往是界面間編碼差異造成,通過servlet設(shè)置過濾器,對所有頁面,進行統(tǒng)一編碼設(shè)置,異常消除。問題3: Sql數(shù)據(jù)庫存儲由前臺傳入數(shù)據(jù)時,后面多加很多空格,除非直接操作數(shù)據(jù)庫否則無法消除。解決方法: 這是數(shù)據(jù)庫設(shè)計問題,不考慮存儲解決,在數(shù)據(jù)取出時,用相關(guān)語句除去前后空格。5結(jié)論5.1技術(shù)特點本系統(tǒng)界面統(tǒng)一友好,實用性強,安全;代碼清晰,易懂;安裝方便,可移植性和擴展性好。5.2缺點及不足由于系統(tǒng)規(guī)模較大,時間不足,某些功能模塊沒有完整實現(xiàn),有些異常錯誤沒有及時發(fā)現(xiàn)。5.3系統(tǒng)擴展好的系統(tǒng)必須支持良好的拓展,此系統(tǒng)不僅可以操作評估果樹樣本,也可以應(yīng)用到其他品種;系統(tǒng)默認生成決策樹的算法是ID3算法,還可以調(diào)用接口設(shè)計其他決策樹算法,或調(diào)用相關(guān)接口,設(shè)計其他評估方式。5.4總結(jié)通過此次畢業(yè)設(shè)計,自己自學了Struts1的mvc結(jié)構(gòu),了解了相關(guān)配置知識,并在操作處理過程中通過所遇到的各種問題及解決加深了自己對相關(guān)結(jié)構(gòu)認識。通過與團隊人員的合作加深了對如何協(xié)作、如何交流、如何制定接口為別人使用、又如何保證自己模塊的獨立和安全的認識。這些都是系統(tǒng)開發(fā)過程中十分重要的。致謝在系統(tǒng)的分析,設(shè)計,開發(fā)過程中得到了孫晨霞老師的全面指導和大力幫助,在此表示感謝。同時特別感謝小組的臧進進和富兆慧同學,臧進進同學曾在我的數(shù)據(jù)結(jié)構(gòu)設(shè)計時為我提供了很好的設(shè)計建議,富兆慧同學在我接口設(shè)計方面提供了較大的幫助。參考文獻[1]BruceEckel.《Java編程思想》.機械工業(yè)出版社,2007年6月[2]劉中兵Java研究室《Java高手真經(jīng)》.電子工業(yè)出版社,2009年3月[3]徐孝凱《數(shù)據(jù)結(jié)構(gòu)教程》(Java語言描述).清華大學出版社,2010年8月[4]ThomasA.Powell《HTML5&CSS》.清華大學出版社,2011年6月[5]耿祥義,張躍平.《JSP實用教程》.清華大學出版社,2003年5月1日[6]閻宏編著,《java與模式》,電子工業(yè)出版社,2002基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學生單片機應(yīng)用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設(shè)計基于單片機的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設(shè)計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機的膛壁溫度報警系統(tǒng)設(shè)計基于AVR單片機的低壓無功補償控制器的設(shè)計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務(wù)器技術(shù)的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學實驗中的應(yīng)用研究基于單片機系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設(shè)計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機的μC/OS-Ⅱ的研究基于單片機的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論