与名称
第四章车站售票管理系统的功能实现
下面给出系统开发出来的详细界面以阐述车站售票管理系统的具体功能。
4.1登陆界面编码设计
首先是进入登陆界面,如图4.1所示
图4.1登陆界面
PrivateSubCmdexit_Click()
End
EndSub
PrivateSubCmdok_Click()
Dimusername1AsString,username2AsString
username1=Text1.Text
IfOption1.ValueThen
SetText3.DataSource=Adodc1
Text3.DataField="口令"
Adodc1.Recordset.MoveFirst
Ifusername1<>""Then
username2="用户名='"&username1&"'"
Adodc1.Recordset.Findusername2
IfAdodc1.Recordset.EOFThen
MsgBox"用户名错误请重输",16,"错误"
Else
IfText2.Text<>Text3.TextThen
MsgBox"密码错误请重输",16,"错误"
Text2.Text=""
Else
MDIForm1.Show
Form1.Hide
EndIf
EndIf
EndIf
Else
IfOption2.ValueThen
SetText3.DataSource=Adodc2
Text3.DataField="口令"
Adodc2.Recordset.MoveFirst
Ifusername1<>""Then
username2="工号='"&username1&"'"
Adodc2.Recordset.Findusername2
IfAdodc2.Recordset.EOFThen
MsgBox"用户名错误请重输",16,"错误"
Else
IfText2.Text<>Text3.TextThen
MsgBox"密码错误请重输",16,"错误"
Text2.Text=""
Else
MDIForm1.Show
Form1.Hide
EndIf
EndIf
EndIf
EndIf
EndIf
EndSub
4.2售票管理界面编码设计
图4.2"售票管理"功能界面
DimflagAsString
PrivateSubCmdfind_Click()
DimzmAsString
Text2.Text=""
Text3.Text=""
Text4.Text=""
zm="select发车时刻表.车次,途径表.站名,车型,发车时间,检票口,发车时刻表.站名as班车from发车时刻表,途径表,车辆where发车时刻表.车次=途径表.车次and发车时刻表.车辆编号=车辆.车辆编号and途径表.站名='"&Combo1.Text&"'orderby发车时间asc"
Adodc1.RecordSource=zm
Adodc1.Refresh
Text1.Text=""
Text1.Refresh
EndSub
PrivateSubCmdok_Click()
Ifflag="T"Then
Adodc8.Recordset.MoveFirst
WhileNotAdodc8.Recordset.EOF
IfYear(Text12)=Year(Date)AndMonth(Text12)=Combo2.TextAndDay(Text12)=Combo3.TextAndText13.Text=Text9.TextAndText3.Text=Text17.TextThen
Text25.Text="F"
Adodc8.Recordset.Save
flag="F"
Adodc8.Recordset.MoveLast
Else
Adodc8.Recordset.MoveNext
EndIf
Wend
EndIf
Adodc8.Recordset.AddNew
Text12.Text=Year(Date)&"/"&Val(Combo2.Text)&"/"&Val(Combo3.Text)
Text13.Text=Text9.Text
Text14.Text=Text6.Text
Text15.Text=Text2.Text
Text16.Text=Combo4.Text
Text17.Text=Text3.Text
Text18.Text=Form1.Text1.Text
Adodc8.Recordset.Update
Adodc8.Refresh
Adodc8.Recordset.MoveLast
Form6.Show
EndSub
PrivateSubCombo2_LostFocus()
IfVal(Combo2.Text)Mod2=0Then
IfVal(Combo3.List(Combo3.ListCount-1))=31Then
Combo3.RemoveItem(Combo3.ListCount-1)
EndIf
Else
IfVal(Combo3.List(Combo3.ListCount-1))<>31Then
Combo3.AddItem"31"
EndIf
EndIf
EndSub
PrivateSubDataGrid1_Click()
DimccAsString,sumAsInteger
sum=0
Adodc3.Recordset.MoveFirst
Adodc4.Recordset.MoveFirst
Adodc6.Recordset.MoveFirst
Adodc7.Recordset.MoveFirst
Adodc8.Recordset.MoveFirst
IfMonth(Date)=Combo2.TextAndDay(Date)=Combo3.TextThen
If(Hour(Text19.Text)-Hour(Now))*60+Minute(Text19.Text)-Minute(Now)<5Then
MsgBox"已接近开车,停止售票",64,"错误"
Cmdok.Visible=False
Else
Cmdok.Visible=True
EndIf
Else
Cmdok.Visible=True
EndIf
cc="车型='"&Text5.Text&"'"
Adodc3.Recordset.Findcc
cc="站名='"&Text6.Text&"'"
Adodc4.Recordset.Findcc
IfCombo4.Text="全"Then
Text2.Text=Int(Val(Text7.Text)*Val(Text8.Text)+0.5)
Else
Text2.Text=Int(Val(Text7.Text)*Val(Text8.Text)/2+0.5)
EndIf
Text2.Refresh
WhileNotAdodc8.Recordset.EOF
IfYear(Text12)=Year(Date)AndMonth(Text12)=Combo2.TextAndDay(Text12)=Combo3.TextAndText13.Text=Text9.TextAndText25.Text="F"Then
sum=sum+1
EndIf
Adodc8.Recordset.MoveNext
Wend
Text3.Text=sum+1
Adodc8.Recordset.MoveFirst
WhileNotAdodc8.Recordset.EOF
IfYear(Text12)=Year(Date)AndMonth(Text12)=Combo2.TextAndDay(Text12)=Combo3.TextAndText13.Text=Text9.TextAndText25.Text="T"Then
Text3.Text=Text17.Text
Adodc8.Recordset.MoveLast
flag="T"
Else
Adodc8.Recordset.MoveNext
EndIf
Wend
WhileNotAdodc9.Recordset.EOF
IfYear(Text22.Text)=Year(Date)AndMonth(Text22.Text)=Combo2.TextAndDay(Text22.Text)=Combo3.TextAndText23.Text=Text9.TextThen
sum=sum+Val(Text24.Text)
EndIf
Adodc9.Recordset.MoveNext
Wend
cc="车次='"&Text9.Text&"'"
Adodc7.Recordset.Findcc
cc="车辆编号='"&Text11.Text&"'"
Adodc6.Recordset.Findcc
Text4.Text=Val(Text10.Text)-sum
Text4.Refresh
EndSub
PrivateSubForm_Load()
Adodc2.Recordset.MoveFirst
WhileNotAdodc2.Recordset.EOF
Combo1.AddItemText1.Text
Adodc2.Recordset.MoveNext
Wend
Combo2.Text=Month(Date)
Combo3.Text=Day(Date)
EndSub
4.3报表管理界面编码设计
图4.3"报表"功能界面
PrivateSubCommand1_Click()
DimccAsString
IfOption2.ValueThen
cc="select工号,count(工号)as买票数from车票表groupby工号"
EndIf
IfOption1.ValueThen
cc="select车次,count(车次)as买票数from车票表groupby车次"
EndIf
Adodc1.RecordSource=cc
DataGrid1.ClearFields
DataGrid1.ReBind
Adodc1.Refresh
DataGrid1.Refresh
EndSub
4.4数据库备份管理界面编码设计
进入数据库备份恢复菜单,出现如图4.4所示界面。
图4.4"数据库备份"功能界面
DimfsoAsNewFileSystemObject,fldrAsFolder
DimcnAsADODB.Connection
DimsuccessAsLong
PrivateSubcmdBackUp_Click()
DimbackFileAsString
DimNowTimeAsString
DimsqlAsString
DimbuffAsString
Iffso.FolderExists(App.Path&"\BackUp")=FalseThen
Setfldr=fso.CreateFolder(App.Path&"\BackUp")
EndIf
NowTime=Format(Now,"yyyy-mm-dd_hh-mm-ss")
backFile="hotel"&NowTime
sql="BACKUPDATABASEhotelTOdisk='"&App.Path&"\BackUP\"&backFile&"'"
cn.Execute(sql)
MsgBox"数据库备份成功!"&vbCrLf&"文件:"&backFile,vbOKOnly+vbInformation,"备份数据库"
success=WritePrivateProfileString("BackUp","NewFile",backFile,App.Path&"\Sims.ini")
buff=String(255,0)
ret=GetPrivateProfileString("BackUp","Time","1",buff,256,App.Path&"\Sims.ini")
lbTime.Caption=buff
SelectCaselbTime.Caption
Case"1"
success=WritePrivateProfileString("BackUp","File1",backFile,App.Path&"\Sims.ini")
Case"2"
success=WritePrivateProfileString("BackUp","File2",backFile,App.Path&"\Sims.ini")
Case"3"
success=WritePrivateProfileString("BackUp","File3",backFile,App.Path&"\Sims.ini")
Case"4"
success=WritePrivateProfileString("BackUp","File4",backFile,App.Path&"\Sims.ini")
Case"5"
success=WritePrivateProfileString("BackUp","File5",backFile,App.Path&"\Sims.ini")
EndSelect
lbTime.Caption=lbTime.Caption+1
IflbTime.Caption=6Then
lbTime.Caption=1
EndIf
success=WritePrivateProfileString("BackUp","Time",lbTime.Caption,App.Path&"\Sims.ini")
EndSub
PrivateSubcmdExit_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Setcn=NewADODB.Connection
Ifcn.State=adStateOpenThencn.Close
Withcn
.ConnectionTimeout=10
.Provider="sqloledb"
.ConnectionString="datasource=.;initialcatalog=master;userid=sa;password=;"
.Open
EndWith
EndSub
4.5发布应用程序
在VisualBasic的集成开发环境中创建好车站售票管理系统后,并无意味着全部工作已完成,此时生成的应用程序只能在VisualBasic的集成环境中运行,要想使应用程序能够脱离VisualBasic的集成开发环境,首先要对车站售票管理程序进行编译并且生成.exe或其他类型的文件,然后调用打包和展开向导创建安装程序。
4.5.1编译应用程序
编译车站售票管理程序就是将创建的应用程序以及它的工程文件合并成一个可执行文件。在发布车站售票管理应用程序之前,首先应该使用测试和调试工具对改应用程序进行前面测试,在排除了所有可能的错误后,才可以开始对应用程序进行编译。
编译应用程序的主要目的如下;
*使应用程序转入和运行更快。
*给发布应用程序作准备。
*使用应用程序更安全。
将应用程序进行编译后,VisualBasic将工程中的所有文件进行组织并将这些工程文件转化成一个可执行的文件.exe。
VisualBasic提供APP对象来存储应用程序的有关信息属性,例如,公司名,产品名,版本以及其他相关信息。在设计中,可以通过这些属性来告诉用户一些重要的信息,在应用程序运行时用VisualBasic代码读出这些属性值,也可以在Windows资源管理器中观察应用程序对象的版本信息属性值。右击编译过的.exe文件,然后从快捷菜单中选择"属性"命令打开"属性"对话框的版本标签,就可以看到应用程序的版本信息。
当完成当前工程的APP对象的属性后,就可以编译代码了。VisualBasic6.0支持两种编译格式:P代码和本地代码。选择P代码格式编译的应用程序生成的可执行文件较小,选择本地代码编译的应用程序生成的可执行文件要大的多,但是可执行文件的运行速度比较快。
因此,车站售票管理系统采用的视本地代码的编译格式。
4.5.2打包应用程序
创建VisualBasic应用程序后,可以将创建的车站售票管理应用程序通过磁盘,关盘,网络等途径自由发布,一般来说,发布应用程序必须经过下面的两个步骤:
1、打包
必须将应用程序文件打包为一个或多个可以部署到选定位置的.cab文件(.cab文件是一种压缩文件),对于某些类型的软件包,还必须为其创建安装程序。
2、部署
必须将打包的应用程序放置到适当的位置,以便用户来安装应用程序。
可以使用两种工具来打包和发布应用程序。
*打包和展开向导(PackageandDeployment)
*VisualBasic安装软件提供的安装工具包。
打包和展开向导通过提供有关如何配置.cab文件的选项,使发布应用程序所包含的许多步骤得以自动运行,这是用户一般所采用的方法。
使用打包和展开向导进行打包的第一个步骤就是选择一个工程,然后单击打包按钮,开始创建一个可以发布的应用程序。第三步,如果没有编译工程,打包和展开向导会要求编译工程。工程编译完成后,向导询问想制作什么类型的包,我们这里使用向导制作安装程序。当向导完成制作安装包以后,它会自动生成一个带有很多重要信息的报告。
4.5.3发布应用程序的步骤
将车站售票管理系统打包后,制作安装程序的过程并没有结束,必须将打包后的应用程序发布到一个媒体上,比如软盘,光盘等,发布车站售票管理系统的主要步骤如下:选择"车站售票管理系统"这个包,然后指定把这个包发布到指定文件夹中,选择发布的媒体,就可以完成"车站售票管理系统"的发布工作了。
第五章结论及体会
一个大型的计算机管理系统必须有一个正确的设计指导思想,通过合理的选择数据结构,操作系统以及开发环境,构成一个完善的网络系统,才能充分发挥计算机信息管理优势。现代化的车站售票是集预定车票、售票、退票、车次查询、报表及其他各种服务,车站售票组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。
传统手工的车站售票管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了车站售票管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。
在软件的编写过程中,我充分体会了软件编程工作者的辛苦,因为每一个细微的细节都必须十分的注意,如果稍有不慎,就会全盘皆输,而且往往很多的时候,程序我自己觉得非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。
在开始编写程序的时候,我看到别人的软件功能非常的详细,而且界面非常的漂亮,总希望自己的软件也非常的完善,但是,经过二个月的学习,发现编一个优秀的软件决不是一蹴而就的事情,需要长时间的积累和经验,而这个方面又是我的弱项,因此,在朋友的帮助下,我终于认清自己的不足及劣势,不要贪图大而全,只要尽我所能,编制一个实用简单的软件也是件很不容易的事情。
在反反复复的学习及不耻下问之下,我的辛勤努力有了汇报,终于做出了一个简单的软件,虽然这个软件的功能非常的简单,而且我想,在实际的运用中,肯定会有所不足,因为车站售票管理工作的内容非常的丰富,我涉及到的仅仅是学生管理的一部分简单内容,离实际的客户需求肯定还有一定的差距。但是,它毕竟代表了我二个月辛勤的结晶。
由于我的知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能过少,界面不够醒目等问题,我会在工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美。
在本系统的设计过程和论文编写过程中,很多老师、同事和朋友都给与了我许多无私的帮助,尤其是我的导师给我的论文提出了很多宝贵的修改意见,在这里,我向这些无私帮助我的人表示衷心的感谢。
参考文献
1、《VisualBasic6.0数据库开发指南》王福成、周铁柱、黄淼云等编著清华大学出版社2000年6月第一版
2、《ASP.NET入门经典:VB.NET编程篇》崔洪斌等译清华大学出版社2002年05月第一版
3、《VB.NET编程实例详解(含盘)》王华杰编著中国铁道出版社2002年04月第一版
4、《VB.NET高级编程》康博译清华大学出版社2002年03月第一版
5、《InstantVB.NET实例解析VB.NET应用编程》张龙卿编写北京希望电子出版社2002年01月第一版
6、《XML编程--使用VB和ASP》[美]MarkWilson,[美]TraceyWilson著,健莲科技译中国电力出版社2001年06月第一版
7、《数据库设计与编程实例详解》电子工业出版社2001年02月第一版
8、《编程技巧及故障排除即时通(VB篇)》清华天则工作室编著兵器工业出版社2001年02月第一版
9、《引人入胜InstallShield6.x/VB/VC/Delphi安装程序设计与制作(含盘)》张君编著上海书店2000年11月第一版
10、《VB6.0中文版教程》新智工作室编著电子工业出版社2000年03月第一版
11、《企业管理的计算机化》威廉·谢尔上海科学技术文献出版社2000年
??
??
??
??
I
第三章:结论及体会
上一篇:
VB火车售票系统(无论文)(论文和程序)
下一篇:
科研管理杂志简介