基于vb的瓦斯警报课程设计报告书_第1页
基于vb的瓦斯警报课程设计报告书_第2页
基于vb的瓦斯警报课程设计报告书_第3页
基于vb的瓦斯警报课程设计报告书_第4页
基于vb的瓦斯警报课程设计报告书_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于vb的气体报警监控系统设计摘要计算机技术的发展推动了编程语言的发展,尤其是面向对象编程语言的出现,极大地改进了传统的编程方法。 Visual basic 是一个功能强大的应用程序开发工具,具有可视化界面设计技术和面向对象的编程方法。事件驱动的编程机制。支持动态数据交换(DDE )技术和对象与嵌入式(OLE )技术,支持数据库访问,支持多媒体和网络开发等特性。VB 的中心思想是让 HYPERLINK %20%20%20%20:/baike.baidu%20%20%20%20/view/39175.htm t _blank 程序员使用起来很容易,无论是新手还是专家。 VB 使用的 GUI 系统

2、可以很容易地构建应用程序,但可以开发相当复杂的程序。 VB 程序是基于表单的可视组件排列组合,并添加了代码来指定组件的属性和方法。因为组件中已经定义了一些默认的属性和方法,程序员不用写太多代码就可以完成一个简单的程序。近年来,煤矿事故频发,矿难多与瓦斯浓度高有关。因此,对煤矿瓦斯浓度进行监测,采取必要措施避免矿难,势在必行。气体报警监测系统是基于可视化基础语言的气体浓度监测系统,可有效监测气体浓度并及时报警。从而避免了很多悲剧。因此,气体报警系统具有很强的现实意义。论文主要围绕visual basic语言的架构,介绍了气体监测系统的整体分析与设计,包括用户管理、功能模块分析、数据采集和数据库设

3、计。最后利用数据报表实现报表打印,并进行了详细说明。系统功能的实现主要通过图片和代码的结合来详细说明。关键词:气体监测系统, visual basic,数据库,控制,数据报表目录单选题的含义41.1 选择本题的理由41.2 完成本课题所使用的数据结构和知识点41.2.1数据结构41.2.2知识点4二、系统功能需求分析52.1 本系统主要功能概述52. 2 各模块的组成和功能52.3 运行环境5三种系统设计53.1 设计思维53.2 流程图 . 53.3 数据库设计 . 6四系统的实现 74.1 用户登录74.1.1Form1代码设计及截图74.1.2Form2代码设计及截图94.1.3Form

4、3代码设计及截图104.1.4说明124.2 主要形式144.2.1代码设计和截图144.2.2说明164.3 删除用户174.3.1代码和截图174.3.2说明184.4 修改密码194.4.1代码和截图194.4.2说明204.5 添加新用户204.5.1源码及界面截图204.5.2说明 224.6 动态曲线数据接口224.6.1程序代码和截图224.6.2说明 254.7 报表的显示与打印254.7.1报告显示254.7.2打印报告26总结271.1 选择本题的原因在本次课程设计中,出于种种原因,我选择了气体报警监控系统这个课题。首先,这个话题涉及的知识点非常广泛。除了其他主题一般涉及的

5、数据库知识外,还涉及到一些visual basic绘图和vb中常用控件的知识。我认为这对我的锻炼非常重要。效果会很棒。其次,近年来,瓦斯爆炸事故频发,对人民群众生命财产安全构成极大威胁。可见,该项目具有很强的现实意义。再次,需要一个人独立完成,这对于锻炼独立完成任务的能力也很有帮助。1.2 用于完成本主题的数据结构和知识点。1.2.1 数据结构:通过可视化数据管理器可以进行数据库操作。创建数据库:启动可视化数据管理器,创建数据库,创建数据库表,编辑数据库。1.2.2知识点:访问技术:可以开发关系型数据库,数据库可以汇集各种信息进行查询、存储和检索。数据库(Database)是由一些有意义的、相

6、关的数据(data)组成的。一个数据库包含多条记录(Record),每条记录又由多个字段(Field)组成,不同的字段存储不同的数据。所以数据库的严格定义是相关记录的集合,字段是数据库中最基本的数据项和最小的单位。计算机中用来帮助我们管理数据库的系统称为数据库管理系统(DBMS)。数据库管理系统建立在一个或多个数据库之上,对数据库中的数据进行管理和使用。 Access 的伟大之处在于它可以使用数据表示或自定义表单来收集信息,这些表单提供了一个类似 Excel 的电子表格,可以提供数据库的概览。此外,Access 内容创建自定义报告以打印或输出数据库中的信息。 Access 还提供了一个数据存储

7、库,可用于将数据库文件放置在使用桌面数据库文件的网络文件服务器上,并与其他网络用户共享数据库。如上所述,Access 作为关系数据库开发提供了许多优势,将桌面数据库的便利性与关系数据库的强大功能集于一身。结构化查询语言 SQL:结构化查询语言 (SQL) 是一种用于访问数据库的标准语言。使用 SQL 语言,可以从数据库中获取数据,创建数据库和数据库对象,添加和修改数据,实现复杂的查询功能。 .它是实现本系统的基础。使用Data控件访问数据库:主要使用Data控件和数据绑定控件来编写数据库应用程序。使用ADO控件访问数据库:主要使用ADO控件和数据绑定控件编写数据库应用程序。使用数据报表控件制作

8、报表:主要使用数据报表设计器制作报表用线法画线:用线法用Timer控件画出气体浓度的实时动态曲线。器编辑菜单:使用菜单编辑器设计各种下拉菜单。二、系统功能需求分析2.1 本系统主要功能概述本系统的主要功能包括三个方面:1、制作登录系统,实现用户登录、注销、新用户、删除用户、修改用户密码,实现不同类型用户的不同登录形式。2、使用随机函数模拟气体浓度,同时将气体浓度录入数据库,实现气体浓度曲线的动态显示3. 显示和打印报告。2.2各模块组成及功能Access实现了数据的存储和提取功能,构成了系统的核心部分。该组件用于用户管理和气体浓度监测。 VB庞大的控件和模块为系统提供支持,Data Repor

9、t实现报表的打印,使气体浓度数据更加直观和可打印。2.3 运行环境系统可以在visual basic程序中运行,也可以转换为exe格式,无需安装即可在任何环境下运行。三系统设计3.1 设计思维近年来,燃气事故频发,基于Visual Basic语言可实现对燃气浓度的监测。我的基本思路是: 1.创建一个数据库,预先输入一些用户名和密码,用户分为普通用户和管理员两种。其中,只有管理员可以添加和删除用户,一般用户只能修改自己的密码。然后,在同一个数据库中创建一个气体浓度数据表,输入气体浓度。二、利用随机函数模拟各个串口的气体浓度,利用Timer控件、ADO控件、 Data控件将表格与数据库连接起来,将

10、相关数据输入数据库。三、报表显示与打印。3.2 流程图系统功能设计流程图如图瓦斯报警监控系统瓦斯报警监控系统数据处理用户管理数据库用户删除用户登录新增用户注册用户密码修改数据获取实时曲线的绘制报警随机函数报表的打印报表的制作3.3 数据库设计本课程设计需要以下数据表一张是管理员数据表和普通用户数据表,这两张表用来存放他们的信息和密码。数据结构为表字段名称类型阐明文字_记录管理员(普通用户)密码文字_管理员密码(普通用户)此外,应建立各监测点的气体浓度表,记录各监测点的气体浓度。由于系统中有三个模拟监控点,所以需要建立三个表。它们的数据结构如下字段名称类型阐明时间文字_记录当前时间气体浓度文字_

11、用于记录当前时间的气体浓度实时值系统的实施4.1 用户登录这部分一共涉及三种形式4.1.1Form1 代码设计和截图私有子 Command1_Click()如果 Combo1.Text = 一般用户 那么Form1.隐藏Form2.显示Form2.Text1.SetFocus别的Form1.隐藏Form3.显示Form3.Text1.SetFocus万一结束子私有子 Command2_Click()结尾结束子私有子 Timer1_Timer()如果 Label1.Left + Label1.Width 0 那么Label1.Move Label1.Left - 50别的Label1.Left

12、= Form1.ScaleWidth万一结束子Form1Form1截图4.1.2For m 2代码设计与截图私有子 form_load()Text2.PasswordChar = *结束子私有子 Command1_Click()如果 Text1.Text = 那么MsgBox 不能为空! , vbOKOnly + vbExclamation, 提示Text1.Text = Text2.Text = Text1.SetFocus万一如果 Text2.Text = 那么MsgBox 密码不能为空! , vbOKOnly + vbExclamation, 提示Text1.Text = Text2.T

13、ext = Text1.SetFocus万一Adodc1.RecordSource = select*from normal user where = & Text1.Text & and password = & Text2.Text & Adodc1.Refresh如果 Adodc1.Recordset.EOF = True 那么MsgBox 或者密码错误,请重新输入, vbOKOnly + vbExclamation, 提示Text1.SetFocusText1.Text = Text2.Text = 别的Form2.隐藏Form4.显示Form4.zengjiaxinyonghu.En

14、abled = FalseForm4.shanchuyonghu.Enabled = FalseMe.Text1.Text = Me.Text2.Text = 万一结束子私有子 Command2_Click()Form2.隐藏Form1.显示结束子FForm2截图4.1.3Form 3代码设计和截图私有子 form_load()Text2.PasswordChar = *结束子私有子 Command1_Click()如果 Text1.Text = 那么MsgBox 不能为空! , vbOKOnly + vbExclamation, 提示Text1.Text = Text2.Text = Tex

15、t1.SetFocus别的如果 Text2.Text = 那么MsgBox 密码不能为空! , vbOKOnly + vbExclamation, 提示Text1.Text = Text2.Text = Text1.SetFocus别的Adodc1.RecordSource = select*from admin where = & Text1.Text & and password = & Text2.Text & Adodc1.Refresh如果 Adodc1.Recordset.EOF = True 那么MsgBox 或密码错误,请重新输入, vbOKOnly + vbExclamati

16、on, 提示Text1.SetFocusText1.Text = Text2.Text = 别的Form3.隐藏Form4.显示万一万一万一结束子私有子 Command2_Click()Form3.隐藏Form1.显示结束子FForm3截图4.1.4阐明登录界面由form1、form2、form3三个接口组成,实现用户的登录。通过form1 中设置的ComboBox (组合框) ,用户可以选择自己所属的用户类型,让不同的类型可以通过不同的路径登录。同时,我还在窗体中添加了一个Timer控件来增强标题的动态效果。在form2和form3中,使用了ADO控件,这个控件的主要作用是实现表单与数据库的

17、连接。 A DO 控制的设置步骤如下1、右键单击ADO控件,在弹出的快捷菜单中选择“ADODC属性”选项。2、在弹出的属性页面中,点击“生成”,然后在弹出的“数据连接属性”中选择或输入数据库名称3、点击“测试连接”,如果显示“测试连接成功”,则表示已经成功连接到数据库。在本课程设计中,ADO控制的应用极为广泛。以下表格中涉及的ADO控件的设置方法与此处类似,届时不再赘述。4.2 主要形式通过登录界面完成登录后,进入主窗体( Form4 ) ,然后完成修改密码、添加和注销用户、查看气体浓度实时动态曲线等各项功能。4.2.1代码设计和截图私分查勘剑孔店分布图_Click()我隐藏Form5.显示结

18、束子私有子dayinerhao_Click()我隐藏Form14.显示结束子私人子 dayinsanhao_Click()我隐藏Form15.显示结束子Private Sub dayinyihao_Click()Form4.隐藏Form10.显示结束子私有子 erhao_Click()Form4.隐藏Form12.显示结束子私有子 fanhui_Click()我隐藏Form1.显示结束子Private Sub liaojiebenxitong_Click()我隐藏Form11.显示结束子私有子 sanhao_Click()我隐藏Form13.显示结束子私有子 shanchuyonghu_Cli

19、ck()我隐藏Form6.显示结束子私有子 tongshi_Click()我隐藏Form16.显示结束子私有子 xiugaimima_Click()Form4.隐藏Form7.显示结束子私有子 yihao_Click()Form4.隐藏Form8.显示结束子私有子 zengjiaxinyonghu_Click()Form4.隐藏Form9.显示结束子FForm4截图4.2.2阐明此表单使用菜单编辑器来编辑下拉菜单。下拉菜单的好处是可以使操作界面整洁美观,程序的应用和操作变得非常直观方便。每个菜单项的属性设置如下表所示。标题姓名缩写评论用户管理雍湖馆里没有任何添加新用户曾家新永湖删除用户永湖ch

20、ange PasswordxiugaimimaCheckcakanMonitoring point No. 1Yihao _Monitoring point No. 2E rhaoMonitoring point No. 3sanhaoView at the same timetongshiprint reportdayinbaobiaoPrint monitoring point No. 1Dayinyihao _print monitoring point 2Dayinerhao _Print Monitoring Point No. 3Dayinsanhao _learnliaojie了

21、解这个系统聊结本喜通查看监控点分布图茶坎剑孔店粉布图返回登录界面繁会4.3 删除用户4.3.1代码和截图私有子 form_load()Text3.PasswordChar = *结束子私有子 Command1_Click()如果 Text1.Text = 那么MsgBox 请输入您要删除的用户, vbOKOnly + vbInformation, 提示Text1.SetFocus万一如果 Text2.Text = 那么MsgBox 请输入您的, vbOKOnly + vbInformation, 提示Text2.SetFocus万一如果 Text3.Text = 那么MsgBox 请输入密码,

22、 vbOKOnly + vbInformation, 提示Text3.SetFocus万一Data1.RecordSource = select*from admin where = & Text2.Text & and password = & Text3.Text & 数据1.刷新如果 Data1.Recordset.EOF = True 那么MsgBox 您或您的密码不正确,请重新输入, vbOKOnly + vbExclamation, 提示Text2.SetFocusText3.Text = Text2.Text = 别的Data2.RecordSource = select*fro

23、m general user where = & Text1.Text & 数据2.刷新如果 Data2.Recordset.EOF = True 那么MsgBox 要删除的用户不存在,请重试, vbOKOnly + vbExclamation, 提示别的暗淡为整数m = MsgBox(用户删除后无法恢复,确定要删除吗? , 4 + 32 + 256, 提示)如果 m = vb是 那么Data2.RecordSource = select*from general user where = & Text1.Text & 数据2.刷新Data2.Recordset.DeleteData2.Rec

24、ordset.MoveNextIfData2.Recordset.EOFthen Data1.Recordset.MoveLast: MsgBox 这是最后一条记录,确定要删除吗? , vbOKOnly + vbExclamation, Alert 万一万一万一结束子私有子 Command2_Click()我隐藏Form4.显示结束子FForm6截图4.3.2阐明此表单用于删除用户。根据系统设置,只有“管理员”才能删除用户。管理员只需按要求输入要删除的用户自己的用户名和密码,然后点击“确定”即可删除该用户。数据控件主要用于实现表单与数据库的连接。实现删除特定字段的功能。4.4 更改密码4.4.

25、1代码和截图私有子 form_load()Text2.PasswordChar = *Text3.PasswordChar = *Text4.PasswordChar = *结束子私有子 Command1_Click()如果 Text4.Text Text3.Text 那么MsgBox 两次输入的密码不同,请重新输入, vbOKOnly + vbExclamation, 温馨提示Text3.Text = Text4.Text = Text3.SetFocus万一如果 Text1.Text = 那么MsgBox 请输入您的, vbOKOnly + vbExclamation, 温馨提示Text1

26、.SetFocus万一Adodc1.RecordSource = select*from & Combo1.Text & where = & Text1.Text & and Password = & Text2.Text & Adodc1.Refresh如果 Adodc1.Recordset.EOF = True 那么MsgBox 或密码错误,请重新输入, vbOKOnly + vbExclamation, 提示Text1.SetFocusText1.Text = Text2.Text = Text3.Text = Text4.Text = Text1.SetFocus别的Adodc1.Re

27、cordSource = select*from & Combo1.Text & where = & Text1.Text & and password= & Text2.Text & Adodc1.RefreshAdodc1.Recordset.Fields(密码) = Text3.TextAdodc1.Recordset.UpdateMsgBox 密码更改错误, vbOKOnly + vbInformation, 提示Text1.Text = Text2.Text = Text3.Text = Text4.Text = Form7.隐藏Form4.显示万一结束子私有子 Command2_C

28、lick()Form7.隐藏Form4.显示结束子FForm7截图4.4.2阐明本程序的原理与上一个程序基本相同,只是不是删除一个字段,而是重写该字段的一条记录。4.5 添加新用户4.5.1源代码和界面截图私有子 form_load()Text2.PasswordChar = *Text3.PasswordChar = *结束子私有子 Command1_Click()如果 Text1.Text = 那么MsgBox 请输入新用户!, vbOKOnly + vbExclamation, 提示Text1.SetFocus别的Adodc1.RecordSource = select*from nor

29、mal users where = & Text1.Text & Adodc1.Refresh如果不是 Adodc1.Recordset.EOF 则MsgBox 用户名已经存在,请重新输入, vbOKOnly + vbExclamation, 提示Text1.SetFocusText1.Text = Text2.Text = Text3.Text = 别的如果 Text2.Text Text3.Text 那么MsgBox 两次输入的密码不同,请重试, vbOKOnly + vbExclamation, 提示Text2.SetFocus别的Adodc1.RecordSource = select

30、*from general user Adodc1.Recordset.AddNewAdodc1.Recordset.Fields() = Text1.TextAdodc1.Recordset.Fields(密码) = Text2.TextAdodc1.Recordset.UpdateMsgBox 用户添加成功, vbOKOnly + vbExclamation, 添加用户我隐藏Form4.显示万一万一万一结束子私有子 Command2_Click()Form9.隐藏Form4.显示Me.Text1.Text = Me.Text2.Text = Me.Text3.Text = 结束子FForm

31、9截图4.5.2阐明本方案的原理与上一个方案基本相同,此处不再赘述。4.6 动态曲线数据接口这部分实现了气体浓度的动态监测,即可以同时查看多个监测点的气体浓度变化,游客可以单独查看特定的监测点。4.6.1程序代码和截图这部分与Form8 (显示1号气体浓度监测点的气体浓度值动态变化) 、Form12 (显示2号气体浓度监测点的气体浓度值动态变化) 、Form13有关(显示3号气体浓度值)浓度监测点气体浓度值动态变化) , Form16(同时显示各气体浓度监测点气体浓度值动态变化) 。由于这些表单代码的原理基本相同,这里我仅以Form8的代码为例,其他表单的代码不再赘述。Form8的代码如下Op

32、tion Explicit 强制显式声明变量Dim DataFromCom As Integer 从串口读取的实时值Dim DataFromComLast As Integer 最后一个串口值Dim TimeCount As Integer计时私有子 form_load()PicScale 图片图片中线图片结束子Private Sub PicScale(picX As PictureBox) 定义了一个名为PicScale的过程来调整图像框的坐标系picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, -picX.ScaleHeight)结束子Pr

33、ivate Sub PicMidleLine(picX As PictureBox) 定义一个名为PicMidleLine的进程,作用是使用Line方法在图像框内绘制中心线picX.Line (0, 0)-(picX.ScaleWidth, 0), vbGreen结束子Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer) 定义一个叫做DrawRealLine的过程来绘制气体浓度的动态曲线如果 TimeCou

34、ntX - 1 0 那么picX.Line (TimeCountX 1 ) *10, DataFromComLastX)-(TimeCountX *10 , DataFromComX), vbWhite 使用Line方法将表示上一时刻气体浓度值的点与表示气体浓度值的点连接起来在当前时刻用一条直线万一结束子私有子 Timer1_Timer()DataFromComLast = DataFromCom随机化DataFromCom = 3000 * Rnd 使用随机函数模拟从串口读取的实时值时间计数 = 时间计数 + 1DrawRealLine Pic, TimeCount, DataFromCom

35、, DataFromComLast 绘制实时曲线Text1.Text = Str(DataFromCom)如果 DataFromCom 2900 那么MsgBox 1号监测点气体浓度超标, vbOKOnly, 警告万一结束子私有子 Timer2_Timer()Label2.Caption = Hour(Now) & : & Minute(Now) & : & Second(Now)结束子私有子 Timer3_Timer()1号监测点的气体浓度表中选择*其中time = & Hour(Now) & : & Minute(Now) & : & Second(Now) & 每 1 秒内将数据写入对应

36、的数据库Adodc1.RecordSource = select*from监测点 1 号气体浓度表其中气体浓度= & DataFromCom & Adodc1.RefreshAdodc1.RecordSource = select*from gas Adodc1.Recordset.AddNewAdodc1.Recordset.Fields( Time ) = Hour(Now) & : & Minute(Now) & : & Second(Now)Adodc1.Recordset.Fields(气体浓度) = DataFromComAdodc1.Recordset.Update结束子私有子 Command1_Click()卸载我Form4.显示结束子FForm8截图4.6.2阐明该部分主要用于实现气体浓度曲线的动态显示。这部分是整个课程设计中最复杂、难度最大的部分。它涉及到很多方面的知识,比如进程调用图的绘制,需要我们有很强的综合能力。在这个程序中,我写了几个程序来绘制函数图像,提前编写程序程序可以使调用更加方便。在本地程序中,将数据写入数据库的代码是我之前没有学过的,所以在写这部分程序的时候,我查了很多资料才完成这部分。为了解决每秒向数据库写入数据的问题,我将向数据库写入数据的语句置于Timer控制之下,从而解决了这个问题。4.7 报告的显示和打印各监

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论