源管理模块设计
火车资源管理模块设计和飞机资源管理模块设计的基本思想和结构大体上相似,这里以飞机管理模块设计为例来说明。
飞机资源管理模块可以实现以下功能:
●添加飞机资源信息;
●修改飞机资源信息;
●删除飞机资源信息;
●查看飞机资源信息。
5.12.1设计飞机资源编辑窗体
创建一个新窗体,窗体名称设置为FrmPlaneEdit。窗体FrmPlaneEdit的布局如图5.12所示。
图5.12窗体FrmPlaneEdit的布局
窗体FrmPlaneEdit中增加了"航班周期"的处理,下面介绍一下FrmPlaneEdit中的主要代码。
1.Form_Load过程
当FrmPlaneEdit窗体启动时,将触发Form_Load事件,对应的代码如下:
PrivateSubForm_Load()
DimTmpCycleAsInteger
'将航班周期字符串折分单个字符,并保存在变量TmpCycle中
'然后根据变量TmpCycle的值,决定航班周期的显示
DoWhileOriCycle<>""
TmpCycle=Val(Left(OriCycle,1))
OriCycle=Right(OriCycle,Len(OriCycle)-1)
SelectCaseTmpCycle
Case1
Check1.Value=1
Case2
Check2.Value=1
Case3
Check3.Value=1
Case4
Check4.Value=1
Case5
Check5.Value=1
Case6
Check6.Value=1
Case7
Check7.Value=1
EndSelect
Loop
EndSub
2.Cmd_Ok_Click过程
当用户单击"确定"按钮时,将触发Cmd_Ok_Click事件,对应的代码如下:
PrivateSubCmd_OK_Click()
DimTmpCycleAsString
'检查用户输入数据的有效性
IfTrim(txtAirCom)=""Then
MsgBox"请输入航空公司"
txtAirCom.SetFocus
ExitSub
EndIf
IfTrim(txtSairport)=""Then
MsgBox"请输入起飞机场"
txtSairport.SetFocus
ExitSub
EndIf
IfTrim(txtEairport)=""Then
MsgBox"请输入抵达机场"
txtEairport.SetFocus
ExitSub
EndIf
'把用户输入的数据赋值到MyPlane对象的成员变量中
WithMyPlane
.AirCom=MakeStr(txtAirCom)
.Pno=MakeStr(txtPno)
.Sairport=MakeStr(txtSairport)
.Eairport=MakeStr(txtEairport)
.Stime=MakeStr(txtStime)
.Etime=MakeStr(txtEtime)
.Price1=Val(txtPrice1)
.Price2=Val(txtPrice2)
'TmpCycle用来保存飞机的航班周期字符串
TmpCycle=""
IfCheck1.Value=1Then
TmpCycle=TmpCycle+"1"
EndIf
IfCheck2.Value=1Then
TmpCycle=TmpCycle+"2"
EndIf
IfCheck3.Value=1Then
TmpCycle=TmpCycle+"3"
EndIf
IfCheck4.Value=1Then
TmpCycle=TmpCycle+"4"
EndIf
IfCheck5.Value=1Then
TmpCycle=TmpCycle+"5"
EndIf
IfCheck6.Value=1Then
TmpCycle=TmpCycle+"6"
EndIf
IfCheck7.Value=1Then
TmpCycle=TmpCycle+"7"
EndIf
MyPlane.Cycle=TmpCycle
'判断飞机信息是否已经在数据库中存在
IfModify=FalseOrOriPno<>Trim(txtPno)Or_
OriSairport<>Trim(txtSairport)OrOriEairport<>Trim(txtEairport)Then
If.In_DB(MakeStr(txtPno),MakeStr(txtSairport),MakeStr(txtEairport))=TrueThen
MsgBox"当前数据已经存在,请重新输入"
txtPno.SetFocus
txtPno.SelStart=0
txtPno.SelLength=Len(txtPno)
ExitSub
EndIf
EndIf
'根据变量Modify决定是插入数据,还是修改数据
IfModify=FalseThen
.Insert
Else
.Update(OriId)
EndIf
EndWith
'关闭窗体
UnloadMe
EndSub
程序中使用航班周期字符串来描述航班周期的信息。规定,航班周期字符串由一组数字组成,如果星期一有航班,则航班周期字符串中包含字符"1":如果星期二有航班,则航班周期字符串中包含字符"2":以次类推,星期六对应字符"6",星期日对应字符"7"。
当启动飞机资源编辑窗体,FrmPlaneEdit时,程序将从数据库中读取相应的航班周期字符串,并把它折分成单个的数字,然后通常复选框显示在窗体中。当用户单击"确定"按钮保存飞机资源信息时,程序将把用户选择的航班周期生成航班周期字符串,并保存在数据库中。
5.13旅游线路管理模块设计
旅游线路管理模块可以实现以下功能:
●添加旅游线路信息;
●修改旅游线路信息;
●删除旅游线路信息;
●查看旅游线路信息。
5.13.1设计旅游线路管理窗体
创建一个新窗体,窗体名称设置为FrmLineMan。窗体FrmLineMan的布局如图5.13所示。
图5.13窗体FrmLineMan的布局
下面分析窗体FrmLineMan中几个主要过程的代码。
(1)、Xl_refresh过程
Xl_refresh()过程的作用是根据用户选择的地域,把所在地域的所有旅游线路都读取到
局数组ArrLind()中,然后再依次添加到List1列表里,对应的代码如下:
PrivateSubXl_refresh()
DimiAsInteger
DimTmpIdAsLong
'根据用户的选择,读取地域编号
TmpId=MyArea.GetId(ComboName.Text)
'根据地域编号TmpId,读取指定地域的所有线路
MyLine.Loadline_ByArea(TmpId)
List1.Clear
i=0
'把读取的所有线路添加到列表中
DoWhileArrLine(i)<>""
List1.AddItemArrLine(i)
i=i+1
Loop
EndSub
(2)、Form_Load过程
PrivateSubForm_Load()
ComboType.AddItem("本市")
ComboType.AddItem("外埠")
ComboType.AddItem("国外")
'设置地域类型
ComboType.ListIndex=0
'根据指定的地域类型,读取地域名称
CallLoadarea(1,ComboName)
IfComboName.ListCount>0Then
ComboName.ListIndex=0
EndIf
'把所在地域的旅游线路装入列表中
Xl_refresh
EndSub
添加、修改和删除功能的实现在介绍各旅游资源管理窗体时,已经做了比较详细的介绍,这里不再作介绍说明。
5.13.2设计旅游线路编辑窗体
创建一个新窗体,窗体名称设置为FrmLineEdit。窗体FrmLineEdit的布局如图5.13所示。
旅游线路信息模块是整个旅游资源及线路管理系统设计的重点部分,它既包括旅游资源管理中的信息,也对旅游中的线路进行了设置和管理。它需要对景点报价、宾馆报价、餐厅报价、娱乐报价、导游费以及其他一些费用进行计算和设置,还要对交通费用进行设置和计算。因为在我们实际旅游过程中,这些都是必须要经过的,也是十分重要的,然而对于对于旅游社和旅游团来说,他们必须对所有的线路和费用了解地十分透彻和清楚,才能在实际的旅游过程中通过成本费用和线路报价之间的差额来获取利润。因此,在本系统中,对这一部分进行了比较详细地说明和设计。
下面分析窗体FrmLineEdit中几个过程的代码。
(1)、Check过程
在用户保存线路之前,需要检查录入数据的有效性。这个工作由Check()过程来完成,
应的代码如下:
PublicFunctionCheck()AsBoolean
WithMyLine
'检查线路名称
IfLen(Trim(txtName))=0Then
MsgBox"请输入线路名称"
txtName.SetFocus
Check=False
ExitFunction
EndIf
'检查行程天数
IfVal(txtDays)<=0Then
MsgBox"请输入行程天数"
txtDays.SetFocus
txtDays.SelStart=0
txtDays.SelLength=Len(Trim(txtDays))
Check=False
ExitFunction
EndIf
'检查团队类别
IfComboType.ListIndex<0Then
MsgBox"请设置团队类别"
ComboType.SetFocus
Check=False
ExitFunction
EndIf
'检查保险
IfVal(txtInsFee)<0Then
MsgBox"保险费应大于0"
txtInsFee.SetFocus
txtInsFee.SelStart=0
txtInsFee.SelLength=Len(Trim(txtInsFee))
Check=False
ExitFunction
EndIf
EndWith
Check=True
EndFunction
(2)、SetAmt过程
SetAmt()过程的功能是根据用户录入的线路数据计算并显示线路的成本、线路报价和利润率。对应的代码如下:
PublicSubSetAmt()
'成本=景点费用共计+宾馆费用共计+娱乐费用共计+用餐费用共计+交通费用共计+其他费用+导游费
lblCostAmt=Val(lblplaceAmt)+Val(lblHotelAmt)+Val(lblamuseAmt)_
+Val(lblResAmt)+Val(lblTrafAmt)+Val(txtOthers)_
+Val(txtTour)
'线路报价=成本+利润
lblPrice=Val(lblCostAmt)+Val(txtBenefit)
'计算利润率
IfVal(lblPrice)=0Then
lblBrate=0
Else
lblBrate=Trim(Round(Val(txtBenefit)*100/Val(lblPrice),2))+"%"
EndIf
EndSub
(1)、Refresh_lplace过程
Refresh_lplace()过程的功能是为Adodc1控件设置数据源,从而决定在DataGrid1控件中显示的线路景点数据内容,对应的代码如下:
PrivateSubRefresh_lplace()
IfComboType.ListIndex=0Then'学生线路
Adodc1.RecordSource="SELECTa.AreaNameAs所在地域,p.PnameAs景点名称,"_
+"p.Child_PriceAs票价FROMPlacep,lplacel,AreaaWHEREl.lid="_
+Trim(MyLine.lid)+"Andl.pid=p.pidAnda.AreaId=p.AreaId"
Else'成人线路
Adodc1.RecordSource="SELECTa.AreaNameAs所在地域,p.pNameAs景点名称,"_
+"p.Adult_PriceAs票价FROMPlacep,lplacel,AreaaWHEREl.lid="_
+Trim(MyLine.lid)+"Andl.pid=p.pidAnda.AreaId=p.AreaId"
EndIf
Adodc1.Refresh
SetPlaceAmt
EndSub
在显示线路景点数据时,需要根据数据库中记录的线路景点信息从景点资源表Place中提取景点价格。如果当前线路是学生线路,则提取学生价格;如果当前线路是成人线路,则提取成人价格。
Refresh_lhote()过程用于显示线路宾馆数据的内容,Refresh_lres()过程用于显示线路用餐数据的内容,Refresh_lres()过程用于显示线路娱乐数据的内容。这些过程的实现方法都与Refresh_lplace()过程相似。
在此,整个旅游资源及线路管理信息系统的基本界面设计完成了。本系统界面设计比较简洁、直观,易懂、易操作。用户根据界面的设计要求很快就可以了解基本的操作和使用方
5.14系统调试、运行及结果
在系统界面和程序编写后,接下来的工作便是调试、运行过程。因为任何程序开发人员都不能保证在编写程序后就一定是正确无误的,程序的初步编写只是按照系统设计和用户的需求要求,基本实现要达到的功能,很多的细节和我们没有考虑到的地方都需要通过程序调试和运行过程表现出来。因此,程序调试和运行过程在整个软件开发过程中是十分重要的一个部分。下面就有关我自己在系统调试和运行过程中所遇到的问题和解决方法作一些简要描述。
5.14.1VB和数据库连接时的错误调试
在编译和调试的过程中,有很多的时候都是由于VB和数据库连接时的错误。这种错误在本系统中往往会出现如下的提示:"无法获得连接句柄!"、"数据库访问语句执行失败""无法连接ODBC!"等一系列的错误提示。解决的方法如下:
1.在Windows98的控制面板中找到ODBCDataSources选项,在ODBCDataSourcesAdministrator中,把在数据库中建立的数据库表添加到SystemDSN中,在登录SQLServer2000服务器时,用户名和密码一定要和SQLServer2000在创建时的用户名和密码一样,否则无法连接到数据库。
2.类模块中定义数据库信息常量时,如下的四项缺一不可。
PublicConstDATABASEAsString="newdb"
PublicConstDSNAsString="newdb"
PublicConstDB_USER_NAMEAsString="sa"
PublicConstDB_PASSWORDAsString="sa"
只要缺少其中任何一项,都会出现编译错误,都无法连接到数据库。
5.14.2数据库访问控件中无数据的调试
有时候在数据显示控件DataGrid中无任何数据显示。如通过Adod控件来绑定数据有时候只能对单表进行连接,但在大多数情况下,都需要对多个表进行连接。这就需要我们自己进行程序的编写和数据库SQL查询语句的选择。如通过Area表中的AreaId字段和Place表中的AreaId字段进行自然连接,在本例中,假如没有获得自动添加的标识符。则在DataGrid控件中无任何的数据显示。解决的方法如下:
1.在创建数据库表时,在用脚本文件创建表时一定要使用primarykey关键字和IDENTITY关键字结合来获得自动增加的标识号。
2.可以在SQLServer2000服务器的企业管理器中手动对数据库表进行修改,在选定的表中单击设计表,把要选择的字段设置为主键,在属性中把标识设为"是",标识递增量设为"1"。
3.为了避免在编写程序时要写许多重复的查询语句代码,我们可以把要连接的表变成视图,在后面的调用中只要直接对这些视图进行调用和操作,比在VB中写查询语句代码要方便得多。
5.14.3VB中下拉文本框的调试
在界面设计时,为了用户使用的方便,我们在许多界面中都用到了下拉文本框。在这里主要讲解一下ComboBox和DataCombo两种文本框的异同和各自使用的方法及调试时所遇到的一些问题。例如,两者都可以通过ADODC控件来进行绑定,都可以显示出所需要显示的数据字段名称。但所得到的结果却不一样。
1.ComboBox通过ADODC控件绑定所得到的下拉文本框,每次只能显示一条数据,要选择其他的数据必须通过ADODC控件按钮的上一条和下一条选择按钮进行选择时,才能显示所要得到的数据。因此,在实际应用中,如果是要对ComboBox下拉框进行设置时,通常是用户自己定义一个数组,把要选择的数据库内容添加到一个数组中,然后通过ComboBox控件的AddItem属性把数组中的内容依次添加到下拉文本框中。这样就可以显示出全部的数据,这种方法的技巧和灵活性比较强,使用比较多。
2.在选择比较单一的情况下,可以通过DataCombo控件来选择所要显示的字段名称,用它来绑定ADODC,设置其DataField和RowSource属性。就可以把要显示的数据库表中的一行字段名全部添加到下拉文本框中。这样可以给用户在实际操作过程中带来很大的方便作用。也给程序的编写带来了紧密性。
其他还有很多的问题和很多方法上的技巧,这里不一一阐述了,只是需要在实际应用中发很多的时间去考虑,或者发很多的精力去查阅相关的资料,有时候还要向老师或有经验的同学请教。在解决这些问题的时候往往都是比较兴奋和高兴的事,但解决的过程通常使人筋疲力尽。
5.14.4系统运行及结果
通过以上的总体方案设计和代码调试后,系统的每个模块基本上都能运行,许多运行结果如主界面设计中的图例说明一样。它们能完成对数据的基本查询、添加、删除、修改等操作,对旅游过程中的每一个比较重要的环节都有一个相应的模块设置。如地域选择、线路选择、景点选择、宾馆选择、餐厅选择等,用户可以根据需要对它们进行设置和操作。
先进的系统设计方法使各模块可独立存在;整个软件易拆分,易组装,灵活方便;运行速度快,操作简便,保证软硬件双重加密,数据安全可靠;良好的系统开放能力和可扩展性,使系统可根据各个不同企事业特点,为其定制增添各类业务模块,同时还可与客户的其它信息系统进行数据互联。
6.总结
时光飞逝,曰月如梭,转眼就到了写毕业论文结束语的时候了,其实也是写大学四年生活结束语的时候,回想起来,真还有不少的回忆,收获和感叹。就拿收获来说吧,毕业论文的"峻工"真的使我强烈的感觉到了。大四的我经过这次毕业论文的设计,确实知道自己知道了一些东西,当然也学到了不少的新东西。整个设计过程是一个充满酸,甜,苦,辣,失败和成功的艰辛旅程,也可以说是"路漫漫其修远兮,吾将是下而求索"的过程。
作为一个即将毕业的大学生,将自己的所学知识很好的应用到实际中去,是决定自己是否学有所成的关键。我感觉自己对所学知识有所遗忘,这次毕业设计正好为我提供了一个这样的机会,进一步地巩固了书本知识;另外我也想利用这个宝贵的机会,学习和了解书本以外的软件开发方面的知识。使自己开阔眼界,提高素质,更好地开展毕业的准备工作。
这次毕业论文的设计时间为一个学期。开始是老师把任务分配给我们,使我们明白这次设计的大体情况,包括设计的任务,目的,要求,时间安排等,然后我们一组各自行动,"工程"开始启动,一直到工程完毕,这期间要做的事简直是无数,如查找国内外这个研究方向的发展,系统方案的比较,选择,确定,系统的硬件设计,软件设计等等。
这次毕业设计,要用到许多新的知识,我遇到许多新问题,产生许多新思路,要综合运用以前的所学所闻来构成一个系统。自学新知识既是一个痛苦,辛酸,磨练的过程,也是一个惊奇,喜悦,收获的过程。一道一道障碍,一个一个难关,在你的面前,怎么办?于是拿出那种"天生我才必有用""车到山前必有路"的自信心,逐个攻克,个个击破,最终成为登上顶峰的征服者,领略那种"一览众山小"的绝妙。有时也有些问题想了好几天,好几夜,百思不得其解而突然灵感出现,或不经意间得到那种"山重水尽疑无路,柳暗花明又一村"、"踏破铁鞋无览处,得来全不费功夫"的感觉也末尝不爽。
四年的大学生活就要结束了,我满载而归。不过,我又要离去,开赴新的战场,走向新的起点,迎接新的有挑战,再造新的辉煌。
作为一个软件开发人员,需要较强的实践能力。通过对该系统的设计,本人得到了以下几点心得体会:
(1)、在接到任务后,首先必须进行系统的详细分析,理解系统需要完成的功能和所能达到的要求;然后进行系统功能模块划分,找出模块之间的关系;最后根据要求设计出系统流程结构图。
(2)、在信息管理系统开发中,需要涉及许多数据库文件。能否很好的完成系统功能设计,数据库文件设计十分重要,我们必须详细的考虑到需要那些数据库文件,甚至于每个数据库文件中应包含那些字段、字段类型、字段大小都要仔细考究。最后必须建立起数据库文件之间的连接关系。
(3)、在系统开发中,会遇到很多不同类型的问题,为了避免走弯路,提高工作效率,下面介绍在系统开发中体会到的几点技巧:
●使用创建表的脚本文件,可以提高创建表结构的速度。
●多使用类模块,提高程序开发效率。
●在很难确定数组大小时,使用动态数组。
●巧妙地利用数据控件,实现数据动态管理。
●熟练的使用函数功能。
总之,开发信息管理系统软件,不仅要有较强的理论知识,而且要有很强的实践能力,才能很好地满足用户的要求和提高自己的工作效率。
7.致谢
首先感谢计算机系领导和老师对我们这次毕业设计的重视和关心,系部召开几次动员大会来动员和鼓励同学们把毕业设计做好。使我们认识到毕业设计是走入社会前的重要一课,是自己在大学四年所学知识的综合应用,也是锻炼我们自己动手、思考能力综合性最强的一次设计,对以后的工作方向有一定的影响作用。这些都成了我们无穷的动力源泉。
在这里我要特别感谢我的指导老师唐北平老师,唐老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少地提高,这对于我以后的工作和学习都是一种巨大的帮助,感谢他耐心的辅导和对我们无私无谓的关心和爱护。
同时也感谢计算机机房的老师给我们提供了良好的开发环境和空间,还给我们带来了丰富的网上资源。这对我们的设计有很大的帮助和方便作用。
另外,一些别的指导老师和一些学习成绩好的同学也帮助解决了不少的难点,使得系统能及时开发完成,还有同组的同学同样也给与我不少帮助,在这里衷心地向你们说声感谢。
此致
敬礼!
8.参考资料及文献
1《VisualBasic5.0入门与技巧》吕丽名编著人民邮电出版社
2《VisualBasic6数据库编程大全》弗洛克维克(美)电子工业出版社(2000)
3《VisualBasic6数据库程序设计高手》温贤发科学出版社(2001)
4《VisualBasic开发指南:SQLServer篇》邱仲潘电子工业出版社(2000)
5《VisualBasic编程技巧:网络与数据库篇》清宏计算机工作室机械工业出版社(2001)
6《Visualbasic+SQLServer数据库应用系统开发与实例》人民邮电出版社
7《VisualBasic.NET数据库开发典型实例》电子工业出版社
8《数据库系统概论》(第三版)萨师煊高等教育出版社2002年
9《数据库设计与开发教程》[美]PeterRob电子工业出版社2002年
10《VisualBasic数据库开发典型实例》王兴晶电子工业出版社2001年
11《VisualBasic6数据库开发人员指南》[美]RogerJennings机械工业出版社
目录
1.选题背景 1
1.1旅游资源前景 1
1.2数据库和信息管理系统前景 2
1.2.1管理信息系统概念 2
1.2.2数据库的基本概念 3
2.需求分析 4
2.1软件的需求分析 4
2.2需求分析阶段对系统的综合要求有四个方面: 4
3.方案论证 5
3.1技术可行性 5
3.2开发工具及开发平台的选择 5
3.3采用SQLSERVER2000数据库的优点 6
4.服务器与客户端配置 6
4.1启动、暂停和停止SQLSERVER2000 6
4.2配置ODBC数据源 7
5.系统总体设计规划 8
5.1系统功能描述 9
5.2功能模块划分 10
5.3系统流程分析 12
5.4数据库设计 13
5.4.1创建数据库表: 13
5.5数据库访问 21
5.5.1ODBC数据库访问技术 21
5.5.2数据库访问控件 22
5.6功能模块规划 23
5.6.1添加模块 23
5.6.2添加类模块 23
5.7系统主界面设计 24
5.7.1设计主界面 24
5.7.2在主界面中添加代码 25
5.8登录模块设计 25
5.8.1设计登录窗体 26
5.8.2在登录窗体中添加代码 26
5.9旅游地域资源管理模块设计 28
5.9.1设计旅游地域资源编辑窗体 28
5.9.2设计旅游地域资源管理窗体 30
5.10景点资源管理模块设计 36
5.10.1设计景点资源编辑窗体 36
5.10.2设计景点资源管理窗体 39
5.11宾馆、餐厅、娱乐资源管理模块设计 43
5.11.1设计娱乐资源编辑窗体 43
5.11.2设计娱乐项目管理窗体 44
5.11.3设计娱乐资源管理窗体 46
5.12火车、飞机资源管理模块设计 47
5.12.1设计飞机资源编辑窗体 47
5.13旅游线路管理模块设计 52
5.13.1设计旅游线路管理窗体 52
5.13.2设计旅游线路编辑窗体 54
5.14系统调试、运行及结果 58
5.14.1VB和数据库连接时的错误调试 58
5.14.2数据库访问控件中无数据的调试 59
5.14.3VB中下拉文本框的调试 59
5.14.4系统运行及结果 60
6.总结 60
7.致谢 62
8.参考资料及文献 63
??
??
??
??
旅游资源及线路管理系统
1
第页
上一篇:
VB文档管理系统+论文(论文和程序)
下一篇:
多功能数据挖掘平台的CS架构扩展的研究与实现