版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE课程设计说明书(论文)PAGEPAGE0辽宁工业大学课程设计说明书(论文)PAGE0目录TOC\o"1-1"\h\z\u第一章前言 1第二章可行性分析 2第三章需求分析 4第四章概要设计 6第五章数据库设计 7第六章界面设计 11总结与体会 18参考文献: 19附录:部分源程序代码 20
第一章前言随着清洁能源的发展,天然气越来越受人们的欢迎,因此,使用天然气的用户不多增多。以前的,在天然气使用用户少的情况下,每月去用户家读表也是一种非常经济并且实效的方式!然而,伴随着燃气使用的用户增长,利用职工上门读表已经是一种不且和实际的做法!因为这样不仅,需要更多的资金,和劳动力,并且利用手工记录数据还有一定程度的不安全性,还有一定的复杂性!由于人工管理带来的诸多不利因素,建立燃气管理系统也是一种必然的趋势,下面给介绍燃气管理系统的优点和实现方法!首先,燃气管理系统充分利用了现代的高科技计算机技术,充分地解放了劳动力,避免造成了劳动力资源的浪费!并且利用计算机技术减少了很多人为的错误,实现了燃气使用的精确管理!其次,也充分即利用了现在的gps技术,通过一个gsm猫来获取数据,就是把燃气用量检测设备集成到gsm猫中,然后一段形式发给安装在数据库上的另一个gsm猫,然后让管理人员吧他读到数据库中!同时它也实现了远程控制功能,比如说有一个用户欠费了,这样就可以通过gsm猫远程控制开关把供气阀门关上,一提醒用户能够及时交上拖欠的费用!还有个优点就是当新用户登记完之后,还可以通过远程控制为的燃气表下发一个表ID,来表示他的表。总之,燃气管理系统就是为了提高燃气供应公司的管理水平,这样不但解放了劳动力,同时也能提高管理者的薪金待遇!通过以上所述,相信大家对燃气管理系统有一个全新的认识!本小组开发的《燃气管理系统》主要任务是:1.完成各种数据的顺利插入;2.可以把查询表的信息打印出来;3.可以把各各信息表的信息导入到excel中;4.自动读表功能。第二章可行性分析技术可行性:由于本系统管理的对象单一,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面完全可以实现。本系统的设计是在WindowsXP中文版操作系统环境下,使用VB.NET中文版开发成功的。Sql是数据库中的重要支持技术,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:VB.NET是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大。在VB.NET环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具。Sql数据库是MICROSOFT推出的OFFICE系列办公室自动化软件中的用于数据库管理系统.它是一个中,小型的数据库管理系统,提供了与其它数据库管理软件包的良好接口,能方便识别DBASE,FOXBASE,FOXPRO,PARADOX等数据库管理系统生成的数据库文件.它的最大优点就是方便易用,操作方便、使用简单。2.经济可行性:对于一个燃气公司来说,需要这样一个软件,为他们提供一个更有效率的工作,这样更有利于他们的发展。随着信息时代的来临,我们的各项工作都要讲求效率,这就为我的软件提供了使用群体。本系统大约有一千余行代码,开发周期历时半个月,成本费用在一万五千左右,而燃气公司每雇佣一个员工一年的费用在一万元左右,也就是说软件的成本费用与一个员工一年的工资相当,软件的生命周期是三年到五年,并且软件的可操作性强对操作员做简单的培训即可,无须投入培训费用。是一个投入资金少,收益快,节省人力资源的项目。3.操作可行性:本系统可以运行在Windows95/98/2000/XP等操作系统上,一般系统都可以运行而且安装也非常的简单,一看即懂,方便大家使用,即使不具备一定电脑知识的人也可以熟练掌握.软件的集成度高,数据库简单只要安装了sql2000即可运行,系统是基于人性化设计的,界面友好,无须专业人员即可操作。第三章需求分析主要功能:本系统主要用于燃气管理系统,采用面向对象的设计思想,以菜单和表单的形式进行各表单的调用,其系统功能分析是在系统开发的总体任务的基础上完成的1.需求分析任务:⑴由于操作人员的计算机知识普遍不高,要求有良好的人机界面;⑵由于该系统的使用对象多,要求有较好的权限管理;⑶原始数据修改简单方便,支持多条件修改⑷方便的数据查询,支持多条件查询;⑸在相应的权限下,删除数据方便简单,数据稳定性好;⑹数据计算自动完成,尽量减少人工干预;因此,本系统应该主要完成和实现如下功能:初始化系统数据;用户登记、用户换表登记、用户变更登记,用户维修登记用户信息查询给用户发送邮件从串口读数据用户信息导入到excel中读表功能打印用户信息。用户信息信息:在该项内容中将包括的数据库项有用户姓名、住址、表ID、表型号、开户时间、开户始用气量、已用总气量、剩余燃气量、邮箱。表基本设定:通过该模块可以控制燃气开关阀、获取用户的当日用气量、给表分配表ID。燃气汇总:通过使用燃气管理系统,可以方便对使用燃气的地方对燃气使用的管理,并且可以实现浏览和打印等功能。程序流程图:系统主界面系统主界面验证登录口令验证登录口令密码是否正确?密码是否正确?是是否调用系统菜单否调用系统菜单退出系统退出系统图1系统运行步骤流程第四章概要设计燃气管理系统始针对燃气供应公司专门开发的一款用户信息管理软件。它主要针对现有燃气系统管理系统的弊端进行了优化和系统改造!先说一下以前的燃气管理系统,它采用的是有线管理系统,就是计算机通过线路来管理燃气表中的数据,这一点在设计大楼时,也要把布线考虑进去,增加了设计的难度!因此,改进之处就是把有线改成无线就能解决这个问题。我们所设计的燃气管理系统,通过把用户、维修人员、燃气测量表、以及变更人员通过他们的联系结合在一起,组成统一的数据源。这样便于管理员操作在燃气管理系统中,为了方便燃气系统管理员的操作,我们在数据库设计的时候建立了五个表,分别是:用户用气量信息表、用户信息表、用户变更信息表、用户换表信息表、用户维修信息表。这五个表,足以把燃气用户的信息容纳进去。并且,还设计出许多个性化的界面,下面这些界面将给一一介绍,这里不做多的介绍!这个燃气管理系统还有很大的提升空间,比如说他的无线远程管理功能,如果做得好的话他也可以推广的别管理平台,比如说电力管理平台,可以结束人工抄表的时代。这个系统也有推广的价值,不仅可以节省燃气管理公司的管理费用,还可以避免建设大楼时,增加的布线难度!并且也充分地利用了现代科技!尽管这个系统是非常先进的,但是也有很多不足之处,比如界面不太美观,有些功能也不够完善!我相信,通过我们的后期努力一定会使这些不完善的更加完善!第五章数据库设计ER模型:住址住址邮箱开户时间开户始用气量用户开户燃气表变更新用户住址邮箱表型号开户时间表ID开户始用气量已用燃气量剩余燃气量当日用气量用户用户维修人员燃气表维修修姓名姓名邮箱维修时间表型号表ID功能结构图:燃气管理系统燃气管理系统远程控制开关阀用户信息打印给用户发送邮件用户信息导出用户信息登记退出远程读表远程控制开关阀用户信息打印给用户发送邮件用户信息导出用户信息登记退出远程读表图2燃气管理系统下面列出几个主要的数据库表设计:1用户信息表:序号中文名字段名类型备注0用户姓名8字符型主索引1住址24字符型archar2表ID(8,0)十进制Varchar3表型号(6,0)十进制Varchar4开户时间2日期型5开户用气量(5,0)十进制6已用总气量(5,0)十进制7剩余燃气量(5,0)十进制8邮箱20字符型2用户用气量信息表:序号中文名字段名类型备注0用户姓名8字符型主索引1住址24字符型3表ID(8,0)十进制4已用燃气量(5,0)十进制5当日用气量(5,0)十进制3用户换表信息表:序号中文名字段名类型备注0用户姓名8字符型主索引1住址24字符型2表ID(8,0)十进制3原表型号(6,0)十进制4新表型号(6,0)十进制5新表ID(8,0)十进制6换表始用气量(5,0)十进制7换表时间日期8维修人员8字符型4用户变更信息表:序号中文名字段名类型备注0用户姓名8字符型主索引1住址24字符型archar2表ID(8,0)十进制3新用户姓名8字符型4开户时间日期型5开户始用气量(5,0)十进制5用户维修信息表:序号中文名字段名类型备注0用户姓名8字符型主索引1住址24字符型archar2表ID(8,0)十进制3表型号(6,0)十进制4维修时间日期型5维修人员8字符型第六章界面设计登陆窗口如下所示:若输入的密码不符合,即弹出对话框,提示该用户无法进入系统。主界面单击主界面上的各个按钮,可以进入相应的界面中。单击菜单栏中的菜单,可以弹出下拉菜单。单户读表。就是每一天的用气量需要更新,所以需要读表集中度表,就是一个地方的一起更新每一天的数据下发表ID,就是给每一个用户的表下发一个ID,然后他们就能使用了!远程开关阀,当用户欠费是,就利用这个切断燃气供应开关,停止对他的供气用户信息查询用户用气量查询用户维修查询用户换表查询用户变更查询用户开户登记用户变更登记用户换表登记用户维修信息打印用户换表信息打印用户变更信息打印总结与体会在燃气管理系统的设计过程中,也曾遇到很多困难,因为这是一个直接面对用户的程序,所以在燃气管理设计的阶段也是需要不断的改进,尽我们最大的程度去满足用户需求!在这个数据库设计的初期遇到一个自动更新问题,利用上课学的知识是解决不了的.所以在这个问题上,自己不断的查资料,不断地克服问题最终将他妥善解决!其实遇到这样的问题也挺多的,下面就不一一细说了!在做个系统时,有很多次自己想自己还是放弃了得了,但是,这些只是想法,最终自己坚持下来并将它实现.一路走路虽然不容易,而我尝到了成功的喜悦!不管做什么事,都要坚持到最后,要相信终会成功!本人签字:参考文献:[1]王珊,萨师煊主编.数据库系统概论[2]InmonWH.数据仓库.王志海.北京:机械工业出版社[3]戴军湘,文龙编著.VisualBasic.NET程序设计基础教程.清华大学出版社[4]石志国编著.VisualBasic.NET实用案例教程.清华大学出版社出版,20035]林联彬,李旭,顾青主编.VisualBasic.NET程序设计.中国铁道出版社,2004[6]李万红主编.VisualBasic.NET程序设计入门.清华大学出版社,2002[7]曹祖圣主编.VisualBasic.NET学习范本.科学出版社,2003附录:部分源程序代码(1)登录代码:IfText1.Text="abc"AndText2.Text="123"Thenfrm_主界面.ShowUnloadMeElseIfa=3ThenMsgBox("你已经用了三次机会了,只能退出")UnloadMeElsea=a+1MsgBox("密码不对,请重新输入,你还有"+Str(3-a)+"次机会")EndIfEndIf(2)主界面代码PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.KeyCase"用户开户登记"frm_用户开户登记.ShowCase"用户变更登记"frm_用户信息变更登记.ShowCase"用户用气量查询"frm_用户用气量查询.ShowCase"用户维修"frm_用户维修登记.ShowCase"远程开关阀"frm_远程开关阀.ShowCase"集中读表"frm_集中读表.ShowCase"退出系统"Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMeEndElseEndIfEndSelectEndSubPrivateSub单户读表_Click()frm_单户读表.ShowEndSubPrivateSub关闭系统_Click()Dimcc=MsgBox("确定要退出酒店管理系统吗?",33,"酒店管理系统")Ifc=vbOKThenUnloadMeEndElseEndIfEndSubPrivateSub集中读表_Click()frm_集中读表.ShowEndSubPrivateSub下发表ID_Click()frm_下发表.ShowEndSubPrivateSub用户变更查询_Click()frm_用户变更查询.ShowEndSubPrivateSub用户变更登记_Click()frm_用户信息变更登记.ShowEndSubPrivateSub用户变更信息打印_Click()Frm_用户变更信息打印.ShowEndSubPrivateSub用户换表登记_Click()frm_用户换表登记.ShowEndSubPrivateSub用户换表查询_Click()frm_用户换表查询.ShowEndSubPrivateSub用户换表信息打印_Click()frm_用户换表信息打印.ShowEndSubPrivateSub用户开户登记_Click()frm_用户开户登记.ShowEndSubPrivateSub用户维修登记_Click()frm_用户维修登记.ShowEndSubPrivateSub用户维修查询_Click()frm_用户维修查询.ShowEndSubPrivateSub用户维修信息打印_Click()frm_用户维修信息打印.ShowEndSubPrivateSub用户信息查询_Click()frm_用户信息查询.ShowEndSubPrivateSub用户用气量查询_Click()frm_用户用气量查询.ShowEndSubPrivateSub远程开关阀_Click()frm_远程开关阀.ShowEndSub(3)单户读表PrivateSubCommand1_Click()DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimstrSqlAsStringSetconn=NewADODB.Connectionconn.ConnectionString="Provider=SQLOLEDB;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=燃气管理系统"conn.CommandTimeout=0conn.OpenstrSql="update用户用气量信息表set已用燃气量=已用燃气量+当日用气量where用户姓名='"&Text1.Text&"'and表ID='"&Val(Text2.Text)&"'and住址='"&Text3.Text&"'"conn.ExecutestrSqlAdodc1.RecordSource="select*from用户用气量信息表"Adodc1.RefreshText1.Text="":Text2.Text="":Text3.Text="":Text1.SetFocusEndSubPrivateSubCommand2_Click()Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMeElseEndIfEndSub(4)集中度表DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimstrSqlAsStringSetconn=NewADODB.Connectionconn.ConnectionString="Provider=SQLOLEDB;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=燃气管理系统"conn.CommandTimeout=0conn.OpenstrSql="update用户用气量信息表set已用燃气量=已用燃气量+当日用气量where住址='"&Text1.Text&"'"conn.ExecutestrSqlAdodc1.RecordSource="select*from用户用气量信息表"Adodc1.RefreshMsgBox("集中读表完成")Text1.Text="":Text1.SetFocusEndSubPrivateSubCommand2_Click()Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMe(5)下发表代码Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMeElseEndIf(6)远程开关阀DimiAsIntegerFori=1To2Ifi=1ThenCombo1.AddItem"开"ElseCombo1.AddItem"关"EndIfNextCombo1.ListIndex=开(7)用户信息查询PrivateSubCommand1_Click()Adodc1.RecordSource="select*from用户信息表where用户姓名='"&Text1.Text&"'and住址='"&Text2.Text&"'and表ID='"&Val(Text3.Text)&"'"Adodc1.RefreshText1.Text="":Text2.Text="":Text3.Text="":Text1.SetFocusEndSubPrivateSubCommand2_Click()Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMeElseEndIfEndSubPrivateSubCommand3_Click()DimxlappAsExcel.ApplicationDimxlbookAsExcel.WorkbookDimxlsheetAsExcel.WorksheetAdodc1.RecordSource="select*from用户信息表"Adodc1.RefreshDimi,j,m,nAsIntegerSetxlapp=CreateObject("Excel.Application")Setxlbook=xlapp.Workbooks.Addxlapp.ActiveSheet.Columns(1).ColumnWidth=10xlapp.Visible=TrueSetxlsheet=xlbook.Worksheets(1)m=Adodc1.Recordset.RecordCount+1n=Adodc1.Recordset.Fields.CountAdodc1.Recordset.MoveFirstxlsheet.Cells(1,1)="用户姓名"xlsheet.Cells(1,2)="住址"xlsheet.Cells(1,3)="表ID"xlsheet.Cells(1,4)="表型号"xlsheet.Cells(1,5)="开户时间"xlsheet.Cells(1,6)="开户始用气量"xlsheet.Cells(1,7)="已用总气量"xlsheet.Cells(1,8)="剩余燃气量"xlsheet.Cells(1,9)="邮箱"Fori=2TomForj=1Tonxlsheet.Cells(i,j)=Adodc1.Recordset.Fields(j-1)NextAdodc1.Recordset.MoveNextNextSetxlapp=NothingEndSub(8)用户用气量查询PrivateSubCommand1_Click()Adodc1.RecordSource="select*from用户信息表where用户姓名='"&Text1.Text&"'and住址='"&Text3.Text&"'and表ID='"&Val(Text2.Text)&"'"Adodc1.RefreshText1.Text="":Text2.Text="":Text3.Text="":Text1.SetFocusEndSubPrivateSubCommand2_Click()Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMeElseEndIfEndSubPrivateSubCommand3_Click()DimxlappAsExcel.ApplicationDimxlbookAsExcel.WorkbookDimxlsheetAsExcel.WorksheetAdodc1.RecordSource="select*from用户用气量信息表"Adodc1.RefreshDimi,j,m,nAsIntegerSetxlapp=CreateObject("Excel.Application")Setxlbook=xlapp.Workbooks.Addxlapp.ActiveSheet.Columns(1).ColumnWidth=10xlapp.Visible=TrueSetxlsheet=xlbook.Worksheets(1)m=Adodc1.Recordset.RecordCount+1'获取数据库中二维表有多少行n=Adodc1.Recordset.Fields.Count'获取数据库中二维表有多少列Adodc1.Recordset.MoveFirstxlsheet.Cells(1,1)="用户姓名"xlsheet.Cells(1,2)="住址"xlsheet.Cells(1,3)="表ID"xlsheet.Cells(1,4)="已用燃气量"xlsheet.Cells(1,5)="当日用气量"Fori=2TomForj=1Tonxlsheet.Cells(i,j)=Adodc1.Recordset.Fields(j-1)NextAdodc1.Recordset.MoveNextNextSetxlapp=NothingEndSub(9)用户换表查询PrivateSubCommand1_Click()Adodc1.RecordSource="select*from用户换表信息表where用户姓名='"&Text1.Text&"'and住址='"&Text2.Text&"'and表ID='"&Val(Text3.Text)&"'"Adodc1.RefreshText1.Text="":Text2.Text="":Text3.Text=""Text1.SetFocusEndSubPrivateSubCommand2_Click()Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMeElseEndIfEndSubPrivateSubCommand3_Click()DimxlappAsExcel.ApplicationDimxlbookAsExcel.WorkbookDimxlsheetAsExcel.WorksheetAdodc1.RecordSource="select*from用户换表信息表"Adodc1.RefreshDimi,j,m,nAsIntegerSetxlapp=CreateObject("Excel.Application")Setxlbook=xlapp.Workbooks.Addxlapp.ActiveSheet.Columns(1).ColumnWidth=10xlapp.Visible=TrueSetxlsheet=xlbook.Worksheets(1)m=Adodc1.Recordset.RecordCount+1n=Adodc1.Recordset.Fields.CountAdodc1.Recordset.MoveFirstxlsheet.Cells(1,1)="用户姓名"xlsheet.Cells(1,2)="住址"xlsheet.Cells(1,3)="表ID"xlsheet.Cells(1,4)="原表型号"xlsheet.Cells(1,5)="新表型号"xlsheet.Cells(1,6)="新表ID"xlsheet.Cells(1,7)="换表始用气量"xlsheet.Cells(1,8)="换表时间"xlsheet.Cells(1,9)="维修人员"Fori=2TomForj=1Tonxlsheet.Cells(i,j)=Adodc1.Recordset.Fields(j-1)NextAdodc1.Recordset.MoveNextNextSetxlapp=NothingEndSub(10)用户开户登记PrivateSubCommand1_Click()Adodc1.RecordSource="select*from用户信息表"Adodc1.Recordset.AddNewAdodc1.Recordset.Fields(0)=Text1.TextAdodc1.Recordset.Fields(1)=Text2.TextAdodc1.Recordset.Fields(2)=Val(Text3.Text)Adodc1.Recordset.Fields(3)=Val(Text4.Text)Adodc1.Recordset.Fields(4)=Text5.TextAdodc1.Recordset.Fields(5)=Val(Text6.Text)Adodc1.Recordset.Fields(6)=Val(Text7.Text)Adodc1.Recordset.Fields(7)=Val(Text8.Text)Adodc1.Recordset.Fields(8)=Text9.TextAdodc1.Recordset.UpdateAdodc1.RecordSource="select*from用户信息表"Adodc1.RefreshAdodc2.RecordSource="select*from用户用气量信息表"Adodc2.Recordset.AddNewAdodc2.Recordset.Fields(0)=Text1.TextAdodc2.Recordset.Fields(1)=Text2.TextAdodc2.Recordset.Fields(2)=Val(Text4.Text)Adodc2.Recordset.Fields(3)=Val(Text6.Text)Adodc2.Recordset.Fields(4)=0Adodc2.Recordset.UpdateAdodc2.RecordSource="select*from用户用气量信息表"Adodc2.RefreshMsgBox("插入成功!")Text1="":Text2="":Text3="":Text4="":Text6="":Text7="":Text8=""Text9=""Text1.SetFocusEndSubPrivateSubCommand2_Click()Dimcc=MsgBox("确定要退出燃气管理系统吗?",33,"燃气管理系统")Ifc=vbOKThenUnloadMeElseEndIfEndSub(11)用户换表信息打印PrivateSubCommand1_Click()CommonDialog1.ShowPrinterEndSubPublicFunctionprnt(XAsVariant,YAsVariant,fntAsVariant,txt0AsVariant)Printer.CurrentX=XPrinter.CurrentY=YPrinter.FontSize=fntPrinter.Printtxt0EndFunctionPrivateSubcmdPrint_Click()Adodc1.Recordse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论