完整版农田监测仪温湿度管理系统毕业设计Word文档格式.docx
《完整版农田监测仪温湿度管理系统毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版农田监测仪温湿度管理系统毕业设计Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
由文件系统管理数据[5]。
同时,文件系统也存在着一些缺点,其中主要的是数据共享性差,冗余度大。
在文件系统中,一个文件基本上对应于一个应用程序,即文件仍然是面向应用的。
当不同的应用程序具有部分相同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据冗余度大,浪费存储空间。
同时,由于相同数据的重复存储、各自管理,容易造成数据的不一致性,给数据的修改和维护带来了困难[6]。
(3)数据库系统阶段
20世纪60年代后期以来,计算机管理的对象规模越来越大,应用范围有越来越广泛,数据量急剧增长,同时多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈,数据库技术边应运而生,出现了同意管理数据的专门软件系统——数据库管理系统。
用数据库系统来管理数据比文件系统具有明显的优点,从文件系统到数据库系统,标志着数据库管理技术的飞跃。
3开发环境
本数据局管理系统采用,微软公司的VisualBasic6.0是Windows应用管理程序开发的良好工具,是现在最多的、简单容易学会的面向对象的良好开发工具。
VisualBasic6.0给我们提供了大量实用控件,这些控件可有助于我们设计界面和实现所需功能,减少工作人员的工作量,简化了设计界面的过程,并且有效的提高了管理程序的实用效率和可靠性。
因此,实现数据管理系统开发,VB是一个相对较好的选。
MicrosoftSQLServer2005是Microsoft公司推出的一个关系数据库管理系统,它提供了完整的数据库创建、开发、设计和管理功能,是目前应用最广泛的数据库系统之一。
在SQLServer2000的基础上历时五年,Microsoft公司隆重推出MicrosoftSQLServer2005这是一个化时代产品,对SQLServer进行了重大变革,使其成为数据管理系统开发的良好选择。
3.1VisualBasic6.0的优点
(1)可视化
Visualbasic是可视化的程序设计语言,开发人员只需要按照设计要求对屏幕进行布局,用集成开发环境来直接拖和画出各个菜单、按钮、滚动条、窗口等不同类型的对象。
(2)面向对象
在visualbasic中,窗体及控件都称为对象,有这些对象构成了用户界面,visualbasic是面向对象的程序设计语言,它是将代码和数据结合在每个对象中,用户只需要了解每个对象能完成什么任务,不必知道对象是如何工作的,而程序设计人员只要编写实现程序功能的那部分代码,这样大大提高了程序设计的效率,但是visualbasic里面没有多态等面向对象的特性,所以有人称visualbasic是准面向对象程序设计语言[11]。
(3)事件驱动
Visualbasic通过事件来执行对象的操作,一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应,而各个事件之间却不一定有联系,这样的应用程序代码较短,使程序既易于编写又易于维护。
(4)沿用结构化的程序设计的思想
visualbasic具有丰富的数据类型,众多的函数,并采用了结构化的程序设计方法,简单易学。
(5)易学易用的集成开发环境
Visualbasic提供了易学易用的集成开发环境,在该开发环境中,用户可设计用户界面,编写代码,调试程序,直至把应用程序编译成可执行文件使其直接在windows环境下运行
(6)Visualbasic支持多种数据库的访问
采用了对象的链接与嵌入(OLE,Objectlinkingandembedding)技术可以很方便的开发出集声音、图像、动画、子处理、web等对象于一体的应用程序。
3.2SQLSEVER的特点
SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer2005不仅可以有效地执行大规模联机事务处理,而且可以完成数据仓库和电子商务应用等许多具有挑战性的工作[2]。
3.3sql语句介绍
SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的接口。
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句[7]。
结构化查询语言(StructuredQueryLanguage)最早是圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种结构化查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。
如今无论是像Oracle、Sybase、DB2、Informix、SQLServer这些大型的数据库管理系统,还是像VisualFoxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。
美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。
ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。
ANSI同时也是ISO和InternationalElectrotechnicalCommission(IEC)的成员之一。
ANSI发布与国际标准组织相应的美国标准。
1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。
ANSI随之发布的相应标准是ANSISQL-92。
ANSISQL-92有时被称为ANSISQL。
尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循ANSISQL标准。
SQLServer使用ANSISQL-92的扩展集,称为T-SQL,其遵循ANSI制定的SQL-92标准[7]。
SQL语言包含3个部分:
数据定义语言DataDefinitionLanguage(DDL),定义:
definition/例如:
CREATE、DROP、ALTER等语句。
数据操作语言DataManipulationLanguage(DML),操作:
make/例如:
INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
数据控制语言DataControllingLanguage(DCL),控制:
control/例如:
GRANT、REVOKE、COMMIT、ROLLBACK等语句。
SQL语言包括三种主要程序设计语言类别的语句:
数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
4系统开发
4.1系统总体分析与设计
此温湿度管理系统的功能是实现对农田监测仪测量的数据信息化、自动化、简便化管理。
管理人员将测得数据输入数据管理系统以实现对农田一定坐标上的温度湿度数据的查询、输入、修改,在线分析等功能。
其主要功能为:
(1)能够实现温度湿度等数据的在线录入功能。
(2)能够实现按温湿度查询所需数据的功能.。
(3)能够实现按温湿度查询时当场分析功能。
(4)能够随时根据需求修改数据库数据功能。
4.2数据库及数据表的建立
数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;
数据的存储独立于使用它的程序;
对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。
当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
数据库系统是以数据库应用为基础的计算机系统,可以有组织和动态的存储大量相关数据,提供数据处理和信息资源共享的便利手段。
数据库可自行建立,数据库中可以根据自己要求建立所需的数据表,设置好字段值,数据类型,数据长度,是否作为主键或者外键,备注,还有数据是否可以为空,这样一张数据表就建立好了。
创建数据库
CREATDATABASEzhp
ON
(NAME=‘zhp’,
FILENAME=N’F:
\zhp.mdf’,
SIZE=3MB,
FILEGROWGH=1MB)
LOGON
(NAME=’zhp_log’,
FILENAME=N‘F:
\zhp_log.ldf’,
SIZE=3MB
FILEGROWTH=1MB)
GO
此操作用于创建一个数据库,其名称为zhp,同时创建一个日志文件其名称为zhp_log。
数据库以及数据日志初始大小都为3兆,增长量都为1兆。
数据库的创建也可以用编辑器来实现,比较适合新手操作,简单易学。
创建数据表
USEzhp
CREATETABLEws(
[wd][float](10)NOTNULL,
[shd][float](10)NOTNULL,
[x][float](10)NOTNULL,
[y][float](10)NOTNULL,
[z][float](10)NOTNULL,
[rq][date]NOTNULL
)ON[PRIMARY]
此代码用于创建一个温湿度数据表,表的具体参数如表所示:
表1:
数据表参数表
字段名称
数据类型
长度
主键\外键
约束
备注
wd
float
10
无
温度
shd
湿度
x
X坐标
y
Y坐标
z
Z坐标
rq
date
日期
除了用编程的方法创建数据库和数据表以外还可以用编辑器来创建,这种方法比较简单,也比较易学,很适合初学者。
4.3界面及部分代码功能介绍
(1)欢迎界面
界面代码:
PrivateSubCommand1_Click()
Me.Hide
xz.Show
EndSub
点击此按钮以进入下级界面,即选择操作界面。
PrivateSubCommand2_Click()
UnloadMe
点击此按钮直接退出温湿度管理系统。
(2)主界面
选择界面代码:
PrivateSubForm_Load()
Timer1.Enabled=True‘给TIMER控件赋值。
Label1.AutoSize=True‘将lable大小设置符合字体大小。
Timer1.Interval=100‘设置时钟为100毫秒。
PrivateSubTimer1_Timer()
Label1.MoveIIf(Label1.Left<
=Me.ScaleLeft-Label1.Width,Me.ScaleWidth,Label1.Left-100)
此界面有一行字“欢迎使用”可随时间在界面上闪烁移动,他是通过用一个TIMER控件来实现的。
TIMER有两个属性,第一个属性为:
ENABLED它的值有两个分别为TURE或FALSE当它的值TURE时控件TIMER开始工作,相反则停止工作;
第二个属性为:
Interval它是用来控制TIMER多长时间来工作一次的,通常以毫秒为单位。
首先进入界面时,直接赋值enabled为:
ture,interval为:
100。
然后定义时钟里面的事件,即先判断Label1.Left是否小于等于Me.ScaleLeft-Label1.Width如果成立那么lable1.move=Me.ScaleWidth;
如果不成立那么lable1.move=Label1.Left–100。
由于第一个条件显然不成立所以lable1一直向左移动于是出现了一直向左移动的效果。
PrivateSub查询_Click()
chx.Show
此按钮用于调用查询功能界面。
PrivateSub分析_Click()
fx.Show
此按钮用于调用分析功能界面。
PrivateSub录入_Click()
lr.Show
此按钮用于调用手动录入功能界面。
PrivateSub修改_Click()
xg.Show
此按钮用于调用修改功能界面。
选择界面主要功能不多主要负责对后面,数据录入、数据查询、数据修改、数据实时分析等界面的调用,可以说作为一个衬托做作用,用于美化界面。
(3)录入界面
界面介绍:
此界面主要实现的功能是手动录入功能,通过采用visualbasic6.0中一些控件来实现与数据库的连接,以及对数据库的操作。
这些功能是如何实现的?
我们在下面代码里做详细介绍。
Text6.Text=Date
Text1.SetFocus
Adodc1.Recordset.AddNew
MsgBox"
ok"
vbExclamation
此按钮为添加按钮,其功能是手动将已知的数据,通过此界面输入到sqlsever数据库中,这里我们用到了两个控件。
第一个ADO控件如图所示:
在设计之前先在工具箱里加入ADO控件。
在工具箱上单击鼠标右键,在弹出的快捷菜单中选择【部件】命令,在弹出的对话框中选择ADO控件,然后单击确定按钮。
接下来我们重点介绍ADO控件的属性。
通过设置一些属性ADO控件能够实现VB与sqlsever连接,并能对数据库中的数据进行操作,首先设置它的连接属性connectionstring属性,在connectionstring属性中点击后面按钮出现如图6所示对话
框,首先选择选项卡里面的“通用”选项的“使用连接字符串(C)”生成按钮,出现出现如下对话框如图8所示“选择您希望连接的数据”,由于我们这里使用的是SQLSEVER2005所以我们选择“microsoftOLEDBproviderforsqlsever”方式,选中它并单击下一步,出现如图所示对话框,此界面用于填写将VB连接到SQLSEVER的主要信息,首先在“选择或输入服务器的名称”一栏中点击下拉菜单,选择本机上的SQLSEVER服务器体验版本。
再在“输入登陆服务器信息”一栏中选择“使用windowsnt集成安全设置”然后在“在服务器上选择数据库”一栏中选择我们自己建立起来的数据库“zhp”完成后单击测试连接如果连接成功就会弹出如图7所示对话框。
这样我们就成功的把VB与SQLSEVER连接起来了,单击确定电脑就自动生成了连接字符串“Provider=SQLOLEDB.1;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
InitialCatalog=zhp;
DataSource=ACER-PC\SQLEXPRESS”
然后右击ADO控件选择OLEDB属性出现如图所示对话框在数据源选项卡中选择本地数据库
“ACER-PC\SQLEXPRESS”中的表“ws”。
实现了VB与SQLSEVER的链接下一步就是如何在VB界面上显示我们在选择的数据。
我们通过引用一个DATAGRID控件来实现,此控件如图所示:
我们通过用DATAGRID与ADO控件的链接来实现在VB界面上显示我们想要的数据,这一功能通过设置DATAGRID的一些属性来实现,第一个属性为:
datasource设置一属性为ADO控件的纪录源,然后他就能显示数据库温湿度表中的数据。
然后设置六个文本框的datasource属性为addoc1,datafield属性分别为wd,shdx,y,z,rq,再通过上面的编程节能直接从文本框中输入数据了,十分便捷。
初始化按钮
PrivateSubCommand4_Click()
IfText1.Text="
"
Then
无需初始化"
Else
初始化完成"
EndIf
功能介绍:
进入录入界面后由于数据表中的数据显示的不是最后一行,所以我们不能直接添加数据,需要手动在DATAGRID控件中调整到最后,为了方便管理人员按操作,我增加了一个功能按钮,点击后直接数据指针自动到达最后一行数据的下一行,从而方便实现手动录入。
(4)查询界面
温度功能查询代码与分析:
DimstrqueryAsString‘定义一个字符串。
IfOption1.Value=TrueThen‘判断Option1是否被选中。
IfTrim(Text1.Text)="
Then‘判断条件文本框是否为空。
请输入查询条件"
vbExclamation‘提示管理人员输入查询条件。
strquery="
select*fromwswherewdbetween'
&
Text1.Text&
"
'
and'
Text2.Text&
‘sql代码,即要在DATAGRID中现实的结果集,此代码主要意思是:
从温湿度表中选择温度大于第一个文本框中并且小于第二个文本框中数据的值。
Adodc1.RecordSource=strquery‘执行sql语句。
Adodc1.Refresh
Text1.Text="
‘初始化文本框
Text2.Text="
‘初始化文本框,
IfOption2.Value=TrueThen‘判断Option2是否被选中。
IfTrim(Text3.Text)="
Then‘判断text3是否为空。
vbExclamation‘弹出对话框提醒选择条件。
select*fromwswherewd>
="
Text3.Text&
‘定义sql语句,本语句的意思是:
从温湿度表中选择所有字段,并且温度大于text3中的值。
Adodc1.RecordSource=strquery‘将记录源定义为刚才sql语句中选择的内容。
Text3.Text="
‘文本框初始化。
IfOption3.Value=TrueThen‘判断Option2是否被选中。
IfTrim(Text4.Text)="
Then‘判断Text4是否为空。
vbExclamation‘提醒管理人员输入查询条件。
select*fromwswherewd<
Text4.Text&
‘定义sql语句,此语句功能是:
从温湿度表中选择温度小于等于Text4中值的数据。
Adodc1.RecordSource=strquery‘执行sql语句,并将其结果赋值给adodc1。
Text4.Text="
‘初始化文本框。
这段程序主要用于实现系统的温度查询功能,首先跟录入功能一样也要采用两个控件,即ADO控件和DATAGRID控件,其中ADO控件中的连接属性connectionstring与录入界面相同,但是其纪录源为空,因为我们要实现的是让DATAGRID控件显示我们在温湿度表中选中的一部分数据,所以我们只能在程序中去定义之一属性,即我们编写的sql语句。
DATAGRID控件的属性设置基本与录入界面相同,其大小、颜色、字体,可以根据个人爱好自行设置。
除了温度查询功能外还可以进行按湿度、按日期查询,控件的属性基本与温度查询相同,sql语句略有不同,详情参考论文后附的源程序。
(5)修改界面
修改界面的功能是:
实现对录入数据库中的数据按需求进行修改、删除,以及修改后的保存功能。
其代码以及代码分析如下所示:
IfAdodc1.Recordset.BOFAndAdodc1.Recordset.EOFThen‘判断数据指针在表中的位置是否符合要求。
表中已无数据,请输入数据"
vbExclamation‘文本框提醒“表中已无数据,请输入数据”
Adodc1.Recordset.MoveNext‘如果指针符合要求,指针自动向下移动一位。
IfAdodc1.Re