1、摘 要本文论述了集成农作物种植理论和实用技术、远程农作物病虫害诊断专家系统的构建和实现。在比较国内外农业专家系统构思的基础上,论证了本系统实施的方案,实现了农作物病虫害诊断专家系统的网络化,扩大了农作物病虫害诊断专家系统应用的空间范围。文中主要以病害诊断为例着重介绍了规则库的建立、推理机的设计。论文前半部分首先对农作物病虫害诊断专家系统研究的背景、课题的研究内容、农业专家系统在国内外的研究、专家系统概况作了较全面的介绍和阐述,说明了本课题的研究目的和意义,接着对本课题专家系统的核心部分知识表示和推理机的设计进行了阐述。论文后半部分是对于专家系统的总体设计、数据库设计以及界面功能进行了详细论述,
2、并用其设计专家系统开发平台的框架模型。关键词:农业专家系统,推理机,病虫害AbstractThis paper discusses the structure and achievement of the theory of integrated crop planting, practical technology and the expert system of remote crop diseases and insect pests diagnosis. Contrast of the domestic and foreign agricultural expert system co
3、nception, it demonstrates the system of the implementation of the scheme that realizing the network of the expert system of remote crop diseases and insect pests diagnosis and enlarging the spatial dimension.It introduces the establishment of rule-base and the design of the inference engine which ta
4、kes disease screening as example.The preceding half part of thesis stresses the background and content of expert system of remote crop diseases and insect pests diagnosis, also states of research both at home and broad and general situation of expert system. Then introduce the main part that is the
5、design of the inference engine.The last part of the thesis analyzes the overall design of expert system, base design and Interface and Function in order to apply to the model.Key words:Agricultural expert system,inference engine,diseases and pests目录1、绪论11.1课题的研究的背景和意义11.2课题的国内外研究现状21.3课题的主要研究内容31.4论
6、文的组织结构32、核心机制研究42.1专家系统的特点42.2.专家系统的结构42.3 知识库构建52.3.1 知识获取62.3.2知识表示72.3.3规则示例82.4推理机的设计92.4.1推理机的算法设计113、系统总体设计分析123.1需求分析123.1.1用户需求分析123.1.2初步设计分析133.2系统功能需求分析143.2.1系统功能层次模块图143.2.2 系统功能需求分析143.3系统性能需求分析163.3.1灵活性163.3.1时间特性要求164、数据库总体设计164.1数据库E-R图164.2数据表的详细设计174.3数据库表关系图215、系统实现235.1界面及功能说明2
7、35.1.1前台界面模块235.2.2病虫害诊断界面245.2.3系统后台界面255.3 示例代码275.3.1 类库示例代码275.3.2 后台示例代码285.3.3实现农作物病虫害诊断示例代码296、总结与展望316.1 总结316.2 展望31参考文献33致 谢341、绪论中国是一个农业大国,种植的农作物种类很多,农作物病虫害的诊断对农作物的产量提高有着现实意义1。农作物病虫害诊断的实质是一个故障诊断问题,但是与一般的设备故障诊断相比,由于农作物具有生命特征,其病虫害特征表现比一般设备复杂,难以用确定性、统计性或传统的方法对它进行直接综合研究。在现阶段水平上,利用计算机技术,结合多学科定
8、性定量整体结合法是解决问题的可行方法2。专家系统是一个具有大量的专业知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题,农业专家系统是专家系统在农业领域的应用3。农作物病虫害诊断是农作物种植过程中非常关键的环节,本课题的研究就是把农业专家系统的理论、技术和研究方法应用到农作物病虫害的诊断中去,实现农作物病虫害的自动诊断。本章主要论述课题的背景、目的及意义、重点与难点分析、主要研究内容。并说明论文的组织结构。1.1课题的研究的背景和意义21世纪,信息和知识已成为经济和社会发展的基
9、本要素。信息技术的高速发展,与世界通讯基础设施的迅速完善,全面推动了技术、产业、经济、社会的发展,同时也引发了传统的农业技术思想、观念的变革和以知识为基础的农业科学技术与农产业技术的革命,并为传统农业的改造、实现农业的高速可持续发展提供了良好机遇。农业信息化是农业现代化的重要体现和标志,是从传统农业迈向现代化农业不可跳越的历史过程。随着信息的迅猛发展,农业信息化将是克服传统农业弱势的有力武器,而农业专家系统必将是其中最重要的推动力量。农业专家系统就是把人工智能的专家系统技术应用于农业领域的一项新技术;是模拟人类推理过程,集合农业领域知识、农业专家经验、实验数据、及数学模型等,采用适合的知识载体
10、,为农民提供咨询服务、科学种植、科学用药等指导,不仅能保存、传播各类农业信息和知识,而且能综合各种单项农业技术,实现高层次的农业技术集成。从1990年起,国家科技部等部门把“网络化实时农业病虫害远程诊断模型及交互式平台关键技术的研究”列入了国家863计划的重点课题,给予了重点支持。在全国开展了针对农业智能化农业专家系统、农业模拟模型及使用农业信息管理系统等方面的研究与推广应用工作。农作物病虫害种类较多,对其进行分类和鉴定要求农作物工作者必须具备牢固的农作物保护基础知识和丰富的实践经验,仅仅依据其危害症状和粗略的识别就进行防治很难达到理想的效果;如果对要对病虫害进行准确鉴定,则需要查询大量的资料
11、,但是大部分农业技术人员无法掌握如此多的病害资料,农作物工作者人员有限,不能及时满足农民的需求,对农作物病虫害作出正确诊断及防治措施。农作物的种类多,有粮食作物、经济作物、工业原料作物等,农作物的产量在国民经济中占有非常重要的地位,研究农作物病虫害诊断系统,对农作物的产量提高有着非常重要的意义4。如果有一套具有专家的知识和经验的专家诊断系统,对农作物病虫害进行科学诊断,并给予有效的防治措施,使每位农民都能及时得到专家指导的信息,那么就可以解决农作物生产中病虫害防治技术不到位的问题,使农业专家的知识和经验得到推广和应用,农作物生产水平将会提高一大步,这正是本课题的研究目的,即应用农业专家系统原理
12、和技术,研究农作物病虫害的诊断,是农业专家的知识和经验得到广泛的应用,这也是本课题的创新之处。1.2课题的国内外研究现状农作物病虫害诊断专家系统的研究起源于1965年E.A.Feigenbaum等所开发的DENDRAL5(一个推断化学分子结构的计算机系统)。经过接近50年的发展,专家系统技术由刚发展时不成熟阶段逐渐走向成熟阶段,也迅速拓展了它的应用范围,例化学工程、地质勘探、医疗诊断、金融决策、农业以及军事等领域。专家系统在农作物病虫害诊断方面,在70年代时,专家系统的研究开始应用于农作物病虫害的诊断,如1978年美国伊利诺斯大学开发的大豆病虫害诊断系统PLANT/ds以及1983年日本千叶大
13、学研制的番茄病虫害诊断专家系统MTCCS等。虽然研究了这么多的农作物病虫害诊断专家系统,但是真正实用的寥寥无几。比如在1990年到2001年的CAB数据库 中,以pest diagnosis为关键词检索,仅检索到十几篇。较为成熟产品中最具有代表性的是澳大利亚昆上兰大学、国际水稻研究以及浙江大学植保系(程家安等)联合开发的用于水稻病虫害综合治理的病虫害诊断系统(RiceIPM),这个系统的内容包括了病虫害的危害特点、信息、识别特征以及防止措施防范等。在国内,1997-1999年,浙江大学植保系与澳大利亚昆士兰大学联合开发的农作物检疫决策系统6(QPM),该系统由知识库、LucID子系统包括Pla
14、yer和Builder两个子系统,它以检查表方式进行分类、鉴定。QPM系统对每个检疫对象的知识包括分类地位、图文信息、侵染和传播途径、传播途径、形态描述、为害性,生物学特性、检验方法以及防止措施、地域分布图等。农业专家系统技术应用最早的是农作物病虫害诊断系统,也是最为活跃的领域,有着良好的基础和发展前景。已经在农作物病虫害综合管理中发挥了重要的辅助决策作用有:蒋平安等的新疆棉花病虫害管理专家系统,庄铁成等的大豆病虫害诊断专家系统,于艳的黑龙江省水稻病虫害诊断专家系统,陈恺等的安徽水稻病虫害诊断专家系统等。1.3课题的主要研究内容本个系统的主要研究的内容是用来解决专家系统中的农作物病虫害诊断系统
15、的构建以及关键技术。对病虫害的发病和症状特点进行分析,应用农业专家系统理论和专家推理进行农作物病虫害诊断,主要从以下方面展开了研究:(1)通过咨询专家以及有经验的农民,收集和整理农作物病虫害的发病和症状特点,对这些特征用规则库表示,来推理诊断农作物病虫害,并对诊断出的结果推荐相应的防治措施。(2)结合农作物生长的实际情况和病虫害的发病和症状特点,总结出一种产生式和数据库技术相结合的基于数据库的产生式知识表示方法。(3)研究将已经收集到的有关农作物病虫害的信息以及推理机在开发平台上设计与实现。1.4论文的组织结构本论文的组织结构如下:第一章:研究课题的背景和意义,对课题的国内外研究现状,课题研究
16、的主要内容进行概述第二章:对课题的核心机制进行研究。第三章:讲述了系统总体设计分析。第四章:讲述了系统的数据库设计,给出数据库E-R图。第五章:讲述了系统实现设计,对界面的功能进行介绍。第六章:结束语,总结全文以及对未来的期望。2、核心机制研究 专家系统是人工智能应用研究方面的一个重要分支,专家系统的开发在70年代中期取得成功,专家系统在80年代在全世界得到迅速发展和广泛应用。就像费根鲍姆(专家系统的先驱)所说的:专家系统的力量是从它处理的知识中产生的,而不是从某种形式主义及其使用的参考模式中产生的7。这正体现了一句名言:知识就是力量。计算机程序最能体现专家系统的实质,它能够用人类专家的水平完
17、成某一专业领域中最困难的任务。在分析设计专家系统时,设计师的任务就是使计算机尽可能模拟人类专家运用他们所知道的知识和经验来解决实际问题的方法、技巧和步骤。2.1专家系统的特点专家系统具有以下特点:(1)启发性专家系统能运用专家的知识与经验进行推理,对问题进行判断和决策。(2)透明性专家系统能够解释推理过程和回答用户提出的问题,用户无需了解推理过程,就能从专家系统获得问题的结论,提高对专家系统的信赖感。如一个农作物病虫害专家诊断某种农作物患有青虫,而且必须使用某种杀虫剂治疗,就像一位农业专家对农民详细解释农作物病情,并给予建议防治措施一样。专家系统是如何实现这些问题的解释对用户也是透明的。(3)
18、灵活性专家系统能够不断地获取新的知识,修改原有的知识。不断更新。因为这一特点,使得专家系统具有十分广泛的应用领域。2.2.专家系统的结构选择什么结构最为合适,要根据应用环境和所要做的任务来确定。选择恰当与否的系统结构,与专家系统的适用性和效率紧密相连。专家系统的基本结构8包括知识库、推理机、全局数据库、人机接口、解释器这五个部分(如图2-1)。它们的功能如下:图2-1 专家系统结构图(1)知识库知识库是用来存储领域专家的知识。要建立知识库之前,要先从专家那里获取知识和知识用计算机能理解的形式表示 。(2)推理机从知识库中选择匹配的规则,来对问题进行推理、分析和求解。(3)全局数据库全局数据库(
19、Global Database)用于存储问题求解的信息,推理过程和求解结果的数据。(4)人机接口人机接口(Interface)是系统与用户进行对话的界面。用户通过人机接口输入数据、提出问题和得到推理结果及系统给出解释。系统通过人机接口来规定用户要回答系统提出的问题。(5)解释器解释器用于对求解过程进行解释,做到让用户相信对问题的求解是正确的。2.3 知识库构建知识库的构建是专家系统的核心问题之一,所谓“知识库”包括两个方面的问题,一是从什么地方获取知识,二是用什么方法来组织、表示知识。知识库主要用来存储专家的知识,知识库中的知识为推理机提供问题求解的知识。2.3.1 知识获取知识获取是一个与领
20、域专家、知识工程师以及专家系统自身都密切相关的复杂问题,由于各方面的原因,至今仍然是一件相当困难的工作,被公认是专家系统建造中的一个“瓶颈”问题9。知识获取是指将从专家和资料中那里获得的知识,按照合适的知识表示方法将它们存入知识库中。知识获取的目的是为专家系统获取知识,建立健全、完善、有效的知识库,做到可以对知识库进行更行与修改,维护知识库的完善。知识的获取有两类:被动式或主动式。被动式知识获取是工程师用知识编辑器,把收集到的知识整理好,以正确的形式交给知识处理系统。由于专家掌握的知识和能存储于计算机的知识形式之间存在很大的差异,所以工程师与专家要多次交换意见、密码配合才能做到使知识库正确的表
21、达专家知识。主动式知识获取是知识处理系统根据专家自己的知识和经验,用归纳工具直接自动获取或产生知识,再存入知识库。这种方法要求专家按照对话界面的要求输入知识。知识获取需要完成的工作如图2-2所示:图2-2 知识获取工作图2.3.2知识表示合适的知识表示方法能够使问题更容易解决,是一个专家系统成功的关键。到现在比较经常使用的知识表示方法有:框架表示法、一阶谓词逻辑表示法、语义网络表示法、产生式表示法、面向对象表示法。农作物病虫害诊断系统是农业专家系统中最常见的,每一种农作物病虫害都有它特定的病状,而且多种病虫害有共同的一条病状,所以病虫害与病状之间形成了一个复杂的网状关系。本系统中将农作物病虫害
22、的所有症状都进行细化分类和归纳总结,形成知识库,存放入数据库的表中。将知识存储在数据库中有利于知识库后期的维护,可以及时对规则进行增删改查,使系统拥有完善、准确的知识库。知识存入数据库的流程图如2-3所示:图2-3存储知识流程图结合农作物病虫害的症状特点,采用目前比较常使用的产生式规则表示法。产生式规则表示法通常用于表示具有因果关系的知识,它的基本形似是10:IFTHEN其中是产生式的前提条件,用于指出该产生式是否为可用的条件;是产生式的后件,是一组结论获操作。用于指出当条件满足时,可用得出的结论或应该执行的操作。多个产生式在一起,可以互相利用,这个产生式的结论可以作为另一个产生式的条件使用。
23、产生式由规则库、综合数据库和推理机组成。将收集到的知识整理成一条条有前提条件和结论的规则,存入综合数据库中,推理机对事实与结论进行匹配推理。产生式表示法主要有以下优点11:自然性产生式表示法用“ifthen”的形式表示知识,这是人们常用的一种表达事物英国关系的知识表示形式,它可以直观、自然、方便地进行推理。这就是在人工智能系统中常用产生式表示法来表示知识的原因。模块性产生式是规则库中最基本的部分,规则库与推理机分开,而且每条规则都有一样的表示形式,这就方便用于增、删、改、查,为规则库模块化处理带来方便。有效性产生式可以把从专家那里收集到的知识用相同的知识表示方法有效地表示。清晰性本系统的产生式
24、的规则中的事实与事实、事实与结论间都用逗号隔开,结论统一放在最后面,这可以清晰的表示规则,还可以保证规则的正确性。2.3.3规则示例例如,在农作物病虫害诊断系统中有这样一些规则:If先部分叶黄化后萎蔫 Then 软腐病 If通光体无毛,叶表面蜡质层,老熟幼虫化成蛹Then 美洲斑潜蝇If白色粉状霉斑,叶片焦枯变脆Then 白粉病If叶黄化萎蔫,根部软化腐烂,外臭溢汁液Then 软腐病If病株矮化,叶脉现黄斑,提早干枯死亡Then 黄化病If斑驳花叶或严重皱缩花叶,植株斑驳或矮化Then 花叶病毒病If贮藏时呈水渍状或灰色霉状物,逐渐烂腐Then 胡萝卜灰霉病If肉质根纵向开裂Then 胡萝卜裂
25、根If根颈部长出白色菌丝,灰白色至黄褐色小菌核Then 胡萝卜白绢病If根系产生褐斑,后期整个肉质根腐烂,病株萎蔫Then 胡萝卜根腐这些规则then前面部分表示前提条件,then后面部分表示结论,当前提条件都满足时,才可以推出结论。规则中的每个事实用逗号隔开存入数据库中,在推理前,先创建事实库,从数据库获取规则,并初始化原始规则。原始规则中前提和结论结合在一起,这就得初始化规则库,使每个用逗号隔开的事实用字符串数组的集合表示。这时就该对规则库中事实进行初始化字典,去除重复值,并对输入的事实进行检查,如果新输入的事实在字典中有存在,则合法写入事实库中,不存在则去除该事实。处理事实流程图如下所示
26、:图2-4 事实处理流程图2.4推理机的设计推理机是专家系统的推理执行部件,它也是专家系统的核心部件之一,推理机制的优越程度关系到整个系统的成败。推理机工作的原理是根据用户输入的事实,从数据库中读取相关数据源,按一定的推理方法和控制策略进行推理,最后将结果返回用户,推理机的工作原理如图2-5所示。图中的动态数据库是存储用户输入的事实,让推理机用输入的事实和知识库中的规则条件进行匹配,从而得出结论;规则库是存储从专家领域那里得出的知识,经过整理的规则;推理控制机是推理机的核心部分,主要职责是将动态数据库中的事实与规则库中的规则进行匹配以得出结论。图2-5 推理机工作原理示意图系统的推理机模型有正
27、向推理、反向推理和双向推理三种典型策略。正向推理是从已知的事实开始,在知识库中找到匹配的事实,构成事实库,再按照某种策略从事实库中选取事实进行推理,并将新事实假如到事实库中,作为下一步推理的已知事实,然后从知识库中选出有效的事实进行推理,反复进行这些过程,直至得到所要的知识。反向推理也叫目标驱动,是本系统采用的推理策略。反向推理的基本思想是:首先选定一个假设目标,然后寻找支持该假设的证据,若所需的证据都能找到,则说明原假设是成立的;若无论如何都找不到所需要的证据,则说明原假设不成立,此时需要另外选定新的假设12。反向推理流程如下图2-6所示。双向推理就是正、反向推理的混合使用。图2-6 反向推
28、理流程图2.4.1推理机的算法设计推理机制的主要部分就是推理方法13。本系 统所用的反向推理,反向推理是正向推理的逆过程,本系统推理的基本实现是:首先假设结论为某一种病虫害的结论为推理网络中的某个顶层节点,放入假设堆栈,然后从规则库中找出其结论部分能与假设相匹配的所有规则,得出一个可用事实库,从可用事实其中选取一条事实验证其前提部分。如果这条规则中的所有前提条件都和用户输入的事实匹配,则这条事实推理成功,在界面上输出结论;如果这条规则中的某个前提条件和用户输入的事实不符,则该推理不成功,继续执行下一条推理。在本系统中的推理过程如图2-4、2-5所示,其中i为待推理事实中的字段序号,j为知识库中
29、的规则序号,I为待推理事实中的记录总数,J为规则库中的规则总数。图2-4 推理过程图a图2-5 推理过程图b整个推理过程就像一个递归搜索过程,在知识库中已经有了较为严格规定的规则,所以推理时只需查找到推理的事实与结论部分相符合的规则,就可以成功推理。3、系统总体设计分析3.1需求分析需求分析是系统开发过程的第一步,需求分析的优劣会影响到系统开发的效率,所以越详细的需求工作越好14。需求分析一般包括了解本系统开发的背景,在信息收集的基础上确定系统开发的可行性,进行业务调查和分析,了解工作流程和用户的功能需求,确定系统开发的总体方案,明确目标系统要达到的目标和系统开发的总体思路及开发所需的时间等。
30、农作物病虫害诊断系统重点是开发专门的应用系统,提高办公自动化程度;开发农作物病虫害诊断系统,实现病虫害诊断电子化管理,促进病虫害信息收集整理的标准化、规范化和系统化;构建农作物病虫害诊断系统,满足广大农民的需求,形成病虫害诊断现代化信息系统。3.1.1用户需求分析本系统适用于各类人员,如农民、农业专家等。不用的用户对系统的需求有所不同。 农民本系统的直接受益方,农民主要是种植农作物,拥有丰富的种植经验,但有些农民十分缺乏对于病虫害的诊断和防治。因此他们需要有一个容易操作的人机界面系统来诊断农作物病虫害,并得到相应的防治信息。如用例图所示:图3-1 农民用例农业专家本系统的农业知识大部分都来自农
31、业专家提供的,他们拥有丰富的农作物病虫害诊断经验,他们对系统的构建起到监督作用,因此他们需要构建出来的系统是一个具有完善、准确的系统来诊断农作物病虫害。图3-2 农业专家用例3.1.2初步设计分析系统的目标是构建一个能够准确诊断农作物病虫害及提供相应防治方法的专家系统,使用户能够及时的通过专家系统的人机界面诊断农作物病虫害,并做治疗处理。本系统提供准确、完整的农作物信息,管理员登录到系统后台,在可用的时间内可以对农作物信息进行增删改查。以统一规划、分布实施的思想为指导,遵循的设计原则有:系统性原则、信息集成原则、信息通用原则、面向业务原则、开放性原则、安全性原则、可伸缩性原则、高可靠性原则、易
32、操作性原则、体系结构延展性原则。3.2系统功能需求分析3.2.1系统功能层次模块图图:3-4 系统功能模块图3.2.2 系统功能需求分析本系统主要分为六大功能模块:农作物信息管理、病害信息管理、虫害信息管理、病虫害诊断、在线留言、知识库管理。(1) 农作物信息管理:主要是完成农作物基本信息的一些操作,包括对农作物信息的增加、修改以及查询功能。图3-5 农作物信息管理需求图(2) 病害信息管理:根据不同农作物对应的病害信息进行添加、修改、删除和查询。图3-6 病害信息管理需求图(3) 虫害信息管理:与不同农作物对应的虫体的形状、为害特点进行虫害信息的添加、修改、删除和查询。图3-7 虫害信息管理
33、需求图(4) 病虫害诊断:主要是通过输入的事实,完成病虫害的诊断。图3-8 病虫害诊断需求图(5) 在线留言:访问者可以在线留言,管理者进入后台,可以恢复留言、删除留言。图3-9 在线留言需求图(6) 知识库管理:主要功能是对规则进行增加、修改、删除。图3-10 知识库管理需求图3.3系统性能需求分析3.3.1灵活性系统应具有较灵活的更新操作,对操作后数据库的内容进行有选择地添加、修改和删除,必要时对数据库系统的部分信息进行初始化。3.3.1时间特性要求说明对于该系统的时间特性要求,如下:响应时间:视网络情况,等待时间不超过5秒;更新处理时间:不超过10秒;数据的转换和传送时间:不超过5秒。4
34、、数据库总体设计数据库设计的设计是指在需求分析的基础上,设计出各个表结构的设计,包括各个表保存的信息、各个表的结构以及各个表之间的关系15。4.1数据库E-R图图4-1为数据库E-R图,图中给出了农作物、农作物病害、农作物虫害、规则等表的E-R图,也根据系统实现的需要,定义这些表所包含的信息。其中农作物病害、农作物虫害、规则表都有一个统一的外键“农作物编号”。一种农作物可以有多条规则,但是一条规则只能对应一种农作物;一种农作物会患多种病害,一种病害也可以对应多种农作物;一个农作物会患有多种虫害,一种虫害也可以在多种农作物上生长。图4-1 数据库E-R图4.2数据表的详细设计本系统的数据库关系模
35、式如下:农作物信息表(农作物编号、农作物名称、类别、描述、状态、图片名称),主键:农作物编号;农作物病害表(病害编号、病害名称、农作物编号、发病时期、发病部位、症状、发病原因、防治措施、病害图、状态),主键:病害编号,外键:农作物编号;留言表(编号、留言人名称、留言时间、留言内容、是否有回复、回复内容)主键:编号;链接表(编号、名称、链接地址、logo图标),主键:编号;用户信息表(编号、用户名、密码)主键:编号;农作物虫害信息表(虫害编号、虫害名称、农作物编号、虫体形状、为害特点、生活习性、防治措施、虫害图、状态)主键:虫害编号,外键:农作物编号;病虫害规则表(编号、农作物编号、类别、规则、
36、结论),主键:编号,外键:农作物编号。根据数据E-R图和关系模式设计数据库,数据库表的详细设计如下表4-1 Crops(农作物信息表)是否主键名称字段类型是否为空是否唯一长度默认值备注TrueCropIDvarcharTrueFalse20农作物编号FalseCropNamevarcharFalseFalse20农作物名称FalseCategoryvarcharFalseFalse30类别FalseDescriptionvarcharFalseFalse2000描述FalseStatevarcharFalseFalse50是否为可用FalseImagevarcharFalseFalse50图片
37、名称表4-2 Disease(病害信息表)是否主键名称字段类型是否为空是否唯一长度默认值备注TrueDIDvarcharTrueFalse20病害编号FalseDiseaseNamevarcharFalseFalse20病害名FalseCropIDvarcharFalseFalse20农作物编号FalseGetsickTimevarcharFalseFalse50发病时期FalseGetsickPlacevarcharFalseFalse50发病部位FalseSymptomvarcharFalseFalse2000症状FalseGetsickReasonvarcharFalseFalse200
38、0发病原因FalseCureMeasurevarcharFalseFalse2000防治措施FalseDiseaseImagevarcharFalseFalse50病害图FalseStatevarcharFalseFalse10是否为可用表4-3 Lianjie(友情链接表)是否主键名称字段类型是否为空是否唯一长度默认值备注TrueIDintTrueFalse1编号FalseMingchengvarcharFalseFalse50名称FalseLianjievarcharFalseFalse100链接FalseLogovarcharFalseFalse50Logo图表4-4 Login(用户表
39、)是否主键名称字段类型是否为空是否唯一长度默认值备注TrueIDintTrueFalse1编号FalseUserNamevarcharFalseFalse10用户名FalseUserPasswordvarcharFalseFalse10密码表4-5 Pest(虫害信息表)是否主键名称字段类型是否为空是否唯一长度默认值备注TruePIDvarcharTrueFalse20编号FalsePestNamevarcharFalseFalse50虫害名FalseCropIDvarcharFalseFalse20农作物编号FalseWormShapevarcharFalseFalse500虫状FalseI
40、njuryCharactersvarcharFalseFalse2000为害特点FalseLifeHabitvarcharFalseFalse500生活习性FalseCureMeasurevarcharFalseFalse2000防治措施FalsePestImagevarcharFalseFalse50虫害图名FalseStatevarcharFalseFalse10是否可用表4-6 Rules(规则表)是否主键名称字段类型是否为空是否唯一长度默认值备注TrueRIDintTrueFalse1编号FalseCropIDvarcharFalseFalse20农作物编号FalseClassvarc
41、harFalseFalse10类型FalseRulesvarcharFalseFalse2000规则FalseResultvarcharFalseFalse50结论表4-7 gestbook(留言本表)是否主键名称字段类型是否为空是否唯一长度默认值备注TrueIDintTrueFalse1编号FalseusernamevarcharFalseFalse50留言人名称FalsePostTimevarcharFalseFalse50留言时间FalsemessagevarcharFalseFalse2000留言内容FalseisrepliedvarcharFalseFalse50有无回复Falser
42、eplyvarcharFalseFalse2000回复内容4.3数据库表关系图本系统的数据表Crops是关于农作物的基本信息,Disease是病害信息表,Pest是虫害信息表,Rules是规则表,病害表、虫害表、规则表的外键都是农作物信息表的编号(CropID)。此外还有用户表(Login)、留言板表(gestbook)、友情链接表(Lianjie),它们都是独立的,没有跟其他表有主外键关联。数据库表的关系图如下:图4-2 数据库表关系图a图4-3 数据库表关系图b5、系统实现5.1界面及功能说明5.1.1前台界面模块本系统的主界面(如图5-2):系统的首页主要是显示各个模块的部分信息,如显示
43、农作物的名称、图片,病害和虫害名称。将部分大家都经常访问的网址做成友情链接、小型的天气预报,方便用户使用。图5-1 访问前台界面流程图5-1 系统主界面图5.2.2病虫害诊断界面本页是用来诊断农作物病虫害的信息的,用户在界面上选择农作物的品种、病害或者虫害,再根据提供的所有事实,从中抽取合适的作为诊断的事实,每个事实间用“,”分隔,最后点击“开始诊断”即可诊断出病/虫害。图5-2病虫害诊断图5.2.3系统后台界面后台界面:通过后台可以对系统管理者、农作物、病害信息、虫害信息、友情链接、留言本、规则库等进行管理,如增加、修改、删除等操作。界面的右上角有一个用session做成的,当哪个管理员登录
44、后台,就显示用户名,下面是进入系统前台界面的超级链接。图5-3 系统后台界面流程图图5-4后台主页5.3 示例代码5.3.1 类库示例代码本段类库代码包含了创建数据库连接、打开连接、建立dataset存储记录集合、异常处理、关闭连接。将数据库连接语句写在类库里面,编程时就可以直接引用,不用每个地方都得编写数据库连接语句。本段代码主要用在数据集合中,当需要将数据填充到表中,用本段可以快速地的编写。/ / 返回个DataTable / / / DataTable public DataTable ExecuteTable(string strSql) /创建一个数据库连接 string connStr = System.Configuration.ConfigurationManager.ConnectionStringsconnStr.ToString(); SqlConnection conn = new SqlConnection(connStr); try