农业专家系统.docx
- 文档编号:6463747
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:23
- 大小:687.43KB
农业专家系统.docx
《农业专家系统.docx》由会员分享,可在线阅读,更多相关《农业专家系统.docx(23页珍藏版)》请在冰豆网上搜索。
农业专家系统
农业专家信息诊断系统
需求分析说明书
版本:
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
///
///
///
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("
}
else
{
stringstrSql=string.Format(@"selectcount(*)fromRuleswhereRules='{0}'",txtRule.Text);
if(Convert.ToInt32(helper.ExecuteScalar(strSql))>0)
{
Response.Write("
}
else
{
strSql=string.Format(@"insertintoRules(CropID,Rules)values('{0}','{1}')",DDLName.Text,txtRule.Text);
helper.ExecuteSQL(strSql);
Response.Write("
}
}
}
5.3.3.实现农作物病虫害诊断示例代码
本段代码是主要描述点击开始诊断按钮事件的代码,①判断文本框的值是否为空,为空则返回该界面;②将用户输入的事实用逗号分隔开,并加入事实库中;③提取规则库中的的结论部分,放入数组中,然后使用foreach进行循环,根据每个结论进行逆向推理。
④将诊断结果显示出来
publicvoidbtnDiagnose_Click(objectsender,EventArgse)
{
if(txtFact.Text=="")
{
Response.Write("
}
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("
}
}
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].人民邮电出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 农业 专家系统