农业专家系统.docx

上传人:b****6 文档编号:6463747 上传时间:2023-01-06 格式:DOCX 页数:23 大小:687.43KB
下载 相关 举报
农业专家系统.docx_第1页
第1页 / 共23页
农业专家系统.docx_第2页
第2页 / 共23页
农业专家系统.docx_第3页
第3页 / 共23页
农业专家系统.docx_第4页
第4页 / 共23页
农业专家系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

农业专家系统.docx

《农业专家系统.docx》由会员分享,可在线阅读,更多相关《农业专家系统.docx(23页珍藏版)》请在冰豆网上搜索。

农业专家系统.docx

农业专家系统

 

农业专家信息诊断系统

需求分析说明书

 

版本:

Ver1.0

 

成都天荣北软信息技术有限公司

 

1.系统总体设计分析

1.1.需求分析

农业专家信息诊断系统重点是开发专门的应用系统,提高办公自动化程度,开发农业专家诊断信息系统,实现农作物病虫害诊断电子化管理,促进病虫害信息收集整理的标准化、规范化和系统化;构建农业专家诊断信息系统,满足广大农民的需求,形成农作物专家病虫害诊断现代化信息系统。

1.

1.1.

1.2.用户需求分析

本系统适用于各类人员,如农民、农业专家等。

不用的用户对系统的需求有所不同。

1农民

本系统的直接受益方,农民主要是种植农作物,拥有丰富的种植经验,但有些农民十分缺乏对于农作物病虫害的诊断和防治。

因此他们需要有一个容易操作的人机界面系统来诊断农作物病虫害,并得到相应的防治信息。

如用例图所示:

图1-1农民用例

②农业专家

本系统的农业知识大部分都来自农业专家提供的,他们拥有丰富的农作物病虫害诊断经验,他们对系统的构建起到监督作用,因此他们需要构建出来的系统是一个具有完善、准确的系统来诊断农作物病虫害。

图1-2农业专家用例

1.

2.初步设计分析

系统的目标是构建一个能够准确诊断农作物病虫害及提供相应防治方法的专家系统,使用户能够及时的通过专家系统的人机界面诊断农作物病虫害,并做治疗处理。

本系统提供准确、完整的农作物信息,管理员登录到系统后台,在可用的时间内可以对农作物信息进行增删改查。

以统一规划、分布实施的思想为指导,遵循的设计原则有:

系统性原则、信息集成原则、信息通用原则、面向业务原则、开放性原则、安全性原则、可伸缩性原则、高可靠性原则、易操作性原则、体系结构延展性原则。

3.系统功能需求分析

1

2

3

3.1系统功能层次模块图

图:

3-1系统功能模块图

2.

3.

3.1.

3.2.系统功能需求分析

本系统主要分为六大功能模块:

农作物信息管理、病害信息管理、虫害信息管理、病虫害诊断、在线留言、知识库管理。

1

2

3

3.1

3.2

1.

2.

3.

3.1.

3.2.

3.2.1.农作物信息管理

主要是完成农作物基本信息的一些操作,包括对农作物信息的增加、修改以及查询功能。

图3-2农作物信息管理需求图

1.

2.

3.

3.1.

3.2.

3.2.1.

3.2.2.病害信息管理

根据不同农作物对应的病害信息进行添加、修改、删除和查询。

图3-3病害信息管理需求图

1

2

3

3.1

3.2

3.3

3.3.1

3.3.2

1

2

3

3.1

3.2

3.2.1

3.2.2

3.2.3虫害信息管理

与不同农作物对应的虫体的形状、为害特点进行虫害信息的添加、修改、删除和查询。

图3-4虫害信息管理需求图

1

2

3

3.1

3.2

3.2.1

3.2.2

3.2.3

3.2.4病虫害诊断

主要是通过输入的事实,完成病虫害的诊断。

图3-5病虫害诊断需求图

3.2.5在线留言

访问者可以在线留言,管理者进入后台,可以恢复留言、删除留言。

图3-6在线留言需求图

3.2.6知识库管理

主要功能是对规则进行增加、修改、删除。

图3-7知识库管理需求图

1

2

3

3.1

3.2

3.3系统性能需求分析

1

2

3

3.1

3.2

3.3

3.3.1灵活性

系统应具有较灵活的更新操作,对操作后数据库的内容进行有选择地添加、修改和删除,必要时对数据库系统的部分信息进行初始化。

1.

2.

3.

3.1.

3.2.

3.3.

3.3.1.

3.3.2.时间特性要求

说明对于该系统的时间特性要求,如下:

①响应时间:

视网络情况,等待时间不超过5秒;

②更新处理时间:

不超过10秒;

③数据的转换和传送时间:

不超过5秒。

4数据库总体设计

数据库设计的设计是指在需求分析的基础上,设计出各个表结构的设计,包括各个表保存的信息、各个表的结构以及各个表之间的关系[15]。

4.14数据库E-R图

给出了农作物、农作物病害、农作物虫害、规则等表的E-R图,也根据系统实现的需要,定义这些表所包含的信息。

其中农作物病害、农作物虫害、规则表都有一个统一的外键“农作物编号”。

一种农作物可以有多条规则,但是一条规则只能对应一种农作物;一种农作物会患多种病害,一种病害也可以对应多种农作物;一个农作物会患有多种虫害,一种虫害也可以在多种农作物上生长。

图4-1数据库E-R图

4.2数据表的详细设计

本系统的数据库关系模式如下:

农作物信息表(农作物编号、农作物名称、类别、描述、状态、图片名称),主键:

农作物编号;

农作物病害表(病害编号、病害名称、农作物编号、发病时期、发病部位、症状、发病原因、防治措施、病害图、状态),主键:

病害编号,外键:

农作物编号;

留言表(编号、留言人名称、留言时间、留言内容、是否有回复、回复内容)主键:

编号;

链接表(编号、名称、链接地址、logo图标),主键:

编号;

用户信息表(编号、用户名、密码)主键:

编号;

农作物虫害信息表(虫害编号、虫害名称、农作物编号、虫体形状、为害特点、生活习性、防治措施、虫害图、状态)主键:

虫害编号,外键:

农作物编号;

病虫害规则表(编号、农作物编号、类别、规则、结论),主键:

编号,外键:

农作物编号。

根据数据E-R图和关系模式设计数据库,数据库表的详细设计如下

主键

名称

字段类型

为空

唯一

长度

默认值

备注

True

CropID

varchar

True

False

20

农作物编号

False

CropName

varchar

False

False

20

农作物名称

False

Category

varchar

False

False

30

类别

False

Description

varchar

False

False

2000

描述

False

State

varchar

False

False

50

是否为可用

False

Image

varchar

False

False

50

图片名称

表4-1Crops(农作物信息表)

主键

名称

字段类型

为空

唯一

长度

默认值

备注

True

DID

varchar

True

False

20

病害编号

False

DiseaseName

varchar

False

False

20

病害名

False

CropID

varchar

False

False

20

农作物编号

False

GetsickTime

varchar

False

False

50

发病时期

False

GetsickPlace

varchar

False

False

50

发病部位

False

Symptom

varchar

False

False

2000

症状

False

GetsickReason

varchar

False

False

2000

发病原因

False

CureMeasure

varchar

False

False

2000

防治措施

False

DiseaseImage

varchar

False

False

50

病害图

False

State

varchar

False

False

10

是否为可用

表4-2Disease(病害信息表)

主键

名称

字段类型

为空

唯一

长度

默认值

备注

True

ID

int

True

False

1

编号

False

Mingcheng

varchar

False

False

50

名称

False

Lianjie

varchar

False

False

100

链接

False

Logo

varchar

False

False

50

Logo图

表4-3Lianjie(友情链接表)

主键

名称

字段类型

为空

唯一

长度

默认值

备注

True

ID

int

True

False

1

编号

False

UserName

varchar

False

False

10

用户名

False

UserPassword

varchar

False

False

10

密码

表4-4Login(用户表)

 

主键

名称

字段类型

为空

唯一

长度

默认值

备注

True

PID

varchar

True

False

20

编号

False

PestName

varchar

False

False

50

虫害名

False

CropID

varchar

False

False

20

农作物编号

False

WormShape

varchar

False

False

500

虫状

False

InjuryCharacters

varchar

False

False

2000

为害特点

False

LifeHabit

varchar

False

False

500

生活习性

False

CureMeasure

varchar

False

False

2000

防治措施

False

PestImage

varchar

False

False

50

虫害图名

False

State

varchar

False

False

10

是否可用

表4-5Pest(虫害信息表)

主键

名称

字段类型

为空

唯一

长度

默认值

备注

True

RID

int

True

False

1

编号

False

CropID

varchar

False

False

20

农作物编号

False

Class

varchar

False

False

10

类型

False

Rules

varchar

False

False

2000

规则

False

Result

varchar

False

False

50

结论

表4-6Rules(规则表)

主键

名称

字段类型

为空

唯一

长度

默认值

备注

True

ID

int

True

False

1

编号

False

username

varchar

False

False

50

留言人名称

False

PostTime

varchar

False

False

50

留言时间

False

message

varchar

False

False

2000

留言内容

False

isreplied

varchar

False

False

50

有无回复

False

reply

varchar

False

False

2000

回复内容

表4-7gestbook(留言本表)

4.3数据库表关系图

本系统的数据表Crops是关于农作物的基本信息,Disease是病害信息表,Pest是虫害信息表,Rules是规则表,病害表、虫害表、规则表的外键都是农作物信息表的编号(CropID)。

此外还有用户表(Login)、留言板表(gestbook)、友情链接表(Lianjie),它们都是独立的,没有跟其他表有主外键关联。

数据库表的关系图如下:

图4-2数据库表关系图a

图4-3数据库表关系图b

5系统实现

5.1界面及功能说明

5.1.1前台界面模块

系统的首页主要是显示各个模块的部分信息,如显示农作物的名称、图片,病害和虫害名称。

将部分大家都经常访问的网址做成友情链接、小型的天气预报,方便用户使用。

图5-1访问前台界面流程

图5-1系统主界面图

1

2

3

4

5

5.1

5.1.1

5.1.2病虫害诊断界面

本页是用来诊断农作物病虫害的信息的,用户在界面上选择农作物的品种、病害或者虫害,再根据提供的所有事实,从中抽取合适的作为诊断的事实,每个事实间用“,”分隔,最后点击“开始诊断”即可诊断出病/虫害。

图5-2病虫害诊断图

5.2系统后台界面

后台界面:

通过后台可以对系统管理者、农作物、病害信息、虫害信息、友情链接、留言本、规则库等进行管理,如增加、修改、删除等操作。

界面的右上角有一个用session做成的,当哪个管理员登录后台,就显示用户名,下面是进入系统前台界面的超级链接。

图5-3系统后台界面流程图

图5-4后台主页

5.3示例代码

5.3.1类库示例代码

本段类库代码包含了创建数据库连接、打开连接、建立dataset存储记录集合、异常处理、关闭连接。

将数据库连接语句写在类库里面,编程时就用可以直接引用,不用每个地方都得编写数据库连接语句。

本段代码主要在数据集合中,当需要将数据填充到表中,用本段可以快速地的编写。

///

///返回个DataTable

///

///

///DataTable

publicDataTableExecuteTable(stringstrSql){

//创建一个数据库连接

stringconnStr=ConfigurationManager.ConnectionStrings["connStr"].ToString();

SqlConnectionconn=newSqlConnection(connStr);

try

{

conn.Open();//打开连接

SqlDataAdapteradapter=newSqlDataAdapter(strSql,conn);//请求一个记录集合

DataSetds=newDataSet();//建立DataSet对象

adapter.Fill(ds);//把记录集合暂存到DataSet中

DataTabledt=ds.Tables[0];

returndt;

}

catch(Exceptionex)

{

throwex;//异常处理

}

finally

{

conn.Dispose();//关闭连接

}

}

1.

2.

3.

4.

5.

5.1.

5.2.

5.3.

5.3.1.

5.3.2.后台示例代码

本段代码主要用于添加新规则时的重要代码,点击添加按钮时,如果文本框是空白的,会弹出对话框提示“信息不能为空”。

如果规则已经存在,则重新返回本界面。

代码中出现的“helper.ExecuteScalar”在类库代码中已经封装好类了,这样可以方便后期开发,节省时间。

///

///添加新规则

///

///

///

protectedvoidbtnAdd_Click(objectsender,EventArgse)

{

if(txtRule.Text=="")

{

Response.Write("alert('信息不能为空');window.history.back()");

}

else

{

stringstrSql=string.Format(@"selectcount(*)fromRuleswhereRules='{0}'",txtRule.Text);

if(Convert.ToInt32(helper.ExecuteScalar(strSql))>0)

{

Response.Write("alert('规则已存在');window.history.back()");

}

else

{

strSql=string.Format(@"insertintoRules(CropID,Rules)values('{0}','{1}')",DDLName.Text,txtRule.Text);

helper.ExecuteSQL(strSql);

Response.Write("alert('添加新规则成功');location.href='RuleManage.aspx'");

}

}

}

5.3.3.实现农作物病虫害诊断示例代码

本段代码是主要描述点击开始诊断按钮事件的代码,①判断文本框的值是否为空,为空则返回该界面;②将用户输入的事实用逗号分隔开,并加入事实库中;③提取规则库中的的结论部分,放入数组中,然后使用foreach进行循环,根据每个结论进行逆向推理。

④将诊断结果显示出来

publicvoidbtnDiagnose_Click(objectsender,EventArgse)

{

if(txtFact.Text=="")

{

Response.Write("alert('信息不能为空');window.history.back()");

}

else

{

//将输入事实用逗号分隔开,并加入事实库

stringshishi=txtFact.Text;

string[]str=shishi.Split(',');

foreach(stringtempinstr)

{

machine.AddFact(temp);

}

 

//先把病虫害写在数组中。

然后使用foreach进行循环,根据每个病虫害用逆向推理。

machine.AddFact(shishi);

stringstrSql=string.Format(@"selectResultfromRuleswhereCropID='"+DDLCrop.SelectedValue+"'andClass='"+DDLClass.SelectedValue+"'");

DataTabledt=helper.ExecuteTable(strSql);

for(inti=0;i

{

conslu.Add(dt.Rows[i][0].ToString());

}

foreach(stringresultinconslu)

{

boolb=machine.CallMachine(result);

if(true==b)

{

if(DDLClass.SelectedValue=="病害")

{

stringstrSql1=string.Format(@"selectDIDfromDiseasewhereDiseaseName='"+result+"'");

DataTabledt1=helper.ExecuteTable(strSql1);

stringjid=dt1.Rows[0][0].ToString();

Response.Redirect("DiseaseView.aspx?

id="+jid+"");

}

else

{

stringstrSql2=string.Format(@"selectPIDfromPestwherePestName='"+result+"'");

DataTabledt2=helper.ExecuteTable(strSql2);

stringpid=dt2.Rows[0][0].ToString();

Response.Redirect("PestView.aspx?

id="+pid+"");

}

}

}

Response.Write("alert('诊断不成功');window.history.back()");

}

}

 

6.参考文献

[1]肖艳华,下青兰、毕业莉等.吉林省实施“农技110”信息服务模式的探讨.农业网络信息

[2]赵春江等.基于Struts框架的农业专家系统研究.计算机应用研究

[3]杨宝祝等.农业专家系统开发平台的研究现状及发展趋势.中国农学通报

[4]赵春江等.基于Struts框架的农业专家系统研究.计算机应用研究

[5]孙冠英,陈学新,程家安等.基于网络的进出境植物检疫信息管理和辅助决策系统.浙江大学学报(农业与生命科学版)

[6]GiarraianoJ,RileyG(印鉴,刘星成,汤庸,译).专家系统原理与编程[M].北京:

机械工业出版社

[7]林尧瑞,张钹,石纯一等.专家理论与实践[M].清华大学出版社.

[8]尹朝庆,尹皓.人工智能与专家系统.中国水利水电出版社[10]李晓强,崔德光.基于关系数据库的知识库结构设计[J].计算机工程与应用

[9]尹朝庆,尹皓.人工智能与专家系统.中国水利水电出版社

[10]尹朝庆,尹皓.人工智能与专家系统.中国水利水电出版社

[11]张全寿.专家系统建造原理及方法.北京:

中国铁道出版社

[12]王珊数据库系统概论(第四版).高等教育出版社

[13]KailiWatson.C#2005数据库编程经典教程[M].人民邮电出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1