軟件工程畢業(yè)設(shè)計(jì)-中國(guó)棗病蟲(chóng)害診斷系統(tǒng)_第1頁(yè)
軟件工程畢業(yè)設(shè)計(jì)-中國(guó)棗病蟲(chóng)害診斷系統(tǒng)_第2頁(yè)
軟件工程畢業(yè)設(shè)計(jì)-中國(guó)棗病蟲(chóng)害診斷系統(tǒng)_第3頁(yè)
軟件工程畢業(yè)設(shè)計(jì)-中國(guó)棗病蟲(chóng)害診斷系統(tǒng)_第4頁(yè)
軟件工程畢業(yè)設(shè)計(jì)-中國(guó)棗病蟲(chóng)害診斷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE河北農(nóng)業(yè)大學(xué)信息學(xué)院本科畢業(yè)論文題目:中國(guó)棗病蟲(chóng)害診斷系統(tǒng)摘要Android手機(jī)的普及使得一些應(yīng)用軟件得到了很好的推廣,通常一些專(zhuān)家診斷系統(tǒng)都是通過(guò)電腦來(lái)實(shí)現(xiàn),一些偏遠(yuǎn)的地區(qū)互聯(lián)網(wǎng)并沒(méi)有被覆蓋,所以這就使得一些棗樹(shù)病害得不到及時(shí)的治療和防御,本文所研究的棗病蟲(chóng)害診斷系統(tǒng)是基于以往病蟲(chóng)害信息和全國(guó)專(zhuān)家經(jīng)驗(yàn)為一體的跨平臺(tái)系統(tǒng),android平臺(tái)是市場(chǎng)最普及的應(yīng)用平臺(tái),現(xiàn)代手機(jī)的高普及率,易用。該系統(tǒng)應(yīng)用于android平臺(tái)實(shí)現(xiàn)了棗病蟲(chóng)害診斷能夠隨時(shí)掌控,更方便了查詢(xún)各種病態(tài)信息。本系統(tǒng)通過(guò)嵌入式數(shù)據(jù)庫(kù)SQLite存放病蟲(chóng)害相關(guān)信息,使用java技術(shù)實(shí)現(xiàn)本系統(tǒng)兩大功能模塊。在研究本項(xiàng)目之前,首先要搜集相關(guān)病蟲(chóng)害資料然后進(jìn)一步整理;然后進(jìn)行系統(tǒng)框架圖,系統(tǒng)流程圖的設(shè)計(jì);然后編寫(xiě)代碼實(shí)現(xiàn)每一模塊功能;最后調(diào)試程序,撰寫(xiě)論文。由于棗病蟲(chóng)害診斷系統(tǒng)是基于android平臺(tái)開(kāi)發(fā)的單擊系統(tǒng),數(shù)據(jù)庫(kù)里邊的病蟲(chóng)害信息量受到一定的限制。但是對(duì)于一些常見(jiàn)的棗病蟲(chóng)害,此系統(tǒng)可以輕松的診斷此棗樹(shù)的病害情況,方便工作人員進(jìn)一步預(yù)防,提高棗的產(chǎn)量。該系統(tǒng)實(shí)現(xiàn)了按危害部位和危害時(shí)期兩種棗病蟲(chóng)害診斷功能。關(guān)鍵字:棗病蟲(chóng)害,專(zhuān)家診斷系統(tǒng)、SQLite數(shù)據(jù)庫(kù)、java技術(shù).

AbstractDuetothepopularityofAndroidmobilephoneapplicationsoftwareisverygoodpromotion,usuallysomeexpertdiagnosissystemisrealizedbycomputer,someremoteareasarenotcoveredbytheInternet,soitmakesanumberofjujubediseaseswithouttreatmentanddefensetimely,jujubediseasesandinsectpestdiagnosissysteminthispaperisthecrossplatformsystemthepestinformationandtheexperienceofexpertsasonebasedontheAndroidapplicationplatform,platformisthemostpopularmodernmobilephonemarket,thehighpenetrationrate,easytouse.ThesystemisappliedtotheAndroidplatformofthejujubepestsdiagnosecanatanytimecontrol,moreconvenienttoqueryvariousmorbidinformation.ThesystemthroughtheSQLiteembeddeddatabasetostoragepestsanddiseasesrelatedinformation,theuseofJavatechnologytorealizethesystemaretwobigfunctionmodule.Beforethestudy,firstofalltocollectrelatedplantdiseasesandinsectpestsdataandthenfurtherconsolidation;thenthesystemframediagram,designtheflowchartofthesystem;andthenwritecodetoimplementeachfunctionmodule;finally,debugging,writingpapers.ThejujubePestsDiagnosisSystemisclicksystemdevelopmentplatformbasedonAndroiddatabaseinside,thepestinformationlimited.Butforsomecommonjujubediseasesandinsectpest,thejujubediseasediagnosisofthissystemcaneasily,convenientstafftopreventfurther,improvetheyieldofjujube.ThesystemrealizesaccordingtothedamagelocationanddamageoftwokindsofjujubediseasesandInsectPestsDiagnosisfunction.Keywords:jujubediseasesandinsectpestdiagnosisexpertsystem,SQLite,database,Javatechnology.

目錄1.緒論 11.1前言 11.2課題研究的背景及意義 11.3國(guó)內(nèi)外研究概況與發(fā)展趨勢(shì) 11.4設(shè)計(jì)的主要工作 21.5論文組織 22.開(kāi)發(fā)環(huán)境和開(kāi)發(fā)技術(shù) 32.1工具環(huán)境介紹 32.1.1開(kāi)發(fā)環(huán)境的選擇 32.2開(kāi)發(fā)技術(shù) 32.2.2java語(yǔ)言簡(jiǎn)介 32.2.3SQLite簡(jiǎn)介 33.需求分析 53.1設(shè)計(jì)思想 53.2可行性分析 53.2.1操作可行性 53.2.2技術(shù)可行性 63.2.3經(jīng)濟(jì)可行性 63.3功能需求 63.3.1基本功能需求 63.3.2用戶(hù)界面需求 74.系統(tǒng)設(shè)計(jì) 84.1總體結(jié)構(gòu)設(shè)計(jì) 84.1.1系統(tǒng)設(shè)計(jì)基礎(chǔ) 84.1.2模塊設(shè)計(jì) 84.1.3系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 104.1.4系統(tǒng)邏輯設(shè)計(jì) 114.1.5系統(tǒng)流程 124.2數(shù)據(jù)庫(kù)設(shè)計(jì) 124.2.1數(shù)據(jù)庫(kù)簡(jiǎn)介 124.2.2物理結(jié)構(gòu)設(shè)計(jì) 135.系統(tǒng)實(shí)現(xiàn) 145.1設(shè)計(jì)主界面 145.2系統(tǒng)各個(gè)模塊功能 145.2.1果樹(shù)成長(zhǎng)時(shí)期診斷 146.系統(tǒng)綜合測(cè)試 216.1按發(fā)生蟲(chóng)害部位測(cè)試 217.結(jié)束語(yǔ) 257.1總結(jié) 257.2心得體會(huì) 25致謝 26參考文獻(xiàn) 27PAGE321.緒論1.1前言棗樹(shù)病蟲(chóng)害的增加,使得大棗的產(chǎn)量逐年降低,為了解決這一現(xiàn)象研發(fā)的基于android平臺(tái)的棗病蟲(chóng)害診斷系統(tǒng)可以輕松的掌握病害信息,及時(shí)的診斷棗樹(shù)的病害情況。以往病蟲(chóng)害防治主要依靠農(nóng)業(yè)專(zhuān)家和農(nóng)技人員的現(xiàn)場(chǎng)指導(dǎo),但生產(chǎn)實(shí)踐中棗農(nóng)的知識(shí)需求與專(zhuān)家的知識(shí)供給之間存在技術(shù)斷層,互聯(lián)網(wǎng)的接入在一些偏遠(yuǎn)的山區(qū)農(nóng)村還沒(méi)有普及,基于Web的棗病蟲(chóng)害診斷專(zhuān)家系統(tǒng)使用受到了限制??紤]到現(xiàn)代手機(jī)的高普及率易用,將棗病蟲(chóng)害診斷專(zhuān)家系統(tǒng)應(yīng)用于android平臺(tái)之上,該設(shè)計(jì)實(shí)現(xiàn)了棗病蟲(chóng)害診斷能夠隨時(shí)掌控。1.2課題研究的背景及意義基于web的棗病蟲(chóng)害診斷系統(tǒng)的適用范圍是已經(jīng)接入互聯(lián)網(wǎng)的地方,而中國(guó)山區(qū)比較多,互聯(lián)網(wǎng)的覆蓋范圍還為涉及到一偏遠(yuǎn)的山區(qū),這種情況下就使得很多務(wù)農(nóng)因?yàn)闊o(wú)法確診棗樹(shù)病蟲(chóng)害信息而耽誤了其診斷的時(shí)機(jī),最后導(dǎo)致棗的產(chǎn)量和品質(zhì)降低,每年給農(nóng)民帶來(lái)巨大的經(jīng)濟(jì)損失。為了能夠及時(shí)的了解棗樹(shù)的病害信息,將手機(jī)作為棗病蟲(chóng)害診斷系統(tǒng)研發(fā)的平臺(tái),手機(jī)是人們?nèi)粘I钪胁豢苫蛉钡囊粯庸ぞ?,正是考慮到現(xiàn)代手機(jī)的高普及率易用,將棗病蟲(chóng)害診斷專(zhuān)家系統(tǒng)應(yīng)用于android平臺(tái)之上,該設(shè)計(jì)實(shí)現(xiàn)了棗病蟲(chóng)害診斷能夠隨時(shí)掌控。雖然說(shuō)大學(xué)四年點(diǎn)點(diǎn)滴滴的積累,對(duì)于我來(lái)說(shuō)不是很滿(mǎn)足,但是通過(guò)此次設(shè)計(jì)我們得到的不僅僅是一張畢業(yè)證,此次設(shè)計(jì)是我們四年的結(jié)晶,四年理論知識(shí)的積累讓我們對(duì)未來(lái)不是很明確,此次設(shè)計(jì)正是我們從校園理論到社會(huì)實(shí)踐的過(guò)渡階段。通過(guò)畢業(yè)設(shè)計(jì),不僅使我對(duì)棗病蟲(chóng)害有一定的了解,而且還鞏固、擴(kuò)大、加深了以前所學(xué)的知識(shí),培養(yǎng)綜合運(yùn)用已有知識(shí)獨(dú)立解決問(wèn)題的能力。1.3國(guó)內(nèi)外研究概況與發(fā)展趨勢(shì)將信息技術(shù)廣泛應(yīng)用為基礎(chǔ)的現(xiàn)代農(nóng)業(yè),在美國(guó),日本等許多發(fā)達(dá)國(guó)家已取得長(zhǎng)足發(fā)展。目前國(guó)際上有好多農(nóng)業(yè)專(zhuān)家系統(tǒng),廣泛應(yīng)用與生產(chǎn)管理,品種選擇,畜禽飼料配方,灌溉,施肥,水土保持等眾多方面,設(shè)計(jì)對(duì)象主要是農(nóng)民,農(nóng)業(yè)技術(shù)人員和農(nóng)業(yè)管理人員。我國(guó)農(nóng)業(yè)專(zhuān)家系統(tǒng)的開(kāi)發(fā)及應(yīng)用相比較國(guó)外起步比較晚,但發(fā)展速度較快,一些種植業(yè)有關(guān)的農(nóng)業(yè)專(zhuān)家系統(tǒng)已經(jīng)在農(nóng)業(yè)生產(chǎn)實(shí)際中得到應(yīng)用。我國(guó)應(yīng)用與農(nóng)業(yè)的許多害蟲(chóng)防治系統(tǒng)已經(jīng)初步形成。1.4設(shè)計(jì)的主要工作本系統(tǒng)包括兩個(gè)模塊:按時(shí)期診斷;按部位診斷。在手機(jī)終端選擇診斷方式,系統(tǒng)會(huì)顯示相應(yīng)的典型特征供用戶(hù)選擇,并提交,在診斷的過(guò)程中,為了解決棗病蟲(chóng)害得并發(fā)癥問(wèn)題,先后對(duì)病害庫(kù)和蟲(chóng)害庫(kù)進(jìn)行操作。檢索出所有可能的病蟲(chóng)害,用戶(hù)可以通過(guò)病蟲(chóng)害詳細(xì)信息進(jìn)一步驗(yàn)證。1.5論文組織論文全文共分為七章:第一章緒論。主要介紹了論文選題的引言、對(duì)課題研究的背景及意義進(jìn)行了分析,同時(shí)也對(duì)國(guó)內(nèi)外研究狀況及發(fā)展趨勢(shì)進(jìn)行了介紹。第二章開(kāi)發(fā)環(huán)境和開(kāi)發(fā)技術(shù)。介紹了系統(tǒng)的開(kāi)發(fā)模式、開(kāi)發(fā)環(huán)境等基礎(chǔ)知識(shí)。第三章需求分析。主要介紹了系統(tǒng)設(shè)計(jì)思想、可行性分析、功能和性能需求。第四章系統(tǒng)設(shè)計(jì)。主要介紹了系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì),其中數(shù)據(jù)庫(kù)的設(shè)計(jì)包括了概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。第五章系統(tǒng)實(shí)現(xiàn)。介紹了該系統(tǒng)的倆個(gè)模塊和它具有的功能。第六章系統(tǒng)測(cè)試。選取具有代表性的診斷方式進(jìn)行診斷,測(cè)試結(jié)果是否正常顯示。第七章結(jié)束語(yǔ)。對(duì)整個(gè)系統(tǒng)的編寫(xiě)過(guò)程做一個(gè)詳細(xì)的總結(jié)。

2.開(kāi)發(fā)環(huán)境和開(kāi)發(fā)技術(shù)2.1工具環(huán)境介紹2.1.1開(kāi)發(fā)環(huán)境的選擇本系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境如下: 開(kāi)發(fā)環(huán)境:Windows7運(yùn)行環(huán)境:android 開(kāi)發(fā)工具:Eclipse 數(shù)據(jù)庫(kù)管理系統(tǒng):SQLite本系統(tǒng)主要采用java與Sqlite相結(jié)合的技術(shù)。利用Eclipse軟件來(lái)完成系統(tǒng)的整個(gè)編寫(xiě)過(guò)程。2.2開(kāi)發(fā)技術(shù)2.2.2java語(yǔ)言簡(jiǎn)介Java編程語(yǔ)言的風(fēng)格十分接近C、C++語(yǔ)言。Java是一個(gè)純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它繼承了C++語(yǔ)言面向?qū)ο蠹夹g(shù)的核心。Java舍棄了C語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operatoroverloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂(yōu)。在Java1.5版本中,Java又引入了泛型編程(GenericProgramming)、類(lèi)型安全的枚舉、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語(yǔ)言特性。Java不同于一般的編譯執(zhí)行計(jì)算機(jī)語(yǔ)言和解釋執(zhí)行計(jì)算機(jī)語(yǔ)言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴(lài)各種不同平臺(tái)上的虛擬機(jī)來(lái)解釋執(zhí)行字節(jié)碼。從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過(guò),每次的執(zhí)行編譯后的字節(jié)碼需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了Java程序的運(yùn)行效率。2.2.3SQLite簡(jiǎn)介SQLite是一個(gè)嵌入式數(shù)據(jù)庫(kù)引擎,針對(duì)內(nèi)存等資源有限的設(shè)備(如手機(jī),PDA,MP3)提供的一種高效的數(shù)據(jù)庫(kù)引擎。SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。Sqlite數(shù)據(jù)庫(kù)不像其他的數(shù)據(jù)庫(kù)(如Oracle),它沒(méi)有服務(wù)器進(jìn)程。所有的內(nèi)容包含在同一個(gè)單文件中。該文件時(shí)跨平臺(tái)的,可以自由復(fù)制?;谄渥陨淼南忍靸?yōu)勢(shì),Sqlite在嵌入式領(lǐng)域得到了廣泛應(yīng)用。Android也沒(méi)有重復(fù)發(fā)明“輪子”,而是直接使用SQLite數(shù)據(jù)庫(kù)。

3.需求分析3.1設(shè)計(jì)思想第一步整合病蟲(chóng)害信息庫(kù)資源,第二步使用Elicpse完成該系統(tǒng)的開(kāi)發(fā)。首先將病蟲(chóng)害資源分類(lèi),分為病害資源庫(kù)和蟲(chóng)害資源庫(kù);然后將整個(gè)系統(tǒng)的流程圖和系統(tǒng)邏輯圖設(shè)計(jì)出來(lái),按照系統(tǒng)邏輯圖的思路編寫(xiě)代碼。該系統(tǒng)的開(kāi)發(fā)平臺(tái)設(shè)在android上使得更多的用戶(hù)能夠及時(shí)的診斷棗樹(shù)的病害情況。為了更確切的診斷病蟲(chóng)害信息,該系統(tǒng)采用兩種診斷模式,用戶(hù)可以選擇兩種診斷模式進(jìn)行診斷。3.2可行性分析可行性分析法是對(duì)\o"工程項(xiàng)目"工程項(xiàng)目進(jìn)行系統(tǒng)\o"技術(shù)經(jīng)濟(jì)論證"技術(shù)經(jīng)濟(jì)論證,經(jīng)濟(jì)合理性綜合分析的方法。其目的是通過(guò)對(duì)技術(shù)先進(jìn)程度,經(jīng)濟(jì)合理性和條件可能性的分析論證,選擇以最小的人力、物力、財(cái)力耗費(fèi),取得最佳技術(shù)、經(jīng)濟(jì)、\o"社會(huì)效益"社會(huì)效益的切實(shí)方案。它是解決項(xiàng)目投資前期分析的主要手段??尚行苑治鍪峭ㄟ^(guò)對(duì)項(xiàng)目的主要內(nèi)容和配套條件,如市場(chǎng)需求、資源供應(yīng)、建設(shè)規(guī)模、工藝路線(xiàn)、設(shè)備選型、環(huán)境影響、資金籌措、盈利能力等,從技術(shù)、經(jīng)濟(jì)、工程等方面進(jìn)行調(diào)查研究和分析比較,并對(duì)項(xiàng)目建成以后可能取得的財(cái)務(wù)、經(jīng)濟(jì)效益及社會(huì)環(huán)境影響進(jìn)行預(yù)測(cè),從而提出該項(xiàng)目是否值得投資和如何進(jìn)行建設(shè)的咨詢(xún)意見(jiàn),為項(xiàng)目決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法??尚行苑治鰬?yīng)具有預(yù)見(jiàn)性、公正性、可靠性、科學(xué)性的特點(diǎn)。本系統(tǒng)在設(shè)計(jì)過(guò)程中考慮到以下幾個(gè)可行性:3.2.1操作可行性本系統(tǒng)操作簡(jiǎn)單,初體驗(yàn)者只需操作一次就可輕松掌握其步驟。而且此系統(tǒng)是基于android平臺(tái)開(kāi)發(fā),手機(jī)的發(fā)展歷程從最初的功能機(jī)時(shí)代邁進(jìn)了如今的智能機(jī)時(shí)代,在信息如此發(fā)達(dá)的今天,擁有一部智能手機(jī)對(duì)每個(gè)人來(lái)說(shuō)顯得十分重要,智能手機(jī)的出現(xiàn)在很多方面可以說(shuō)起到了顛覆性的作用。所以此系統(tǒng)在操作方面會(huì)讓用戶(hù)很容易接受。3.2.2技術(shù)可行性Android平臺(tái)采用了整合的策略思想,包括底層linux操作系統(tǒng),中間層的中間件和上層的java應(yīng)用程序。1.應(yīng)用程序框架支持組件的重用與替換;2.android應(yīng)用程序?qū)⒂衘ava編寫(xiě),編譯的類(lèi)文件通過(guò)DX工具轉(zhuǎn)換成一種后綴名為.dex的文件來(lái)執(zhí)行。Dalivik虛擬機(jī)是基于寄存器的,相對(duì)與java虛擬機(jī)速度要快很多;3.SQLite用作結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)。3.2.3經(jīng)濟(jì)可行性系統(tǒng)在開(kāi)發(fā)過(guò)程中所使用的軟件均為免費(fèi)版,由于開(kāi)發(fā)環(huán)境在win7之上,所以前期該系統(tǒng)只需要提供人力和一臺(tái)電腦。以往基于web的診斷系統(tǒng)不能得到適時(shí)的運(yùn)用,所以將系統(tǒng)移植到android之上迫在眉睫,其前景將一片見(jiàn)好。3.3功能需求根據(jù)棗樹(shù)一般發(fā)生病蟲(chóng)害的特征以及專(zhuān)家的多年經(jīng)驗(yàn),一個(gè)棗樹(shù)診斷系統(tǒng)可以從倆個(gè)方面來(lái)診斷:1)根據(jù)病害部位診斷;這種查找方式針對(duì)不同用戶(hù)都適用,用戶(hù)只需要選擇按部位診斷按鈕,接著點(diǎn)選病蟲(chóng)害特征就可以診斷棗樹(shù)病害情況;2)根據(jù)棗樹(shù)病害時(shí)期診斷;這種查找方式針對(duì)的用戶(hù)是稍微有點(diǎn)棗樹(shù)嘗試的用戶(hù),這種診斷方式需要選擇發(fā)生病害時(shí)期然后點(diǎn)選病害特征;兩種功能模塊,用戶(hù)可以隨意選擇一種進(jìn)行診斷,也可以選擇一種以后再選擇第二種進(jìn)行進(jìn)一步的確診病害情況。3.3.1基本功能需求通過(guò)對(duì)系統(tǒng)的分析,可知該系統(tǒng)有兩項(xiàng)功能:按時(shí)期診斷主要是通過(guò)棗樹(shù)病害時(shí)期所出現(xiàn)的癥狀從而來(lái)確診棗樹(shù)病害信息按部位診斷主要是通過(guò)棗樹(shù)病害部位所出現(xiàn)的癥狀從而來(lái)確診棗樹(shù)病態(tài)信息。3.3.2用戶(hù)界面需求用戶(hù)界面是人與計(jì)算機(jī)之間的媒介。用戶(hù)通過(guò)用戶(hù)界面來(lái)與計(jì)算機(jī)進(jìn)行信息交換。因此,用戶(hù)界面的質(zhì)量,直接關(guān)系到應(yīng)用系統(tǒng)的性能能否充分發(fā)揮,能否使用戶(hù)準(zhǔn)確、高效、輕松、愉快地工作。所以軟件的友好性、易用性對(duì)于軟件系統(tǒng)至關(guān)重要。目前國(guó)內(nèi)軟件開(kāi)發(fā)者在設(shè)計(jì)過(guò)程中很注重軟件的開(kāi)發(fā)技術(shù)及其具有的業(yè)務(wù)功能,而忽略了用戶(hù)對(duì)用戶(hù)界面的需求,影響軟件的易用性、友好性。其實(shí)用戶(hù)界面是一個(gè)應(yīng)用程序很重要的一面——它直接影響程序的使用價(jià)值。對(duì)于大多數(shù)用戶(hù)來(lái)說(shuō),用戶(hù)界面就是他們對(duì)一個(gè)產(chǎn)品的全部了解。所以對(duì)他們來(lái)說(shuō),一個(gè)內(nèi)部設(shè)計(jì)良好但用戶(hù)界面不好的應(yīng)用程序就是一個(gè)不好的程序。一個(gè)應(yīng)用程序的用戶(hù)界面框架是決定它的商業(yè)價(jià)值的重要因素??紤]到系統(tǒng)面對(duì)的用戶(hù)各不相同,所以該設(shè)計(jì)界面充分利用用戶(hù)對(duì)大多數(shù)應(yīng)用的熟悉程度,幫助用戶(hù)通過(guò)已掌握的知識(shí)來(lái)使用界面。窗口的布局、色彩的搭配、字體風(fēng)格等方面處處模仿微軟,因此系統(tǒng)界面美觀大方,符合大多數(shù)人的使用習(xí)慣,按鈕得體,使用起來(lái)非常簡(jiǎn)單。

4.系統(tǒng)設(shè)計(jì)4.1總體結(jié)構(gòu)設(shè)計(jì)4.1.1系統(tǒng)設(shè)計(jì)基礎(chǔ)系統(tǒng)總體設(shè)計(jì)原則是需要充分考慮系統(tǒng)框架的合理構(gòu)建理。其組織結(jié)構(gòu)圖如4-1所示。棗病蟲(chóng)害診斷系統(tǒng)棗病蟲(chóng)害診斷系統(tǒng)按時(shí)期診斷按部位診斷病蟲(chóng)害特征棗病蟲(chóng)害診斷系統(tǒng)圖4-1系統(tǒng)組織結(jié)構(gòu)圖4.1.2模塊設(shè)計(jì)本系統(tǒng)是一個(gè)診斷系統(tǒng),主要目標(biāo)是讓農(nóng)戶(hù)能夠適時(shí)的診斷棗樹(shù)的健康狀況,做出相應(yīng)的措施。此診斷系統(tǒng)包涵倆個(gè)模塊:按時(shí)期診斷;按部位診斷;農(nóng)戶(hù)可以根據(jù)以上倆種診斷方式確切的診斷出棗樹(shù)的病害情況。根據(jù)需求分析中列出的棗病蟲(chóng)害診斷系統(tǒng)的兩個(gè)基本模塊,設(shè)計(jì)了如下圖4-2所示系統(tǒng)功能層次圖。萌芽展葉期主菜單按時(shí)期診斷按部位診斷花期萌芽展葉期主菜單按時(shí)期診斷按部位診斷花期生長(zhǎng)期幼果期周年貯藏期果實(shí)成熟期果實(shí)膨大期果實(shí)生長(zhǎng)期根樹(shù)干枝條芽葉片花果實(shí)病害信息蟲(chóng)害信息病害圖片蟲(chóng)害圖片由上述的系統(tǒng)總體結(jié)構(gòu)圖所示,將一個(gè)棗病蟲(chóng)害診斷系統(tǒng)分成兩個(gè)子模塊,他們分別為:按部位診斷、按時(shí)期診斷模塊。具體功能描述如下:按時(shí)期診斷用戶(hù)可根據(jù)棗樹(shù)發(fā)生病害的時(shí)期以及這個(gè)時(shí)期所出現(xiàn)的病害特征診斷其病害情況并得到及時(shí)的預(yù)防治療。按部位診斷:用戶(hù)可根據(jù)棗樹(shù)發(fā)生病害的部位以及部位發(fā)生的病害特征診斷其病害情況并得到及時(shí)的預(yù)防治療。4.1.3系統(tǒng)結(jié)構(gòu)設(shè)計(jì)在系統(tǒng)模塊的設(shè)計(jì)過(guò)程中,將系統(tǒng)模塊以按鈕的形式展現(xiàn)出來(lái)。按時(shí)期診斷模塊的功能層次,如圖4-3所示;按部位診斷的功能層次,如圖4-4所示按時(shí)期診斷按時(shí)期診斷選擇危害特征可能病蟲(chóng)害信息列表選擇危害時(shí)期相關(guān)病害信息按部位按部位診斷選擇危害特征可能病蟲(chóng)害信息列表選擇危害部位相關(guān)病害信息圖4-3按時(shí)期診斷模塊的功能層次圖4-4按部位診斷模塊的功能層次4.1.4系統(tǒng)邏輯設(shè)計(jì)系統(tǒng)從總體上可分為按部位診斷模塊、按時(shí)期診斷模塊兩大部分。各個(gè)模塊實(shí)現(xiàn)的功能都大同小異,目的都是為了進(jìn)一步確診病害情況。下面的各模塊功能流圖就是由各功能之間的關(guān)系而得出的。如下圖4-5所示用戶(hù)根據(jù)棗樹(shù)受害情況選擇進(jìn)行何種診斷方式,數(shù)據(jù)庫(kù)根據(jù)用戶(hù)所選條件進(jìn)行篩選得出相應(yīng)的信息:按時(shí)期診斷按時(shí)期診斷數(shù)據(jù)庫(kù)診斷條件按部位診斷選擇相關(guān)時(shí)期診斷結(jié)果選擇相關(guān)部位選擇相關(guān)特征選擇相關(guān)特征圖4-5系統(tǒng)邏輯設(shè)計(jì)流程

4.1.5系統(tǒng)流程系統(tǒng)在執(zhí)行過(guò)程中,按照一定的流程進(jìn)行。如圖4-7所示開(kāi)始開(kāi)始選擇診斷方式選擇棗樹(shù)受害特征連接數(shù)據(jù)庫(kù)顯示病害信息無(wú)病害信息圖4-6系統(tǒng)執(zhí)行流程圖4.2數(shù)據(jù)庫(kù)設(shè)計(jì)4.2.1數(shù)據(jù)庫(kù)簡(jiǎn)介數(shù)據(jù)庫(kù)中的數(shù)據(jù)是為眾多用戶(hù)所共享其信息而建立的,已經(jīng)擺脫了具體程序的限制和制約。不同的用戶(hù)可以按各自的用法使用數(shù)據(jù)庫(kù)中的數(shù)據(jù);多個(gè)用戶(hù)可以同時(shí)共享數(shù)據(jù)庫(kù)中的數(shù)據(jù)資源,即不同的用戶(hù)可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù)。數(shù)據(jù)共享性不僅滿(mǎn)足了各用戶(hù)對(duì)信息內(nèi)容的要求,同時(shí)也滿(mǎn)足了各用戶(hù)之間信息通信的要求。數(shù)據(jù)庫(kù)是一個(gè)單位或是一個(gè)應(yīng)用領(lǐng)域的通用數(shù)據(jù)處理系統(tǒng),它存儲(chǔ)的是屬于企業(yè)和事業(yè)部門(mén)、團(tuán)體和個(gè)人的有關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是從全局觀點(diǎn)出發(fā)建立的,按一定的數(shù)據(jù)模型進(jìn)行組織、描述和存儲(chǔ)。其結(jié)構(gòu)基于數(shù)據(jù)間的自然聯(lián)系,從而可提供一切必要的存取路徑,且數(shù)據(jù)不再針對(duì)某一應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化特征。數(shù)據(jù)庫(kù)是存儲(chǔ)在一起的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)構(gòu)化的,無(wú)有害的或不必要的冗余,并為多種應(yīng)用服務(wù);數(shù)據(jù)的存儲(chǔ)獨(dú)立于使用它的程序;對(duì)數(shù)據(jù)庫(kù)插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進(jìn)行。4.2.2物理結(jié)構(gòu)設(shè)計(jì)根據(jù)邏輯關(guān)系模型可直接設(shè)計(jì)基于某種數(shù)據(jù)庫(kù)管理系統(tǒng)支持的物理結(jié)構(gòu),我們知道關(guān)系數(shù)據(jù)庫(kù)是由表構(gòu)成的,所以依據(jù)病害信息、蟲(chóng)害信息在數(shù)據(jù)庫(kù)中建立相應(yīng)的表。本系統(tǒng)采用的數(shù)據(jù)庫(kù)是SQLite數(shù)據(jù)庫(kù),本數(shù)據(jù)庫(kù)名稱(chēng)為“zhp.db”,其中包含兩張表。各表結(jié)構(gòu)分別如以下列表所示。表4-1病害信息表(disease)含義列名數(shù)據(jù)類(lèi)型允許空ID編號(hào)IdInt否病害名稱(chēng)NameText是病害別名BienameText是病原DiseasesourceText是病原傳播方式SpredkindText是危害時(shí)期WeihaitimeText是危害部位WeihaipartText是過(guò)冬方式ContentText是病害特點(diǎn)CharacterText是表4-2蟲(chóng)害信息表(worm)含義列名數(shù)據(jù)類(lèi)型允許空ID編號(hào)IdInt否蟲(chóng)害名稱(chēng)NameText是蟲(chóng)害別名BienameText是危害時(shí)期蟲(chóng)害成長(zhǎng)狀態(tài)WeihaipestaText是危害部位WeihaipartText是危害時(shí)期WeihaitimeText是所屬類(lèi)別ClassnameText是過(guò)冬方式ContentText是危害特點(diǎn)CharacterText是危害后特點(diǎn)pestCharacterText是

5.系統(tǒng)實(shí)現(xiàn)5.1設(shè)計(jì)主界面病蟲(chóng)害診斷系統(tǒng)主頁(yè)面如圖5-1所示:

圖5-1系統(tǒng)窗體

5.2系統(tǒng)各個(gè)模塊功能5.2.1果樹(shù)成長(zhǎng)時(shí)期診斷如圖5-2

圖5-2按時(shí)期診斷實(shí)現(xiàn)選擇代碼如下:protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.time); linear=(LinearLayout)findViewById(R.id.linear_time); rb_mengya=(RadioButton)findViewById(R.id.radioButton_mengya); rb_youmiao=(RadioButton)findViewById(R.id.radioButton_youmiao); rb_chengzhang=(RadioButton)findViewById(R.id.radioButton_chengzhang); rb_youguo=(RadioButton)findViewById(R.id.radioButton_youguo); rb_guoshichengzhang=(RadioButton)findViewById(R.id.radioButton_guoshichengzhang); rb_guoshipengda=(RadioButton)findViewById(R.id.radioButton_guoshipengda); rb_guoshichengshu=(RadioButton)findViewById(R.id.radioButton_guoshichengshu); rb_zhucang=(RadioButton)findViewById(R.id.radioButton_zhucang); rb_zhounian=(RadioButton)findViewById(R.id.radioButton_zhounian); linear.setBackgroundResource(R.drawable.back); rb_mengya.setOnClickListener(click); rb_youmiao.setOnClickListener(click); rb_chengzhang.setOnClickListener(click); rb_youguo.setOnClickListener(click); rb_guoshichengzhang.setOnClickListener(click); rb_guoshipengda.setOnClickListener(click); rb_guoshichengshu.setOnClickListener(click); rb_zhucang.setOnClickListener(click); rb_zhounian.setOnClickListener(click); } OnClickListenerclick=newOnClickListener(){ publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.radioButton_mengya: submit(0); break; caseR.id.radioButton_youmiao: submit(1); break; caseR.id.radioButton_chengzhang: submit(2); break; caseR.id.radioButton_youguo: submit(3); break; caseR.id.radioButton_guoshichengzhang: submit(4); break; caseR.id.radioButton_guoshipengda: submit(5); break; caseR.id.radioButton_guoshichengshu: submit(6); break; caseR.id.radioButton_zhucang: submit(7); break; caseR.id.radioButton_zhounian: submit(8); break; default: break; } } }; @Override publicbooleanonCreateOptionsMenu(Menumenu){ getMenuInflater().inflate(R.menu.main_menu,menu); returnsuper.onCreateOptionsMenu(menu); } @Override publicbooleanonOptionsItemSelected(MenuItemitem){ switch(item.getItemId()){ caseR.id.item_exit: showAlertDialog();// break; default: break; } returnsuper.onOptionsItemSelected(item); } privatevoidshowAlertDialog(){ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setMessage(R.string.button_eixt); builder.setPositiveButton(R.string.ok, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){ finish(); } }); builder.setNegativeButton(R.string.cancle, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){ } }); AlertDialogdialog=builder.create(); dialog.show(); } privatevoidsubmit(intid){ Intentintent=newIntent(TimeActivity.this, Cha1.class); intent.putExtra("time_id",id); intent.putExtra("time","time"); startActivity(intent); }}按時(shí)期選擇之后特點(diǎn)選擇界面如下圖5-3:

圖5-3按時(shí)期診斷選擇實(shí)現(xiàn)選擇的代碼如下:protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.cha); button_submit=(Button)findViewById(R.id.button1_submit); cb_a=(CheckBox)findViewById(R.id.checkBox_a); cb_b=(CheckBox)findViewById(R.id.checkBox_b); cb_c=(CheckBox)findViewById(R.id.checkBox_c); cb_d=(CheckBox)findViewById(R.id.checkBox_d); cb_e=(CheckBox)findViewById(R.id.checkBox_e); cb_f=(CheckBox)findViewById(R.id.checkBox_f); cb_g=(CheckBox)findViewById(R.id.checkBox_g); cb_h=(CheckBox)findViewById(R.id.checkBox_h); cb_i=(CheckBox)findViewById(R.id.checkBox_i); cb_j=(CheckBox)findViewById(R.id.checkBox_j); cb_k=(CheckBox)findViewById(R.id.checkBox_k); cb_l=(CheckBox)findViewById(R.id.checkBox_l); cb_m=(CheckBox)findViewById(R.id.checkBox_m); time_id=getIntent().getIntExtra("time_id",0); switch(time_id){ case0://萌芽展葉期 cb_a.setText("吃芽");//吃芽 cb_b.setText("遇驚擾吐絲下垂"); cb_c.setText("幼蟲(chóng)吐絲爬行"); cb_d.setText("吸食汁液"); cb_e.setText("吐絲纏綴葉片危害"); cb_f.setText("吃葉"); cb_g.setVisibility(View.GONE); cb_h.setVisibility(View.GONE); cb_i.setVisibility(View.GONE); cb_j.setVisibility(View.GONE); cb_k.setVisibility(View.GONE); cb_l.setVisibility(View.GONE); cb_m.setVisibility(View.GONE); break;time_id=getIntent().getIntExtra(“time_id”,o);button_submit.setOnClickListener(click);}OnClickListenerclick=newOnClickListener(){ publicvoidonClick(Viewv){ Intentintent=newIntent(Cha1.this,DiseaseActivity.class); if(time!=null&&time.equals("time")){ switch(time_id){ case0: if(cb_a.isChecked()){ Stringacy="acy"; intent.putExtra("acy",acy); intent.putExtra("time_id",time_id); intent.putExtra("time",time); }if(cb_b.isChecked()){ Stringats="ats"; intent.putExtra("ats",ats); intent.putExtra("time_id",time_id); intent.putExtra("time",time); }if(cb_c.isChecked()){ Stringapx="apx"; intent.putExtra("apx",apx); intent.putExtra("time_id",time_id); intent.putExtra("time",time); }if(cb_d.isChecked()){ Stringaxy="axy"; intent.putExtra("axy",axy); intent.putExtra("time_id",time_id); intent.putExtra("time",time); }if(cb_e.isChecked()){ Stringaxs="axs"; intent.putExtra("axs",axs); intent.putExtra("time_id",time_id); intent.putExtra("time",time); }if(cb_f.isChecked()){ Stringacyy="acyy"; intent.putExtra("acyy",acyy); intent.putExtra("time_id",time_id); intent.putExtra("time",time);

溫馨提示

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

評(píng)論

0/150

提交評(píng)論