毕业设计 14.docx
- 文档编号:24249878
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:19
- 大小:203.07KB
毕业设计 14.docx
《毕业设计 14.docx》由会员分享,可在线阅读,更多相关《毕业设计 14.docx(19页珍藏版)》请在冰豆网上搜索。
毕业设计14
编号:
南京森林警察学院
毕业论文
论文题目停车场管理系统
专业
班级
姓名
指导教师
年月
停车场管理设计论文
()
摘要:
随着我国现代化进程的不断加快,私家车的数量急剧增加,各类停车场的车流量不断增多的问题。
本论文针对现在普遍采用的人工收费管理方法存在的弊端,提出了一套由VisualBasic6.0开发设计的停车场管理系统,数据库采用MicrosoftAccess建立,使用ODBC访问数据库,使用ADO操作数据库,采用流行的C/S结构,也就是客户端/服务器模式。
关键词:
系统开发,MIS,ODBC,ADO,C/S
一、设计的目的与意义
信息作为生产力中最活跃的因素,很早就在人类经济生活中发挥着不可替代的作用,但把信息纳入企业经营管理系统中高效处理和应用是在计算机发明以后的50年代末。
目前人们所提到的管理信息系统,通常是指以计算机为工具,对管理信息进行收集、存贮、检索、加工和传递,使其应用于组织机构及企业管理领域的“人-机系统”,该系统是70年代初“后工业经济”时代的产物,在企业管理信息系统在其发展的初期,是单一的人—机系统,系统功能简单,效率低,对管理的作用有限。
停车场管理的核心是投资收益的最大化和车辆信息分配合理化的集合。
管理服务通过充分利用各种管理工具,帮助您达到合理分配的目的、满足您对管理安全性、收益性等多样化要求。
开发一个停车场车辆管理软件迎合了现代的公司发展趋势,对居民合理管理公司和他人的联系信息起到重要意义。
二、设计的工具环境
(一)编程环境的选择
微软公司的VisualBasic6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。
VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
故而,实现本系统VB是一个相对较好的选择。
(二)关系型数据库的实现
ACCESS2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
ACCESS的优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
另外,ACCESS允许创建自定义报表用于打印或输出数据库中的信息。
ACCESS也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
ACCESS是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。
如上所述,ACCESS作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
(三)二者的结合(ADO)
微软的JET数据库引擎提供了与数据库打交道的途径,们是通过它以及VisualBasic来访问数据库并对其进行各种操作。
VisualBasic、ACCESS以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
ADO控件在数据库中的信息与将信息显示给用户看的VisualBasic程序之间架起了一座桥梁。
们可以设置ADO控件的各个属性,告诉它要调用那个数据库的哪个部分。
缺省情况下,ADO控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。
一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。
ADO控件还提供了用来浏览不同记录的各种跳转按钮。
将ADO控件放置在窗体中之后,们还必须在该控件与要处理的数据库之间建立联系。
ADO(ActiveXDataObjects)是基于组件的数据库编程接口,它是一个和编程语言无关的COM组件系统。
本文主要介绍用ADO编程所需要注意的技巧和在VC下进行ADO编程的模式,并对C++Extensions进行了简单的讨论,希望对ADO开发人员有一定的帮助作用。
因为ADO是一个和编程语言无关的COM组件系统,所以这里讨论的要点适用于所有的编程语言和编程环境,比如:
VB、VBScript、VC、Java等等。
ADO定义了一个可编程的对象集合.ADO对象模型如图1所示:
图1
对于ADO其中对象来说,觉得比较重要是:
Command,Connection,Recordset对象。
虽然严格的说这是不准确的,但根据的实际经验确实如此。
下面就分别来谈一下。
1.Connection对象
Connection对象用于建立与数据库的连接。
通过连接可从应用程序访问数据源。
它保存诸如指针类型,连接字符串,查询超时,连接超时和缺省数据库这样的连接信息。
2.Command对象
在建立Connection后,可以发出命令操作数据源。
一般情况下,Command对象可以在数据库中添加,删除或更新数据,或者在表中进行数据查询。
ommand对象在定义查询参数或执行一个有输出参数的存储过程时非常有用。
3.Recordset对象
Recordset对象只代表一个记录集,这个记录集是一个连接的数据库中的表,或者是Command对象的执行结果返回的记录集。
在ADO对象模型中,是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的。
ecord对象用于指定行,移动行,添加,更改,删除记录。
下面就具体地说说如何用ADO存取数据,在实际编程过程中使用ADO的一个典型的存取数据的步骤为:
(1)数据源
(2)记录集对象
(3)记录集
(4)连接
(三)Windows下的VisualBasic编程环境
Visual Basic(简称VB)是一种可视化的、事件驱动型的Windows应用程序开发工具,它在GUI设计、绘图、制表、运算、通信和多媒体开发方面都具有简单易行、功能强大等优点,所以越来越受到开发人员的亲睐。
同时,VB在数据库开发方面也具有Foxpro所远不能及的强大功能。
VB能够读取和访问ACCESS、Excel、DbaseX、Foxpro、Btrieve和ODBC等多种数据库,并能利用VB自身所带的数据库引擎创建ACCESS数据库。
所以VB在管理信息系统(MIS)的开发和建设方面得到了是益广泛的应用。
现在,笔者就VB应用数据库的一些方法作一简单的介绍。
VB访问数据库通常有三种途径:
第一,通过数据库控制控件Data Control访问;第二,通过VB提供的数据库对象变量编程访问;第三,通过ODBC接口访问ODBC API函数。
在这三种方法中,第一种方法操作起来最方便、灵活、易于掌握,同时也最能体现Visual Basic面向对象的特色,故这里以Foxpro2.5的数据库为例,介绍数据库控制控件(Data Control)访问数据库的方法与步骤:
1.在Form窗口中加入Data Control控件
用鼠标在工具窗口的Data Control控件按钮上双击左键,该对象即出现在Form窗口的中间(控件名为Data1),用鼠标调整好控件的大小及位置。
如工具箱中无此控件,可打开主菜单的Tools/Custom,在列表中选中Microsoft Data Control复选框,确认后即可将此控件加入到工具箱中去。
2.设置联接库
用鼠标单击Data1,按下F4,打开属性窗口,设置Connect属性为Foxpro2.5,设置DatabaseName 为c:
\foxprow\student.dbf(假设磁盘上已有这个文件)。
3.加入字段显示、编辑控件(数据库捆绑控件)
在Form窗口中加入DGrid控件,如不在此控件,可打开主菜单Tools/Custom,在列表中选择Apex Data BroundGrid复选框,确认后即可向工具箱中加入此控件。
在Form窗口中单击选中此控件(DGrid1),按下F4打开属性窗口,设置Datasource属性为Data1,在Form窗口中用鼠标右键单击控件DGrid1,选择 Retrieve Fields;再用鼠标右键单击控件DGrid1,选择Edit,用鼠标调整控件及有关字段大小;再用鼠标右键单击控件DGrid1,选择Properties(属性),在弹出窗口中,选择Colums标签,在下拉列表中选Colum1,将Caption属性改为“学号”,选择Colum2,Caption属性改为“姓名”,选择Colum3、4将Caption属性改为“性别”、“专业”,按下“确定”按钮。
再向Form窗口中加入一个按钮控件,将Caption属性设置为“退出”,双击该控件(Command1),在代码窗口中写入“END”,存盘。
此时,一个具备数据库读写、浏览功能的应用程序就建立了,按下F5运行,通过单击Data1的各按钮即可看出当前记录的变化情况。
三、概要设计和具体实现
(一)模块组织结构图
组织结构图如图2所示:
图2
(二)系统流程图
系统流程分析如图3所示:
图3
(三)主要模块分析
停车场管理系统主要分以下六种:
基本信息管理、管理员信息管理、车辆进站操作管理、车辆出站操作管理、统计查询管理、系统数据维护。
其中各个模块又有如下的子模块:
1.基本信息管理
基本信息管理主要是用户修改自己的基本信息。
在本系统中,仅设置了用户的密码。
其操作界面如图4所示:
图4
实现该功能的主要代码如下所示:
IfTrim(Text1.Text)<>""AndTrim(Text2.Text)<>""AndTrim(Text3.Text)<>""Then
IfTrim(Text2.Text)<>Trim(Text3.Text)Then
Text2.Text=""
Text3.Text=""
MsgBox("您输入的两次密码不一至,请重试")
ExitSub
EndIf
mycon.Open
DimrsAsNewADODB.Recordset
sql="select*fromalluserswhereusername='"&nowuser&"'andpwd='"&Trim(Text1.Text)&"'"
rs.Opensql,mycon,3,3
'StaticnTryCountAsInteger
Ifrs.EOFThen
rs.Close
mycon.Close
MsgBox"对不起,您输入的原密码不正确!
请重新输入!
!
",vbCritical,"错误"
Text1.SetFocus
Text1.Text=""
Text1.SelStart=0
Text1.SelLength=Len(Text1)
nTryCount=nTryCount+1
Else
rs("pwd")=Trim(Text2.Text)
rs.Update
rs.Close
MsgBox("修改成功,您的新密码是"&Trim(Text2.Text))
mycon.Close
UnloadMe
EndIf
Else
MsgBox("请填写完整")
EndIf
2.管理员信息管理
管理员信息管理主要包括总管理员对普能管理员的添加,删除,修改,查找等功能。
(1)管理员添加模块,其界面如图5所示:
图5
实现管理员添加的主要代码如下:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)<>""AndTrim(Text2.Text)<>""AndTrim(Text3.Text)<>""Then
IfTrim(Text2.Text)<>Trim(Text3.Text)Then
MsgBox("对不起,两次密码不一至,请重试")
ExitSub
EndIf
mycon.Open
sql="select*fromalluserswhereusername='"&Trim(Text1.Text)&"'"
DimrsAsNewADODB.Recordset
rs.Opensql,mycon,3,3
Ifrs.EOFThen
sql="insertintoallusers(username,pwd)values('"&Trim(Text1.Text)&"','"&Trim(Text2.Text)&"')"
mycon.Execute(sql)
MsgBox("添加成功")
Else
MsgBox("该用户已经存在!
")
EndIf
rs.Close
mycon.Close
Else
MsgBox("请填写完整!
")
EndIf
EndSub
(2)管理员管理,即包括修改,查找,删除三类操作,其界面如图6所示:
图6
该模块功能可谓稍复杂的模块,因为该模块中包含了三类小模块。
从界面中我们可以看出,在最上面的查询处可以输入管理员的用户名来进行模糊查询,将查询的结果列入左下边的用户列表中,再单击用户列表来查看某管理员的详细信息,即显示在右边的“用户详细信息”中。
如果再需要修改,或删除操作,可以下面的“操作”选项中进行。
实现该模块的主要代码如下所示:
Publicbianhaozong
PrivateSubCommand1_Click()
sql="select*fromalluserswhere1=1"
IfTrim(Text1.Text)<>""Then
sql=sql+"andusernamelike'%"&Trim(Text1.Text)&"%'"
EndIf
CallGetData(sql)
EndSub
PrivateSubCommand2_Click()
Form7.Show
EndSub
PrivateSubCommand3_Click()
mycon.Open
DimrsAsNewADODB.Recordset
sql="select*from[allusers]whereid="&bianhaozong&""
'mycon.Open
rs.Opensql,mycon,3,3
Ifrs.EOFThen
mycon.Close
(四)车辆进站操作管理
车辆进站操作是该本管理系统的主要功能。
操作流程是:
当有汽车进站时,由我们的管理员(保安人员)记录其车牌号,车型,车主,以及车主的联系方式以便紧急时候方便联系,另外还有此时操作的时间(该项由系统自动记录,不必由管理员手工操作,以达更快更方便的目的)。
当记录完毕后,系统开时自动计费。
本模块的界面如图7所示:
图7
实现该模块的代码如下所示:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)<>""AndTrim(Text3.Text)<>""AndTrim(Text4.Text)<>""Then
IfCombo1.Text="请选择"Then
MsgBox("请选择车型")
ExitSub
EndIf
mycon.Open
'DimrsAsNewADODB.Recordset
sql="insertintoalltc(cp,cx,cz,sj,addby)values('"&Trim(Text1.Text)&"','"&Trim(Combo1.Text)&"','"&Trim(Text3.Text)&"','"&Trim(Text4.Text)&"','"&nowuser&"')"
mycon.Executesql
MsgBox("添加成功,现在开始计费!
!
!
")
mycon.Close
Else
MsgBox("请填写完整")
ExitSub
EndIf
EndSub
车辆出站操作管理
车辆出站操作与进站操作类似,但不是再由管理员输入车牌号了,而是由系统直接从数据库中读取车牌,列在下拉框中,然后由管理员选择即可,这样避免了多次输入有误导致降低工作效率。
操作界面如图8所示:
图8
实现该功能模块的主要代码如下所示:
PrivateSubCombo2_Click()
mycon.Open
Dimsql
DimrsAsNewADODB.Recordset
sql="select*fromalltcwherecp='"&Trim(Combo2.Text)&"'"
rs.Opensql,mycon,1,1
Ifrs.EOFThen
Else
Label7.Caption=rs("cx")
Label8.Caption=rs("cz")
Label9.Caption=rs("sj")
Label11.Caption=rs("addtime")
Label5.Caption=Now()
Label13.Caption=DateDiff("n",rs("addtime"),Now())*0.1
rs.Close
EndIf
mycon.Close
EndSub
PrivateSubCommand1_Click()
IfTrim(Combo2.Text)="请选择"Then
MsgBox("请先选择您要操作的车牌号!
")
ExitSub
EndIf
mycon.Open
sql="updatealltcsetiscz='1',jine='"&Label13.Caption&"'wherecp='"&Trim(Combo2.Text)&"'"
mycon.Executesql
MsgBox("操作成功!
")
mycon.Close
EndSub
PrivateSubForm_Load()
mycon.Open
Dimsql
DimrsAsNewADODB.Recordset
sql="select*fromalltcwhereiscz='0'"
rs.Opensql,mycon,1,1
Ifrs.EOFThen
Else
DoWhileNotrs.EOF
Combo2.AddItem(rs("cp"))
rs.MoveNext
Loop
EndIf
mycon.Close
EndSub
(五)统计查询管理
该模块是让管理员可以更清楚的知道近段时间的车辆进出站历史记录。
该模块的界面如图9所示:
图9
实现该模块功能的主要代码如下所示:
PrivateSubCommand5_Click()
sql="select*fromalltcwhere1=1"
IfTrim(Text2.Text)<>""Then
sql=sql+"andcplike'%"&Trim(Text2.Text)&"%'"
EndIf
IfTrim(Combo1.Text)<>"请选择"Then
sql=sql+"andcx='"&Trim(Combo1.Text)&"'"
EndIf
CallGetData(sql)
EndSub
PrivateSubForm_Load()
Combo1.AddItem("小轿车")
Combo1.AddItem("中巴车")
Combo1.AddItem("大巴车")
Combo1.AddItem("卡车")
Combo1.AddItem("其他")
CallGetData("select*fromalltcorderbyiddesc")
EndSub
FunctionGetData(sql)
MSFlexGrid1.Clear
mycon.Open
DimrsAsNewADODB.Recordset
rs.Opensql,mycon,1,1
Ifrs.EOFThen
Else
DimiAsInteger
WithMSFlexGrid1
i=1
.Rows=1
DoWhileNotrs.EOF
i=i+1
.Rows=i
.TextMatrix(i-1,1)=rs("ID")
.TextArray(0)=""
.TextMatrix(i-1,2)=rs("cp")
.TextMatrix(i-1,3)=rs("cx")
.TextMatrix(i-1,4)=rs("cz")
.TextMatrix(i-1,5)=rs("sj")
.TextMatrix(i-1,6)=rs("addtime")
.TextArray
(1)="编号"
.TextArray
(2)="车牌"
.TextArray(3)="车型"
.TextArray(4)="车主"
.TextArray(5)="手机"
.TextArray(6)="入站时间"
.ColWidth(0)=300
.ColWidth
(1)=1200
.ColWidth
(2)=1200
.ColWidth(3)=1200
.ColWidth(4)=1200
.ColWidth(5)=1200
.ColWidth(6)=1800
rs.MoveNext
Loop
EndWith
rs.Close
EndIf
mycon.Close
EndFunction
(六)系统数据维护
采用系统数据维护更好的使得数据不被流失,通过备份更有效的保持数据的完整性。
系统数据维护包括备分数据库、还原数据库
四、总结
经过一个多月的设计和开发,系统基本开发完毕。
其功能基本符合用户需求,能够完成停车场车辆管理存储和。
并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。
,对于数据的一致性的问题也通过程序进行了有效的解决。
但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如功能较少等多方面问题。
这些都有待进一步改善。
在软件的编写过程中,我充分体会了软件编程工作者的辛苦,因为每一个细微的细节都必须十分的注意,如果稍有不慎,就会全盘皆输,而且往往很多的时候,程序我自己觉得非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。
在开始编写程序的时候,我看到别人的软件功能非常的详细,而且界面非常的漂亮,总希望自己的软件也非常的完善,但是,经过二个月的学习,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 14
![提示](https://static.bdocx.com/images/bang_tan.gif)