農(nóng)業(yè)專家系統(tǒng)_第1頁(yè)
農(nóng)業(yè)專家系統(tǒng)_第2頁(yè)
農(nóng)業(yè)專家系統(tǒng)_第3頁(yè)
農(nóng)業(yè)專家系統(tǒng)_第4頁(yè)
農(nóng)業(yè)專家系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、成都農(nóng)業(yè)職業(yè)技術(shù)學(xué)院- 農(nóng)業(yè)專家診斷信息系統(tǒng)農(nóng)業(yè)專家信息診斷系統(tǒng)需求分析說明書版本:Ver1.0成都天榮北軟信息技術(shù)有限公司目錄1.系統(tǒng)總體設(shè)計(jì)分析31.1.需求分析31.2.用戶需求分析32.初步設(shè)計(jì)分析43.系統(tǒng)功能需求分析53.1系統(tǒng)功能層次模塊圖53.2.系統(tǒng)功能需求分析53.2.1.農(nóng)作物信息管理63.2.2.病害信息管理63.2.3蟲害信息管理63.2.4病蟲害診斷73.2.5在線留言73.2.6知識(shí)庫(kù)管理73.3系統(tǒng)性能需求分析83.3.1 靈活性83.3.2.時(shí)間特性要求84數(shù)據(jù)庫(kù)總體設(shè)計(jì)84.1數(shù)據(jù)庫(kù)E-R圖94.2數(shù)據(jù)表的詳細(xì)設(shè)計(jì)94.3數(shù)據(jù)庫(kù)表關(guān)系圖145系統(tǒng)實(shí)現(xiàn)165.

2、1界面及功能說明165.1.1 前臺(tái)界面模塊165.1.2 病蟲害診斷界面175.2系統(tǒng)后臺(tái)界面185.3 示例代碼205.3.1類庫(kù)示例代碼205.3.2.后臺(tái)示例代碼215.3.3.實(shí)現(xiàn)農(nóng)作物病蟲害診斷示例代碼226.參考文獻(xiàn)251. 系統(tǒng)總體設(shè)計(jì)分析1.1. 需求分析農(nóng)業(yè)專家信息診斷系統(tǒng)重點(diǎn)是開發(fā)專門的應(yīng)用系統(tǒng),提高辦公自動(dòng)化程度,開發(fā)農(nóng)業(yè)專家診斷信息系統(tǒng),實(shí)現(xiàn)農(nóng)作物病蟲害診斷電子化管理,促進(jìn)病蟲害信息收集整理的標(biāo)準(zhǔn)化、規(guī)范化和系統(tǒng)化;構(gòu)建農(nóng)業(yè)專家診斷信息系統(tǒng),滿足廣大農(nóng)民的需求,形成農(nóng)作物專家病蟲害診斷現(xiàn)代化信息系統(tǒng)。1.2用戶需求分析本系統(tǒng)適用于各類人員,如農(nóng)民、農(nóng)業(yè)專家等。不用的用

3、戶對(duì)系統(tǒng)的需求有所不同。 農(nóng)民本系統(tǒng)的直接受益方,農(nóng)民主要是種植農(nóng)作物,擁有豐富的種植經(jīng)驗(yàn),但有些農(nóng)民十分缺乏對(duì)于農(nóng)作物病蟲害的診斷和防治。因此他們需要有一個(gè)容易操作的人機(jī)界面系統(tǒng)來診斷農(nóng)作物病蟲害,并得到相應(yīng)的防治信息。如用例圖所示:圖1-1 農(nóng)民用例農(nóng)業(yè)專家本系統(tǒng)的農(nóng)業(yè)知識(shí)大部分都來自農(nóng)業(yè)專家提供的,他們擁有豐富的農(nóng)作物病蟲害診斷經(jīng)驗(yàn),他們對(duì)系統(tǒng)的構(gòu)建起到監(jiān)督作用,因此他們需要構(gòu)建出來的系統(tǒng)是一個(gè)具有完善、準(zhǔn)確的系統(tǒng)來診斷農(nóng)作物病蟲害。圖1-2 農(nóng)業(yè)專家用例2.初步設(shè)計(jì)分析系統(tǒng)的目標(biāo)是構(gòu)建一個(gè)能夠準(zhǔn)確診斷農(nóng)作物病蟲害及提供相應(yīng)防治方法的專家系統(tǒng),使用戶能夠及時(shí)的通過專家系統(tǒng)的人機(jī)界面診斷農(nóng)

4、作物病蟲害,并做治療處理。本系統(tǒng)提供準(zhǔn)確、完整的農(nóng)作物信息,管理員登錄到系統(tǒng)后臺(tái),在可用的時(shí)間內(nèi)可以對(duì)農(nóng)作物信息進(jìn)行增刪改查。以統(tǒng)一規(guī)劃、分布實(shí)施的思想為指導(dǎo),遵循的設(shè)計(jì)原則有:系統(tǒng)性原則、信息集成原則、信息通用原則、面向業(yè)務(wù)原則、開放性原則、安全性原則、可伸縮性原則、高可靠性原則、易操作性原則、體系結(jié)構(gòu)延展性原則。3.系統(tǒng)功能需求分析3.1系統(tǒng)功能層次模塊圖圖:3-1 系統(tǒng)功能模塊圖3.2系統(tǒng)功能需求分析本系統(tǒng)主要分為六大功能模塊:農(nóng)作物信息管理、病害信息管理、蟲害信息管理、病蟲害診斷、在線留言、知識(shí)庫(kù)管理。3.2.1農(nóng)作物信息管理主要是完成農(nóng)作物基本信息的一些操作,包括對(duì)農(nóng)作物信息的增加、

5、修改以及查詢功能。圖3-2 農(nóng)作物信息管理需求圖3.2.2病害信息管理根據(jù)不同農(nóng)作物對(duì)應(yīng)的病害信息進(jìn)行添加、修改、刪除和查詢。圖3-3 病害信息管理需求圖3.2.3蟲害信息管理與不同農(nóng)作物對(duì)應(yīng)的蟲體的形狀、為害特點(diǎn)進(jìn)行蟲害信息的添加、修改、刪除和查詢。圖3-4 蟲害信息管理需求圖3.2.4病蟲害診斷主要是通過輸入的事實(shí),完成病蟲害的診斷。圖3-5 病蟲害診斷需求圖3.2.5在線留言訪問者可以在線留言,管理者進(jìn)入后臺(tái),可以恢復(fù)留言、刪除留言。圖3-6 在線留言需求圖3.2.6知識(shí)庫(kù)管理主要功能是對(duì)規(guī)則進(jìn)行增加、修改、刪除。圖3-7 知識(shí)庫(kù)管理需求圖3.3系統(tǒng)性能需求分析3.3.1靈活性系統(tǒng)應(yīng)具有

6、較靈活的更新操作,對(duì)操作后數(shù)據(jù)庫(kù)的內(nèi)容進(jìn)行有選擇地添加、修改和刪除,必要時(shí)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的部分信息進(jìn)行初始化。3.3.2時(shí)間特性要求說明對(duì)于該系統(tǒng)的時(shí)間特性要求,如下:響應(yīng)時(shí)間:視網(wǎng)絡(luò)情況,等待時(shí)間不超過5秒;更新處理時(shí)間:不超過10秒; 數(shù)據(jù)的轉(zhuǎn)換和傳送時(shí)間:不超過5秒。4.數(shù)據(jù)庫(kù)總體設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)的設(shè)計(jì)是指在需求分析的基礎(chǔ)上,設(shè)計(jì)出各個(gè)表結(jié)構(gòu)的設(shè)計(jì),包括各個(gè)表保存的信息、各個(gè)表的結(jié)構(gòu)以及各個(gè)表之間的關(guān)系15。4.1數(shù)據(jù)庫(kù)E-R圖給出了農(nóng)作物、農(nóng)作物病害、農(nóng)作物蟲害、規(guī)則等表的E-R圖,也根據(jù)系統(tǒng)實(shí)現(xiàn)的需要,定義這些表所包含的信息。其中農(nóng)作物病害、農(nóng)作物蟲害、規(guī)則表都有一個(gè)統(tǒng)一的外鍵“農(nóng)作物編

7、號(hào)”。一種農(nóng)作物可以有多條規(guī)則,但是一條規(guī)則只能對(duì)應(yīng)一種農(nóng)作物;一種農(nóng)作物會(huì)患多種病害,一種病害也可以對(duì)應(yīng)多種農(nóng)作物;一個(gè)農(nóng)作物會(huì)患有多種蟲害,一種蟲害也可以在多種農(nóng)作物上生長(zhǎng)。圖4-1 數(shù)據(jù)庫(kù)E-R圖4.2數(shù)據(jù)表的詳細(xì)設(shè)計(jì)本系統(tǒng)的數(shù)據(jù)庫(kù)關(guān)系模式如下:農(nóng)作物信息表(農(nóng)作物編號(hào)、農(nóng)作物名稱、類別、描述、狀態(tài)、圖片名稱),主鍵:農(nóng)作物編號(hào);農(nóng)作物病害表(病害編號(hào)、病害名稱、農(nóng)作物編號(hào)、發(fā)病時(shí)期、發(fā)病部位、癥狀、發(fā)病原因、防治措施、病害圖、狀態(tài)),主鍵:病害編號(hào),外鍵:農(nóng)作物編號(hào);留言表(編號(hào)、留言人名稱、留言時(shí)間、留言內(nèi)容、是否有回復(fù)、回復(fù)內(nèi)容)主鍵:編號(hào);鏈接表(編號(hào)、名稱、鏈接地址、logo圖

8、標(biāo)),主鍵:編號(hào);用戶信息表(編號(hào)、用戶名、密碼)主鍵:編號(hào);農(nóng)作物蟲害信息表(蟲害編號(hào)、蟲害名稱、農(nóng)作物編號(hào)、蟲體形狀、為害特點(diǎn)、生活習(xí)性、防治措施、蟲害圖、狀態(tài))主鍵:蟲害編號(hào),外鍵:農(nóng)作物編號(hào);病蟲害規(guī)則表(編號(hào)、農(nóng)作物編號(hào)、類別、規(guī)則、結(jié)論),主鍵:編號(hào),外鍵:農(nóng)作物編號(hào)。根據(jù)數(shù)據(jù)E-R圖和關(guān)系模式設(shè)計(jì)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)表的詳細(xì)設(shè)計(jì)如下主鍵名稱字段類型為空唯一長(zhǎng)度默認(rèn)值備注TrueCropIDvarcharTrueFalse20農(nóng)作物編號(hào)FalseCropNamevarcharFalseFalse20農(nóng)作物名稱FalseCategoryvarcharFalseFalse30類別FalseD

9、escriptionvarcharFalseFalse2000描述FalseStatevarcharFalseFalse50是否為可用FalseImagevarcharFalseFalse50圖片名稱表4-1 Crops(農(nóng)作物信息表)主鍵名稱字段類型為空唯一長(zhǎng)度默認(rèn)值備注TrueDIDvarcharTrueFalse20病害編號(hào)FalseDiseaseNamevarcharFalseFalse20病害名FalseCropIDvarcharFalseFalse20農(nóng)作物編號(hào)FalseGetsickTimevarcharFalseFalse50發(fā)病時(shí)期FalseGetsickPlacevarch

10、arFalseFalse50發(fā)病部位FalseSymptomvarcharFalseFalse2000癥狀FalseGetsickReasonvarcharFalseFalse2000發(fā)病原因FalseCureMeasurevarcharFalseFalse2000防治措施FalseDiseaseImagevarcharFalseFalse50病害圖FalseStatevarcharFalseFalse10是否為可用表4-2 Disease(病害信息表)主鍵名稱字段類型為空唯一長(zhǎng)度默認(rèn)值備注TrueIDintTrueFalse1編號(hào)FalseMingchengvarcharFalseFalse

11、50名稱FalseLianjievarcharFalseFalse100鏈接FalseLogovarcharFalseFalse50Logo圖表4-3 Lianjie(友情鏈接表)主鍵名稱字段類型為空唯一長(zhǎng)度默認(rèn)值備注TrueIDintTrueFalse1編號(hào)FalseUserNamevarcharFalseFalse10用戶名FalseUserPasswordvarcharFalseFalse10密碼表4-4 Login(用戶表)主鍵名稱字段類型為空唯一長(zhǎng)度默認(rèn)值備注TruePIDvarcharTrueFalse20編號(hào)FalsePestNamevarcharFalseFalse50蟲害名F

12、alseCropIDvarcharFalseFalse20農(nóng)作物編號(hào)FalseWormShapevarcharFalseFalse500蟲狀FalseInjuryCharactersvarcharFalseFalse2000為害特點(diǎn)FalseLifeHabitvarcharFalseFalse500生活習(xí)性FalseCureMeasurevarcharFalseFalse2000防治措施FalsePestImagevarcharFalseFalse50蟲害圖名FalseStatevarcharFalseFalse10是否可用表4-5 Pest(蟲害信息表)主鍵名稱字段類型為空唯一長(zhǎng)度默認(rèn)值備注

13、TrueRIDintTrueFalse1編號(hào)FalseCropIDvarcharFalseFalse20農(nóng)作物編號(hào)FalseClassvarcharFalseFalse10類型FalseRulesvarcharFalseFalse2000規(guī)則FalseResultvarcharFalseFalse50結(jié)論表4-6 Rules(規(guī)則表)主鍵名稱字段類型為空唯一長(zhǎng)度默認(rèn)值備注TrueIDintTrueFalse1編號(hào)FalseusernamevarcharFalseFalse50留言人名稱FalsePostTimevarcharFalseFalse50留言時(shí)間Falsemessagevarchar

14、FalseFalse2000留言內(nèi)容FalseisrepliedvarcharFalseFalse50有無(wú)回復(fù)FalsereplyvarcharFalseFalse2000回復(fù)內(nèi)容表4-7 gestbook(留言本表)4.3數(shù)據(jù)庫(kù)表關(guān)系圖本系統(tǒng)的數(shù)據(jù)表Crops是關(guān)于農(nóng)作物的基本信息,Disease是病害信息表,Pest是蟲害信息表,Rules是規(guī)則表,病害表、蟲害表、規(guī)則表的外鍵都是農(nóng)作物信息表的編號(hào)(CropID)。此外還有用戶表(Login)、留言板表(gestbook)、友情鏈接表(Lianjie),它們都是獨(dú)立的,沒有跟其他表有主外鍵關(guān)聯(lián)。數(shù)據(jù)庫(kù)表的關(guān)系圖如下:圖4-2 數(shù)據(jù)庫(kù)表關(guān)系

15、圖a圖4-3 數(shù)據(jù)庫(kù)表關(guān)系圖b5系統(tǒng)實(shí)現(xiàn)5.1界面及功能說明5.1.1前臺(tái)界面模塊系統(tǒng)的首頁(yè)主要是顯示各個(gè)模塊的部分信息,如顯示農(nóng)作物的名稱、圖片,病害和蟲害名稱。將部分大家都經(jīng)常訪問的網(wǎng)址做成友情鏈接、小型的天氣預(yù)報(bào),方便用戶使用。圖5-1 訪問前臺(tái)界面流程圖5-1 系統(tǒng)主界面圖5.1.2病蟲害診斷界面本頁(yè)是用來診斷農(nóng)作物病蟲害的信息的,用戶在界面上選擇農(nóng)作物的品種、病害或者蟲害,再根據(jù)提供的所有事實(shí),從中抽取合適的作為診斷的事實(shí),每個(gè)事實(shí)間用“,”分隔,最后點(diǎn)擊“開始診斷”即可診斷出病/蟲害。圖5-2病蟲害診斷圖5.2系統(tǒng)后臺(tái)界面后臺(tái)界面:通過后臺(tái)可以對(duì)系統(tǒng)管理者、農(nóng)作物、病害信息、蟲害信

16、息、友情鏈接、留言本、規(guī)則庫(kù)等進(jìn)行管理,如增加、修改、刪除等操作。界面的右上角有一個(gè)用session做成的,當(dāng)哪個(gè)管理員登錄后臺(tái),就顯示用戶名,下面是進(jìn)入系統(tǒng)前臺(tái)界面的超級(jí)鏈接。圖5-3 系統(tǒng)后臺(tái)界面流程圖圖5-4后臺(tái)主頁(yè)5.3示例代碼5.3.1類庫(kù)示例代碼本段類庫(kù)代碼包含了創(chuàng)建數(shù)據(jù)庫(kù)連接、打開連接、建立dataset存儲(chǔ)記錄集合、異常處理、關(guān)閉連接。將數(shù)據(jù)庫(kù)連接語(yǔ)句寫在類庫(kù)里面,編程時(shí)就用可以直接引用,不用每個(gè)地方都得編寫數(shù)據(jù)庫(kù)連接語(yǔ)句。本段代碼主要在數(shù)據(jù)集合中,當(dāng)需要將數(shù)據(jù)填充到表中,用本段可以快速地的編寫。/ <summary> / 返回個(gè)DataTable / </s

17、ummary> / <param name="strSql"></param> / <returns>DataTable</returns> public DataTable ExecuteTable(string strSql) /創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接 string connStr =ConfigurationManager.ConnectionStrings"connStr".ToString(); SqlConnection conn = new SqlConnection(connStr); t

18、ry conn.Open(); /打開連接 SqlDataAdapter adapter = new SqlDataAdapter(strSql, conn); /請(qǐng)求一個(gè)記錄集合 DataSet ds = new DataSet(); /建立DataSet對(duì)象 adapter.Fill(ds); /把記錄集合暫存到DataSet中 DataTable dt = ds.Tables0; return dt; catch (Exception ex) throw ex; /異常處理 finally conn.Dispose(); /關(guān)閉連接 5.3.2后臺(tái)示例代碼 本段代碼主要用于添加新規(guī)則時(shí)的

19、重要代碼,點(diǎn)擊添加按鈕時(shí),如果文本框是空白的,會(huì)彈出對(duì)話框提示“信息不能為空”。如果規(guī)則已經(jīng)存在,則重新返回本界面。代碼中出現(xiàn)的“helper.ExecuteScalar”在類庫(kù)代碼中已經(jīng)封裝好類了,這樣可以方便后期開發(fā),節(jié)省時(shí)間。/ <summary> / 添加新規(guī)則 / </summary> / <param name="sender"></param> / <param name="e"></param> protected void btnAdd_Click(object s

20、ender, EventArgs e) if (txtRule.Text = "") Response.Write("<script language='javascript'>alert('信息不能為空');window.history.back()</script>"); else string strSql = string.Format("select count(*) from Rules where Rules='0'",txtRule.Text);

21、if (Convert.ToInt32(helper.ExecuteScalar(strSql) > 0) Response.Write("<script language='javascript'>alert('規(guī)則已存在');window.history.back()</script>"); else strSql = string.Format("insert into Rules(CropID,Rules) values('0','1')",DDLNam

22、e.Text,txtRule.Text); helper.ExecuteSQL(strSql); Response.Write("<script language='javascript'>alert('添加新規(guī)則成功');location.href='RuleManage.aspx'</script>"); 5.3.3實(shí)現(xiàn)農(nóng)作物病蟲害診斷示例代碼本段代碼是主要描述點(diǎn)擊開始診斷按鈕事件的代碼,判斷文本框的值是否為空,為空則返回該界面;將用戶輸入的事實(shí)用逗號(hào)分隔開,并加入事實(shí)庫(kù)中;提取規(guī)則庫(kù)中的的結(jié)論部分

23、,放入數(shù)組中,然后使用foreach進(jìn)行循環(huán),根據(jù)每個(gè)結(jié)論進(jìn)行逆向推理。將診斷結(jié)果顯示出來public void btnDiagnose_Click(object sender, EventArgs e) if (txtFact.Text = "") Response.Write("<script language='javascript'>alert('信息不能為空');window.history.back()</script>"); else /將輸入事實(shí)用逗號(hào)分隔開,并加入事實(shí)庫(kù) strin

24、g shishi = txtFact.Text; string str = shishi.Split(','); foreach (string temp in str) machine.AddFact(temp); /先把病蟲害寫在數(shù)組中。然后使用foreach進(jìn)行循環(huán),根據(jù)每個(gè)病蟲害用逆向推理。 machine.AddFact(shishi); string strSql = string.Format("select Result from Rules where CropID='" + DDLCrop.SelectedValue + &quo

25、t;' and Class='" + DDLClass.SelectedValue + "'"); DataTable dt = helper.ExecuteTable(strSql); for (int i = 0; i < dt.Rows.Count; i+) conslu.Add(dt.Rowsi0.ToString(); foreach (string result in conslu) bool b = machine.CallMachine(result); if (true = b) if (DDLClass.Selec

26、tedValue = "病害") string strSql1=string.Format("select DID from Disease where DiseaseName='"+result+"'"); DataTable dt1 = helper.ExecuteTable(strSql1); string jid = dt1.Rows00.ToString(); Response.Redirect("DiseaseView.aspx?id="+jid+""); else string strSql2 = string.Format("select PID fro

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論