版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
摘要棗因其營養(yǎng)價(jià)值高,易種植,耐存活且在不同地域擁有不同特色而成為許多地方特別是山區(qū)高原致富之道,但由于技術(shù)方面的欠缺使得果農(nóng)無法用專業(yè)知識去評估自己手中果實(shí)的品質(zhì)和正確價(jià)值導(dǎo)向,由此帶來一系列問題,信息消息的滯后導(dǎo)致農(nóng)戶盲目種植,產(chǎn)品積壓,銷售停滯。因此就要找到相關(guān)途徑,知己之道,才能讓棗農(nóng)更快發(fā)展富裕起來。由此需求設(shè)計(jì)了《棗品質(zhì)決策系統(tǒng)》,它是依托當(dāng)前信息的網(wǎng)絡(luò)化、快速化,使用網(wǎng)絡(luò)評估果實(shí)品質(zhì),給出相關(guān)建議等服務(wù)為前提的綜合信息評估服務(wù)系統(tǒng)的設(shè)計(jì)。實(shí)現(xiàn)通過Internet互聯(lián)網(wǎng)對專家和果農(nóng)給出的信息數(shù)據(jù)的采集整理生成決策樹,進(jìn)行相關(guān)評估工作。通過《棗品質(zhì)決策系統(tǒng)》進(jìn)行果實(shí)評估給出建議,方便即果農(nóng)專家進(jìn)行相關(guān)工作,又減少成本??s短果農(nóng)與專家的距離。在此項(xiàng)目中選擇了JavaWeb作為開發(fā)語言,用到了面向?qū)ο蟮拈_發(fā)思想和mvc設(shè)計(jì)模式的設(shè)計(jì)理念。在接口設(shè)計(jì)上,實(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本文的重點(diǎn) 22.技術(shù)支持 32.1開發(fā)工具和環(huán)境 32.1.1開發(fā)工具選擇 32.1.2運(yùn)行環(huán)境 42.2用JDBC連接數(shù)據(jù)庫的方法 42.3決策樹算法 43.需求分析與概要設(shè)計(jì) 63.1需求分析 63.1.1條件和限制 63.1.2功能需求 63.2概要設(shè)計(jì) 63.2.1系統(tǒng)總體分析 63.2.2按模塊分總體設(shè)計(jì) 73.2.3按各模塊間關(guān)系 83.2.4系統(tǒng)模塊劃分 84.詳細(xì)設(shè)計(jì)及實(shí)現(xiàn) 94.1設(shè)計(jì)說明 94.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 94.2.1數(shù)據(jù)結(jié)構(gòu) 94.3決策流程 114.3.2模塊流程圖 124.4決策樹實(shí)現(xiàn) 134.4.1系統(tǒng)設(shè)計(jì)模式 134.4.2數(shù)據(jù)庫信息獲取方法 134.4.3系統(tǒng)拓展實(shí)現(xiàn) 144.4.4接口的設(shè)計(jì) 154.4.5后臺包及設(shè)計(jì) 164.4.6異常處理 174.4.7出現(xiàn)的問題以及解決方法 175結(jié)論 185.1技術(shù)特點(diǎn) 185.2缺點(diǎn)及不足 185.3系統(tǒng)擴(kuò)展 185.4總結(jié) 18致謝 19參考文獻(xiàn) 201.引言本系統(tǒng)是面向?qū)<液娃r(nóng)戶,基于中小型數(shù)據(jù)庫數(shù)據(jù)挖掘工具。它基于語言開發(fā),不但操作簡單,界面友好,易于操作,實(shí)用性強(qiáng);同時(shí)還能夠跨平臺運(yùn)行。1.1背景和意義1.1.1背景棗本身的功能價(jià)值賦予的,棗的補(bǔ)血、美容、保健、營養(yǎng)、抗癌、抗疲勞、鎮(zhèn)靜、護(hù)發(fā)、降脂、降糖、養(yǎng)生等等效果符合現(xiàn)代人追求的時(shí)尚要素國務(wù)院總理溫家寶3月5日在十二屆全國人大一次會(huì)議上作政府工作報(bào)告時(shí)提出,要促進(jìn)農(nóng)業(yè)穩(wěn)定發(fā)展和農(nóng)民持續(xù)增收。堅(jiān)持把解決好“三農(nóng)”問題作為各項(xiàng)工作的重中之重。黨的十六大以來,黨中央明確要把解決好“三農(nóng)”問題放在全黨工作重中之重的位置,著力統(tǒng)籌城鄉(xiāng)經(jīng)濟(jì)社會(huì)發(fā)展,加快形成城鄉(xiāng)發(fā)展一體化新格局。黨的十八大從中國特色社會(huì)主義事業(yè)總體布局出發(fā),推出了“促進(jìn)工業(yè)化、信息化、城鎮(zhèn)化、農(nóng)業(yè)現(xiàn)代化同步發(fā)展”,明確“城鄉(xiāng)發(fā)展一體化”是解決“三農(nóng)”問題的根本途徑。隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速崛起,計(jì)算機(jī)日漸深刻的在改變著人們的生產(chǎn)生活方式。而互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道,并逐步進(jìn)入科學(xué)種植決策領(lǐng)域。1.1.2意義棗樹的種植區(qū)域地理環(huán)境和人文環(huán)境特征賦予的,棗樹的種植不僅僅有它的經(jīng)濟(jì)意義,更有重要的環(huán)境意義和社會(huì)價(jià)值,棗樹種植的區(qū)域主要分布在我過干旱、半干旱、風(fēng)沙荒漠化和土地鹽堿化的區(qū)域,棗樹的種植可以極大的改善這些區(qū)域的生態(tài)環(huán)境,符合人類與自然和諧相處的命題,同時(shí)這些區(qū)域主要為中國經(jīng)濟(jì)發(fā)展相對滯后的區(qū)域,是我國改善這些區(qū)域人民生活環(huán)境、提高他們生活水平,增加收入來源的重要抓手,對于縮小區(qū)域經(jīng)濟(jì)差異,促進(jìn)經(jīng)濟(jì)和諧發(fā)展有著重要意義。1.2國內(nèi)外的現(xiàn)狀過去的二十年,傳統(tǒng)信息隨著應(yīng)用領(lǐng)域增多以電子格式存儲(chǔ)的數(shù)據(jù)在量上有了戲劇性的增長。數(shù)據(jù)的累積量已經(jīng)在以指數(shù)性的速率遞增。人們已經(jīng)評估出世界上信息的數(shù)量每二十個(gè)月翻一番,并且數(shù)據(jù)庫的數(shù)量與大小正在以更快的速度增長。諸如"物種屬性"或遠(yuǎn)程移動(dòng)設(shè)備等的電子數(shù)據(jù)采集設(shè)備的增長更加劇了可用數(shù)據(jù)的增加。如何有效地獲取和利用這些平時(shí)的采樣數(shù)據(jù),并且變數(shù)據(jù)為知識,是我們研究的主要課題。數(shù)據(jù)挖掘的發(fā)展歷史是建立在相關(guān)學(xué)科發(fā)展的基礎(chǔ)上的。隨著數(shù)據(jù)庫技術(shù)的發(fā)展及應(yīng)用,人們積累的數(shù)據(jù)越來越多。激增的數(shù)據(jù)背后隱藏著許多重要的信息,簡單的查詢和統(tǒng)計(jì)已經(jīng)無法滿足商業(yè)的需求,需要出現(xiàn)一種挖掘數(shù)據(jù)背后隱藏的知識的手段。決策樹通過用數(shù)據(jù)庫管理系統(tǒng)來存儲(chǔ)數(shù)據(jù),用機(jī)器學(xué)習(xí)的方法來分析數(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ù)挖掘國際學(xué)術(shù)會(huì)議上不僅進(jìn)行了學(xué)術(shù)討論,并且有30多家軟件公司展示了他們的數(shù)據(jù)挖掘軟件產(chǎn)品,不少軟件已在北美、歐洲等國得到應(yīng)用。經(jīng)歷十多年的發(fā)展,數(shù)據(jù)挖掘已經(jīng)成為一個(gè)自成體系的應(yīng)用學(xué)科。數(shù)據(jù)挖掘應(yīng)用的主要對象是海量數(shù)據(jù),從基礎(chǔ)的數(shù)據(jù)條件來看,電信、金融機(jī)構(gòu)和政府稅務(wù)部門都已具備。所以數(shù)據(jù)挖掘技術(shù)興起不久,特別是成熟的軟件產(chǎn)品問世后,立刻就在在這些領(lǐng)域里得到了廣泛的應(yīng)用。比如說政府機(jī)關(guān)的稅務(wù)部門,國家的宏觀政策上已經(jīng)在金稅四期的工程里提到用數(shù)據(jù)挖掘的方法來解決目前困擾稅務(wù)機(jī)關(guān)的納稅評估和稽查選案的兩大問題,而且也有一部分地市作為帶頭人開始使用數(shù)據(jù)挖掘工具。作為決策支持系統(tǒng)的一個(gè)重要組成部分,數(shù)據(jù)挖掘已經(jīng)越來越成為近年來國內(nèi)外稅務(wù)部門關(guān)注的焦點(diǎn)之一。在此,我們也可以借鑒一下國外稅務(wù)機(jī)關(guān)使用數(shù)據(jù)挖掘的先進(jìn)經(jīng)驗(yàn):1、Texas州的稅務(wù)稽查人員需要確保聯(lián)邦稅法在存在欺詐和不服從的納稅人也可以得到有效得執(zhí)行。40萬個(gè)納稅人每年得特許稅(Franchisetax)和營業(yè)稅征收額都在1億9千萬美圓以上。采用數(shù)據(jù)挖掘方法,每年Texas州利用數(shù)據(jù)挖掘技術(shù)從未申報(bào)的稅收中發(fā)現(xiàn)百萬計(jì)的偷逃稅款。2、美國華盛頓國家稅務(wù)局通過建立數(shù)據(jù)倉庫并進(jìn)行相應(yīng)的挖掘工作,把最先只能對100個(gè)左右的公司進(jìn)行稽查工作,通過數(shù)據(jù)挖掘進(jìn)行稽查選案工作,大大提高了對稽查選案時(shí)的準(zhǔn)確性和稽查額度,節(jié)約了稽查成本并使稽查成果大幅提高。雖然在我們探討研究的同時(shí)還需要逐漸完善,但是數(shù)據(jù)挖掘作為一門學(xué)科正從原來的邊緣學(xué)科轉(zhuǎn)變成為一門成熟學(xué)科,同時(shí),伴隨著信息化技術(shù)的發(fā)展,數(shù)據(jù)挖掘的技術(shù)也逐漸趨于成熟,國外的專業(yè)雜志-麻省理工學(xué)院的《科技評論》去年提出未來5年對人類產(chǎn)生重大影響的10大新興技術(shù),“數(shù)據(jù)挖掘”位居第三。從以上數(shù)據(jù)挖掘發(fā)展的歷史和未來的前景來看,數(shù)據(jù)挖掘技術(shù)現(xiàn)在已經(jīng)處于一個(gè)相對成熟的階段。這為我們查詢和分析工具的設(shè)計(jì)提供了很好的技術(shù)支持。同時(shí)面向?qū)ο缶幊碳夹g(shù)的應(yīng)用,使得系統(tǒng)有了更加靈活的擴(kuò)展性,從而使各個(gè)模塊間的耦合性大大降低,提高了系統(tǒng)的聚合性。同時(shí)基于面向?qū)ο蟮脑O(shè)計(jì)模式和重構(gòu)方法的應(yīng)用,使得系統(tǒng)的維護(hù)和擴(kuò)展變的更加容易。1.3本文的重點(diǎn)敘述如何使用MVC的框架,用ID3算法實(shí)現(xiàn)決策樹,并用實(shí)際數(shù)據(jù)進(jìn)行評估。2.技術(shù)支持2.1開發(fā)工具和環(huán)境通過MVC結(jié)構(gòu)添加相關(guān)樣本數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,后臺生成相應(yīng)決策樹,用戶通過前臺確定相關(guān)的查詢數(shù)據(jù),通過決策樹評估得到由該品種的品質(zhì)等級。專家用戶可以進(jìn)行樣本數(shù)據(jù)查看,增加和刪除,也可以自己通過選擇相應(yīng)的屬性建立決策樹判斷某些屬性對決策結(jié)果的影響。2.1.1開發(fā)工具選擇當(dāng)前開發(fā)此類工具的語言很多,比如:JAVA,VB,C++,NET…在這些語言當(dāng)中,要想開發(fā)一個(gè)功能完善、界面友好、移植性好、擴(kuò)展性好的系統(tǒng)并不是所有語言都能滿足的。首先看VB語言:VB在用戶界面開發(fā)方面有很大優(yōu)勢,比如:操作簡單,可視化強(qiáng)。但是它沒有脫離開面向過程的編程模式,可擴(kuò)展行和維護(hù)性很差。而且不支持B/S模式。C++雖然既支持面向?qū)ο缶幊?,同時(shí)又支持面向過程編程。然而面向?qū)ο蟛糠纸Y(jié)構(gòu)復(fù)雜,而且并不能支持B/S模式。.NET架構(gòu)不但支持面向?qū)ο缶幊?,而且同時(shí)支持B/S模式和C/S模式,按說是系統(tǒng)選擇的對象,然而不能實(shí)現(xiàn)跨平臺運(yùn)行導(dǎo)致的低移植性是它的致命缺點(diǎn)。最后,我們把選擇了java。Java語言與其他語言相比有一下優(yōu)點(diǎn):可移植性與結(jié)構(gòu)中立——結(jié)構(gòu)中立,平臺無關(guān);對網(wǎng)絡(luò)編程,單系統(tǒng)軟件發(fā)布有用。分布式——對象可以在本地或遠(yuǎn)程系統(tǒng)中。安全性——并不允許程序訪問所有的計(jì)算機(jī)內(nèi)存和磁盤空間。健壯性——Java便一起可以在編譯時(shí)自行檢測許多問題,而別的語言只有運(yùn)行時(shí)才檢測,Java不支持指針?biāo)惴?,不?huì)有不良的指針管理引起的內(nèi)存泄露或者內(nèi)存錯(cuò)誤。多線程——可以同時(shí)執(zhí)行多個(gè)任務(wù)。動(dòng)態(tài)性——足夠多的運(yùn)行時(shí)類型信息,用于在運(yùn)行時(shí)校驗(yàn)對象。這使得在一種安全有效的方式下動(dòng)態(tài)的連接代碼成為可能。在設(shè)計(jì)模式上選用MVC設(shè)計(jì)模式:當(dāng)用戶有請求提交時(shí),所有請求都會(huì)交給Servlet進(jìn)行處理,然后由Servlet調(diào)用JavaBean,并將JavaBean的操作結(jié)果通過RequestDispatcher接口傳遞到JSP頁面上。由于這些要顯示的內(nèi)容只是在一次請求-回應(yīng)中有效,所以在MVC設(shè)計(jì)模式中,所有的屬性傳遞都將使用request屬性范圍傳遞,這樣可以提升代碼的操作性能。2.1.2運(yùn)行環(huán)境操作系統(tǒng):Windows系列,內(nèi)存128M以上,硬盤1G以上Java虛擬機(jī)版本:jdk1.7.0目前系統(tǒng)可支持的數(shù)據(jù)庫:SqlServer??捎脼g覽器:默認(rèn)為Ie瀏覽器(支持javascript腳本)。Office:使用excel20032.2用JDBC連接數(shù)據(jù)庫的方法通過java可以有兩種方式連接數(shù)據(jù)庫:JDBC和ODBC,但是因?yàn)镺DBC是一個(gè)C語言接口,所以O(shè)DBC在Java中直接使用不適當(dāng)。因?yàn)閺腏ava中來調(diào)用C代碼在安全性,健壯性,實(shí)現(xiàn)的方便,可移植性等方面有許多不便。它使得Java在這些方面的許多優(yōu)點(diǎn)得不到發(fā)揮。于是我們選擇了JDBC與數(shù)據(jù)庫連接。Jdbc是Sun提供的一套數(shù)據(jù)庫編程接口API函數(shù),由Java語言編寫的類、界面組成。用寫的程序能夠自動(dòng)地將SQL語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)。JDBC連接數(shù)據(jù)庫方法圖2-1:圖2-1:JDBC連接數(shù)據(jù)庫方法2.3決策樹算法采用ID3決策樹算法造決策樹的基本算法是貪心算法,它以自頂向下遞歸的各個(gè)擊破方式構(gòu)造決策樹。一種著名的決策樹算法是ID3,算法的基本策略如下:①創(chuàng)建一個(gè)節(jié)點(diǎn)。如果樣本都在同一類,則算法停止,把該節(jié)點(diǎn)改成樹葉節(jié)點(diǎn),并用該類標(biāo)記。②否則,選擇一個(gè)能夠最好的將訓(xùn)練集分類的屬性,該屬性作為該節(jié)點(diǎn)的測試屬性。③對測試屬性中的每一個(gè)值,創(chuàng)建相應(yīng)的一個(gè)分支,并據(jù)此劃分樣本。④使用同樣的過程,自頂向下的遞歸,直到滿足下面的三個(gè)條件中的一個(gè)時(shí)就停止遞歸。給定節(jié)點(diǎn)的所有樣本都屬于同一類。沒有剩余的屬性可以用來劃分。分支沒有樣本。設(shè)S是s個(gè)數(shù)據(jù)樣本的集合。假定類標(biāo)號屬性具有m個(gè)不同值,定義m個(gè)不同類Ci(i=1,2,…,m)。設(shè)si是類Ci中的樣本數(shù)。對一個(gè)給定的樣本分類所需要的期望信息由下式給出:其中pi是任意樣本屬于Ci的概率,并用si/s估計(jì)。設(shè)屬性A具有v個(gè)不同值{a1,a2,…,av}??梢杂脤傩訟將S劃分為v個(gè)子集{S1,S2,…,SV};其中,Sj包含S中這樣一些樣本,它們在A上具有值aj。如果A選作測試屬性(即最好的分裂屬性),則這些子集對應(yīng)于由包含集合S的節(jié)點(diǎn)生長出來的分枝。設(shè)sij是子集Sj中類Ci的樣本數(shù)。根據(jù)由A劃分成子集的熵或期望信息由下式給出:其中,是第j個(gè)子集的權(quán),并且等于子集(即A值為aj)中的樣本個(gè)數(shù)除以S中的樣本總數(shù)。熵值越小,子集劃分的純度越高。注意,對于給定的子集Sj,其中,是Sj中的樣本屬于類Ci的概率。在A上分枝將獲得的編碼信息是。Gain(A)稱為信息增益,它是由于知道屬性A的值而導(dǎo)致的熵的期望壓縮。具有最高信息增益的屬性選作給定集合S的測試屬性。創(chuàng)建一個(gè)節(jié)點(diǎn),并以該屬性標(biāo)記,對屬性的每個(gè)值創(chuàng)建分枝,并據(jù)此劃分樣本。3.需求分析與概要設(shè)計(jì)3.1需求分析3.1.用戶必須登錄進(jìn)入相關(guān)角色才能使用相關(guān)權(quán)限的功能,樣本數(shù)據(jù)庫默認(rèn)必須至少有一個(gè)樣本值。3.1.功能劃分:用戶增刪改查,個(gè)人信息修改。樣本數(shù)據(jù)的錄入,導(dǎo)出,刪除。顯示樣本數(shù)據(jù),樣本數(shù)據(jù)值與含義轉(zhuǎn)換。樣本數(shù)據(jù)生成相關(guān)決策樹。輸入相應(yīng)屬性通過決策樹分析評估品種級別。自定義屬性決策樹,進(jìn)行屬性影響力對比。3.2概要設(shè)計(jì)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ù)導(dǎo)入模塊分詞模塊顯示模塊獲取數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)提供相關(guān)接口決策樹生成品質(zhì)評估決策樹評估單條數(shù)據(jù)導(dǎo)入批量數(shù)據(jù)導(dǎo)入語句劃分智能加入新詞接收用戶操作顯示評估信息顯示相關(guān)數(shù)據(jù)圖3—23.2.3按各模塊間關(guān)系接收用戶操作接收用戶操作顯示評估信息顯示相關(guān)數(shù)據(jù)語句劃分智能填詞決策樹生成品質(zhì)評估決策樹評估批量數(shù)據(jù)導(dǎo)入單條數(shù)據(jù)導(dǎo)入獲取數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)提供相關(guān)接口顯示模塊分詞模塊決策樹模塊數(shù)據(jù)導(dǎo)入模塊基礎(chǔ)模塊圖3—3各模塊間關(guān)系3.2.4系統(tǒng)模塊劃分模塊一,決策樹生成模塊。(由張金磊完成) 負(fù)責(zé)用JDBC橋接數(shù)據(jù)庫,使用ID3算法生成ID3型決策樹,根據(jù)輸入屬性完成品質(zhì)評估,樣本數(shù)據(jù)管理,屬性評估。前臺頁面設(shè)計(jì)。數(shù)據(jù)庫表設(shè)計(jì)。用戶增刪改查。 模塊二,分詞模塊,顯示模塊。(由臧進(jìn)進(jìn)完成) 負(fù)責(zé)根據(jù)輸入的對于果實(shí)的通俗描述語句,分出相應(yīng)屬性詞語,并將新描述詞填入詞庫。 模塊三,數(shù)據(jù)導(dǎo)入模塊,基礎(chǔ)模塊。(由富兆慧完成) 負(fù)責(zé)完成單條數(shù)據(jù)錄入數(shù)據(jù)和用excel表批量導(dǎo)入數(shù)據(jù)庫。4.詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)4.1設(shè)計(jì)說明由于系統(tǒng)分三個(gè)模塊,由我來負(fù)責(zé)決策樹生成模塊因此在系統(tǒng)詳細(xì)設(shè)計(jì)部分,由我來完成決策樹生成模塊的設(shè)計(jì)和開發(fā)。4.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)由于數(shù)據(jù)庫內(nèi)部結(jié)構(gòu)復(fù)雜并且關(guān)系緊密,因此設(shè)計(jì)一個(gè)合理的數(shù)據(jù)結(jié)構(gòu),用來存儲(chǔ)數(shù)據(jù)庫內(nèi)部表與表、字段與表、字段與字段之間的關(guān)系和信息是很有必要的。4.2.1數(shù)據(jù)結(jié)構(gòu)根據(jù)系統(tǒng)面對用戶,數(shù)據(jù)庫設(shè)計(jì)以下結(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, 果肉粗細(xì)float, 果肉汁液float, 酸甜度float, 特殊口味float, 裂果率float, 形狀float, 表皮顏色float, 果點(diǎn)密度float, 果皮厚度float, 果頂float, 果面float, 斑點(diǎn)大小float, 果肩float, 梗洼深度float, 梗洼廣度float, 萼片狀態(tài)float, 柱頭狀態(tài)float, 果實(shí)整齊度float, 果核形狀float, 種仁飽滿度float, 核殼有無float, 含仁率float, 豐產(chǎn)性float, 漿爛度float, 果實(shí)大小float, 樹形float, 有無殘?jiān)黤loat, 成熟期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決策樹實(shí)現(xiàn)4.4.1系統(tǒng)設(shè)計(jì)模式面向?qū)ο缶幊淌墙鼇沓绦蜷_發(fā)的主流,和以往的面向過程編程相比,它更具有可維護(hù)性和可擴(kuò)展性。無論是從程序設(shè)計(jì)還是到程序開發(fā),都展現(xiàn)出了面向過程無法比擬的優(yōu)點(diǎn)。首先,它從人類認(rèn)識世界的角度出發(fā),提出了“萬物皆對象”的思想。其次,對象具有的繼承、封裝和多態(tài)的特征,為程序的開發(fā)和維護(hù)帶來了很大的便利。再次,面向?qū)ο蟮脑O(shè)計(jì)重點(diǎn)放在了對象和對象接口設(shè)計(jì)上,從而擺脫了以往面向過程的把主要精力放在如何實(shí)現(xiàn)的細(xì)節(jié)上。從面向?qū)ο蟮乃枷氤霭l(fā),我們開發(fā)數(shù)據(jù)庫查詢和分析工具的基礎(chǔ)模塊,在開發(fā)基礎(chǔ)模塊之前我們要把握好以下幾點(diǎn):模塊封裝性要好:一個(gè)模塊分解是否成功的標(biāo)志是看該模塊自身的數(shù)據(jù)和細(xì)節(jié)封裝的程度的大小。一個(gè)好的模塊,可以把所有的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,提供各外部的API與自己的具體實(shí)現(xiàn)區(qū)分開來。這樣各個(gè)模塊之間就只通過API進(jìn)程通信,而不考慮具體的實(shí)現(xiàn)細(xì)節(jié)。模塊擴(kuò)展性要好:系統(tǒng)的最大特點(diǎn)就是要做到通用性,要想實(shí)現(xiàn)通用性,這就要求我們?nèi)嬷С炙袛?shù)據(jù)庫的表,當(dāng)有新的數(shù)據(jù)出現(xiàn)時(shí),我們應(yīng)該做到在不更改源代碼的基礎(chǔ)上實(shí)現(xiàn)功能的擴(kuò)展。要求我們嚴(yán)格遵守開閉原則,即對擴(kuò)展開放,對修改關(guān)閉。設(shè)計(jì)明確的接口:由于其他模塊的開發(fā)不是有我來完成的,因此,為其他模塊提供一個(gè)簡單明了且不變動(dòng)的接口也是軟件開發(fā)的關(guān)鍵。系統(tǒng)維護(hù)性要好:由于系統(tǒng)開發(fā)出來之后,功能不會(huì)全部實(shí)現(xiàn),有可能以后需要?jiǎng)e人來維護(hù)系統(tǒng),因此系統(tǒng)在開發(fā)過程中要生成完整的文檔,以供系統(tǒng)維護(hù)。4.4.從數(shù)據(jù)庫中獲取指定數(shù)據(jù)庫的庫信息,表信息,字段信息等,可以由一下步驟完成:建立數(shù)據(jù)庫鏈接根據(jù)用戶提供的用戶名,密碼,數(shù)據(jù)庫名和數(shù)據(jù)庫所在位置,我們可以通過jdbc或者dbcb-odbc橋獲得與指定數(shù)據(jù)庫的連接Connection.2.得到DatabaseMetaData對象根據(jù)第一步獲取的連接,我們可以創(chuàng)建一個(gè)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)拓展實(shí)現(xiàn)拓展性是每個(gè)系統(tǒng)必須要有的,也是設(shè)計(jì)追求目標(biāo)之一,對于決策樹系統(tǒng)而言不止在于棗品質(zhì)測評上,還必須要用于其他品種評估。要實(shí)現(xiàn)這個(gè)目標(biāo),在設(shè)計(jì)系統(tǒng)上必須要決策樹系統(tǒng)生成,評估上,必須設(shè)計(jì)留有相關(guān)接口,以便在加入其它品種時(shí)可以僅需修改小部分代碼,實(shí)現(xiàn)代碼復(fù)用。<<<interface>>ctreecreattree();id3treecreattree()id3countGaincountGain()<<interface>>countGainColcountGain()4—2.工廠方法類關(guān)系圖4.4.4接口的設(shè)計(jì)要想實(shí)現(xiàn)模塊與模塊之間良好的通信,設(shè)計(jì)一個(gè)合理安全的接口是必要的。這個(gè)接口既要設(shè)計(jì)的簡單,又要屏蔽到程序?qū)崿F(xiàn)的詳細(xì)信息.從本模塊功能上分析,這個(gè)模塊主要功能是為其他模塊提供數(shù)據(jù)庫結(jié)構(gòu)信息的,因此,它只能為其他模塊提供數(shù)據(jù)庫結(jié)構(gòu)信息,而不能提供修改數(shù)據(jù)庫結(jié)構(gòu)的接口.同時(shí),考慮到系統(tǒng)內(nèi)部類之間關(guān)系的復(fù)雜和繁瑣,在設(shè)計(jì)這個(gè)接口是我們采取了設(shè)計(jì)模式的外觀模式。通過創(chuàng)建一個(gè)外觀類,其他模塊可以在不了解內(nèi)部信息的基礎(chǔ)上調(diào)用模塊的接口.添加工廠模式之前如圖4-3:對象對象模塊外模塊內(nèi)圖4-3添加工廠模式之后如圖4-4:treeFacadetreeFacade對象模塊外模塊內(nèi)圖4-44.4.5后臺包及設(shè)計(jì)Bean包(存放基礎(chǔ)計(jì)算代碼):countEnd類:計(jì)算決策樹節(jié)點(diǎn)結(jié)果是否唯一。intcEnd(floatlist[][])返回1為結(jié)束節(jié)點(diǎn),返回0為非結(jié)束節(jié)點(diǎn)。getEndResult類:通過給出的屬性,使用決策樹評估結(jié)果。publicStringgetEResult(floatinlist[])。輸入為屬性集合數(shù)組,返回為評估結(jié)果Bean.id3包(存放生成ID3決策樹時(shí)需要的相關(guān)計(jì)算類):id3countGain類:決策樹ID3算法,計(jì)算最高信息增益列。publicintcountGain(floatlist[][],floatweightlist[][])輸入權(quán)值表,樣本列表。返回當(dāng)前計(jì)算擁有最高熵值的列。cGain類:計(jì)算具體屬性的熵值。publicfloatspGain(floatlist[][],intp,doubleI,floatweightlist[][])輸入樣本表,列號,權(quán)值表,總熵值,輸出列號所選熵值。countResult類:統(tǒng)計(jì)結(jié)果種類和個(gè)數(shù)。publicfloat[][]cResult(floatlist[][])輸入樣本表,輸出該樣本的所有的結(jié)果及其各樣的個(gè)數(shù)。Be
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銅門銷售安裝合同模板
- 游戲賬號借用合同模板
- 綠化承保合同模板
- 輸氣總包合同模板
- 考證保證合同模板
- 換股合同模板
- 競買合同模板
- 2024年黨規(guī)黨紀(jì)知識競賽題及答案(二)
- 霍州聯(lián)社用工合同模板
- 代理辦理證照合同模板
- 國網(wǎng)新安規(guī)培訓(xùn)考試題及答案
- 5.1+走近老師(課件)2024-2025學(xué)年七年級道德與法治上冊統(tǒng)編版
- 湖南省長沙市2023-2024學(xué)年八年級上學(xué)期期中考試數(shù)學(xué)試卷(含答案)
- 【班主任工作】2024-2025學(xué)年秋季安全主題班會(huì)教育周記錄
- 2024年云南合和(集團(tuán))股份限公司招聘3人高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 2024-2030年中國蛋及蛋制品行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- 《探究與實(shí)踐 交通運(yùn)輸在全球經(jīng)濟(jì)發(fā)展中的作用》課件-2024-2025學(xué)年七年級地理上冊湘教版
- 《信息技術(shù)基礎(chǔ)與應(yīng)用(第2版)(上冊)》高職全套教學(xué)課件
- 2024年高考模擬考試英語試卷及答案
- 2024至2030年中國維生素D滴劑行業(yè)市場深度研究及發(fā)展趨勢預(yù)測報(bào)告
- 2024年中國全屋定制行業(yè)市場調(diào)查、產(chǎn)業(yè)鏈全景及市場需求規(guī)模預(yù)測報(bào)告
評論
0/150
提交評論