旅游管理系统-毕业设计论文_第1页
旅游管理系统-毕业设计论文_第2页
旅游管理系统-毕业设计论文_第3页
旅游管理系统-毕业设计论文_第4页
旅游管理系统-毕业设计论文_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

旅游管理系统—毕业设计(论文)旅游管理系统1(选题背景计算机软件开发在现代已成为一种重要的行业,发展前景越来越好,软件开发需求人员也越来越大,尤其是数据库和信息管理方面的开发,更是供不应求。在毕业之即,作为计算机专业的学生,为了适应社会的需要,加强自己的编程能力.在毕业设计选题时,我坚定不移地选择了数据库应用系统开发方面的课题。下面将详细分析:1.1旅游资源前景旅游业是当今国际国内发展最快的产业之一,也是世界各国互相理解、交流、,从而增进经济全球化的重要手段,因此各国政府都非常重视旅游业的发展.我国现代旅游业只有短短历史,但已经获得了举世瞩目的成绩:1992年国内旅游人次为3.3亿人次,收入250亿元;1999年到达7.19亿人次,收入2831亿元;再创新高,到达7。44亿人次,收入3522.26亿元.1999年,我国国内国际旅游总收入超过了4000亿元人民币,创汇140亿美元,比1978年增长48倍。,我国旅游人数和收入已经从1978年的世界第41位跃至前10名之列.在制定“十五"(至)计划和跨世纪发展规划中,中国有二十四个省把旅游作为在经济构造调整中优先发展的支柱产业、重点产业。按照规划,估计到,中国旅游业总收入将超过3。3万亿元人民币,相称于国内生产总值的百分之八,真正成为国民经济的支柱产业。加入WTO后来旅游业成为了愈加活跃、竞争愈加剧烈、发展愈加迅速的第三产业的支柱之一。目前,我国旅行社信息化建设落后,旅行社电脑的用途多数是打打字。线路销售手工操作,效率低下轻易出错,客户资料不易整顿,大量丢失,这些都是限制我们旅游发展的瓶颈了。而目前市场的旅游管理软件,动辄几万元,远非我们所乐意承受的。旅游业普遍存在着企业规模较小,管理不规范等弱点.由于旅游波及吃、住、行、游、购、娱等诸多要素,并且这些要素又分散在不一样的地区中,一种人不也许全面掌握所有的信息。一旦掌握某方面的信息的人离开企业,就会对企业的经营导致负面影响。旅游资源及线路管理系统可以把多种旅游资源分类存储管理,通过网络实现资源共享,不仅以便快捷,并且不会由于人员流动影响企业的经营,是旅游社在剧烈的市场竞争中的坚强后盾。1。2数据库和信息管理系统前景社会的进步,科学的发达,经济的高速发展,使管理工作越来越离不开信息,信息处理已成为当今世间上一项重要的社会活动.伴随微型计算机日益增多,它在各行各业中得到迅速推广和应用,已经深入到社会的各个领域,计算机已经成为现代信息处理的重要工具。随之而来的就是各行各业对计算机应用软件的大量需求。1.2。1管理信息系统概念管理信息系统(MIS,ManagementInformationSystem),是一种由人、计算机等构成的能进行信息的搜集、传送、储存、维护和使用的系统,可以实测企业的多种运行状况,并运用过去的历史数据预测未来,从企业全局的角度出发辅助企业进行决策,运用信息控制企业的行为,协助企业实现其规划目的。这里给出的定义强调了管理信息系统的功能和性质,也强调了管理信息系统中的计算机对企业管理而言只是一种工具.管理信息系统是信息系统的重要分支之一,通过30数年的发展,已经成为一种具有自身概念、理论、构造、体系和开发措施的覆盖多学科的新学科.信息管理者信息源信息处理信息顾客图4.2。1管理信息总体构造图而数据和信息的结合在现代社会生活中体现出了越来越强大的功能和作用,数据已经渗透到了社会中的每一种角落和行业,与我们的生活息息有关。伴随计算机的日益普及和网络的发展,数据库的应用范围越来越广,数据库应用的功能也越来越强。1。2.2数据库的基本概念(1)数据库数据库(database,简称DB),即数据的仓库,是存储在计算机内、有组织的、可共享的有关数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和扩展性,并可为多种顾客共享。数据库中的数据是高度构造化的,可以存储大量的数据,并且可以以便地进行数据的查询,此外数据库还具有很好的保护安全和维护数据一致性的措施,可以以便数据的共享.(2)数据库管理系统数据库管理系统(databasemanagementsystem,简称DBMS)是在操作系统支持下,为数据库的建立、使用和维护而配置的软件系统,数据库管理系统是位于顾客与操作系统之间的一层数据管理软件,它在操作系统的基础上。对数据库进行管理和控制,运用数据库管理系统提供的一系列命令,顾客可以以便地建立数据库和操作数据,例如建表、向表中添加、删除记录等。顾客使用的多种数据库命令以及数据库应用程序的运行,都要通过数据库管理系统来实现。此外,数据库管理系统还要保证数据的安全性、完整性、多顾客对数据库的并发使用及发生故障后的系统恢复等任务。(3)数据库应用程序数据库应用程序是指用VisualBasic或Delphi等开发工具开发的程序,用来实现某种详细的功能,例如旅游资源及线路管理系统,多种信息管理系统等.数据库应用程序是在操作系统和数据库管理系统的支持下开发和运行的,它运用数据库管理系统提供的多种手段访问一种或多种数据库及数据.由于旅游业的兴起和迅速发展,需要一种高效、迅速及以便地系统来管理整个旅游过程中的基本信息和资源,以减少人力、物力、时间等多方面资源的挥霍,给企业或企业带来更多的利润,这就使得信息管理和数据库管理系统得到了充足的运用。本旅游资源及线路管理系统就是计算机信息管理和数据库应用程序开发相结合的产物。2(需求分析2。1软件的需求分析软件需求分析是指顾客对目的系统在功能、性能、行为、设计约束等方面的期望。需求分析的任务是确定系统必须完毕哪些工作,也就是对目的系统提出完整、精确、清晰、详细的规定.需求分析的成果是系统开发的基础,关系到工程的成败和软件产品的质量.2。2需求分析阶段对系统的综合规定有四个方面:(1)系统功能规定应当划分出系统必须完毕的因此功能.(2)系统性能规定系统需要的存储容量以及后援存储,重新启动和安全性等方面的考虑都属于性能规定。(3)运行规定此类规定集中体现为对运行时所处环境的规定.(4)未来也许提出的规定应当明确地列出那些虽然不属于目前系统开发范围,不过据分析未来很也许会提出来的规定。这样做的目的是在设计过程中对系统未来也许的扩充和修改预做,以便一旦需要时能比较轻易地进行这种扩充和修改。通过这些需求分析来确定整个系统的功能模块设计和界面的设置和安排。需求分析在整个软件开发设计中起着十分重要的作用。因此,在实际的工程中,应当接触产品的最终顾客或者最终顾客代表.缺乏这样的接触,对于许多需求问题,就无法得到可靠的回答。假如缺乏可靠的需求信息,就无法生产出高质量的产品。实际上,使用不可靠的需求信息,产品无疑是不能使用的,并且常常不是顾客所想要的。3(方案论证3。1技术可行性旅游资源及线路管理系统的实现技术有多种,可以采用老式的客户机/服务器(C/S)型的MIS型架构.此外一种采用Web技术实现。Web技术超越了老式的“客户机/服务器”两层构造,采用三层体系构造:顾客界面层/事务层/数据库层。因此Web构造有着更好的安全性。在顾客机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,数据内容寄存在数据库服务器上。C,S模式是一种分布式的处理模式,用Server进行数据处理,用Client运行前端应用软件,具有如下特点:(1)、系统的可靠性好,可以在网上以便地增长Client或Server,一般增长一种Client,并不需要增长多少Server的开销。(2)、C,S模式支持开放的Client接口和开放的Server接口,往往不依赖于硬件及操作系统平台,便于应用程序的移植。(3)、由于C,S模式采用数据集中,处理分散的模式,主机模式下的DBMS数据完整性得以保留.(4)、由于充当Client的PC机,具有良好的图形界面和丰富的应用软件,使得它的体现能力强,访问数据十分轻易。从而,使C,S模式成为信息平台的发展趋势。3.2开发工具及开发平台的选择本系统采用C/S模式(即客户机-服务器模式),用VB作为应用程序的前端开发工具,与后端的SQLServer数据库相结合的方式来完毕。再加上VB作为一种面向对象的可视化编程工具,具有简朴易学,灵活以便和易于扩充的特点。VB通过配置ODBC数据库连接到SQLServer数据库,再通过ADO、RDO和DAO对这些数据进行访问和操作,这更有便于数据的管理和安全。3.3采用SQLServer数据库的长处SQL可用于所有顾客的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端顾客。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握.SQL为许多任务提供了命令,其中包括:查询数据??在表中插入、修改和删除记录?建立、修改和删除数据对象?控制对数据和数据对象的存取?保证数据库一致性和完整性此前的数据库管理系统为上述各类操作提供单独的语言,而SQL将所有任务统一在一种语言中。4(服务器与客户端配置要以SQLServer为后台数据库开发应用程序,首先要对服务器与各户端进行配置。本节将简朴地简介怎样配置SQLServer服务器和ODBC数据源.4。1启动、暂停和停止SQLServer在缺省状况下,SQLServer安装完毕后,“服务管理器”会自动地添加到系统的“启动”文献夹中,即在系统启动后,自动运行SQLServer服务管理器,可以在系统任务栏中看到它的图标。双击图标,打开SQLServer服务管理器.在服务管理器,可以选择服务器所在的计算机和SQLServer服务,同步可以很轻松地控制SQLServer服务。选中“当启动OS时自动启动服务”复选框,即可关现自动启动服务功能。也可以在“企业管理器"中设置自动启动SQLServer服务。单击“开始”按钮,依次选择“程序"/“SQLServer”/“企业管理器”,打开SQLServer企业管理器。企业管理器可以协助顾客完毕如下工作:?定义SQLServer实例组;?将个别服务器注册到组中;?为每个已注册的服务器配置所有SQLServer选项;?在每个已注册的服务器中创立并管理所有SQLServer数据库、对象、登录、顾客和权限;?在每人已注册的服务器上定义并执行所有SQLServer管理任务;?通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本;唤醒调用SQLServer定义的多种向导。?4.2配置ODBC数据源本书所简介的应用程序实例都是通过配置ODBC数据源连接到SQLServer数据库的.数据源是一种存储定义,它可以记录如下信息:?连接到数据源所使用的ODBC驱动程序。?ODBC驱动程序连接到数据源所使用用的信息;?连接所使用的驱动程序特有的选项。例如,SQLServerODBC数据源可以记录要使用的SQL_92选项,或者驱动程序与否应记录性能记录.客户端上的每个ODBC数据源均有一种唯一的数据源名称(DSN)。SQLServerODBC驱动程序的ODBC数据源包括用于连接到SQLServer实例的所有信息以及任何基本选项。SQLServer使用ODBC数据源ODBC数据源.在“控制面板"中,选择“管理工具"下的“数据源(ODBC)”,启动ODBC数据源管理器。单击“驱动程序”选项卡,可以看到系统统安装的所有ODBC驱动程序,从中可以找到SQLServer的信息,并查看SQLServer的版信息。我们可以按照如下方式将SQLServer数据库添加到ODBC数据源中。1(单击“系统DSN”选项卡,进入系统数据源页面。2(单击“添加”按钮,打开“创立新数据源"对话框.3(在驱动程序列表中,选择SQLServer,然后单击“完毕"按钮,打开“创立数据源向导”窗口.输入数据源名称、阐明和SQLServer服务器。4(单击“下一步”,打开设置身份验证窗口,根据数据库的详细设置选择身份验证方式,一般需要选择“使用顾客输入登录的SQLServer验证”,然后手动地输入登录ID(例如sa)和密码。5(单击“下一步”按钮,打开设置数据库选项对话框.在选择的SQLServer数据库上,存在多种数据库,默认的数据库是master,顾客可以选择自怀创立的数据库,如newdb.顾客还可以在指定服务器中添加数据库,选中“附加数据库文献名称”复选框,为可附加的数据库指定主文献名。这个数据库被附加并用作数据源的默认数据库。请指定主文献的完全途径名和文献名,并在“更改默认的数据库为"框中指定的数据库名字,用作附加数据库的名字.6(单击“下一步”按钮,进入数据源向导的下一种窗口。在这个窗口中,顾客可以批暄用于SQLServer消息的语言、字符设置转换和SQLServer驱动程序是应当使用区域设置.还可以控制运和运行时间较长的查询和驱动程序记录设置的记录。7(单击“完毕”按钮,数据源向导会弹出一种总结汇报,汇总此数据源的所有信息,包括SQLServerODBC驱动程序版本、数据源名称、数据源描述、服务器名称、数据库、语言、与否转换字符数据、日志驱动程序、使用集成安全机制、使用区域设置、预定义的语句选项、使用备用服务器、使用ANSI的空值,填充和警告以及数据加密等。8(单击“测试数据源"按钮,可以栓查数据源配置与否成功。5(系统总体设计规划在通过以上的需求分析、方案论证、开发工具及开发平台的选择、服务器与客户端配置,一切开发前的就绪工作做好后来,我们就可以进入系统的总体开发和设计了.下面重要简介系统的总体设计和规划.5.1系统功能描述本系统所描述的旅游资源及线路管理的重要功能包括:(1)地区信息管理功能?地区信息的录入,包括地区名称和地区类型等信息;?地区信息的修改;?地区信息的删除;?地区信息的查询。(2)景点资源管理功能?景点资源的录入,包括景点编号、景点名称、联络人、票价等信息;?景点资源的修改;?景点资源的删除;?景点资源的查询。(3)宾馆资源管理功能?宾馆资源的录入,包括宾馆编号、宾馆名称、联络人、报价等信息;?宾馆资源的修改;?宾馆资源的删除;?宾馆资源的查询。(4)餐厅资源管理功能?餐厅资源的录入,包括餐厅编号、餐厅名称、联络人、报价等信息;?餐厅资源信息的修改;?餐厅资源信息的删除;?餐厅资源信息的查询。(5)娱乐资源管理功能?娱乐资源信息的录入,包括娱乐厅编号、娱乐厅名称、联络人、报价等信息;?娱乐资源信息的修改;?娱乐资源信息的删除;?娱乐资源信息的查询。(6)交通资源管理功能?火车资源信息管理;?飞机资源信息公里。(7)旅游线路管理功能?旅游线路信息的录入,包括线路编号、线路名称、报价等信息;?旅游线路信息的修改;?旅游线路信息的删除;?旅游线路信息的查询.(8)系统顾客管理功能?系统顾客信息的录入,包括顾客名、密码等信息;?系统顾客信息的修改;?系统顾客信息的删除;?系统顾客信息的查询.5.2功能模块划分从功能描述的内容可以看到,本系统可以实现其完整的功能.根据这些功能,设计出的系统功能模块如下图5.2所示。旅游资源及线路管理系统地景餐娱交旅系宾域点厅乐通游统馆信资资资资线用资息源源源源路户源管管管管管管管管理理理理理理理理火飞车机资资源源管管理理图5.2旅游资源及线路管理系统功能模块示意图在功能模块示意图的树状构造中,每一种叶结点都是一种最小的功能模块。每一种功能模块都需要针对不一样的表完毕相似的数据库操作,即添加记录、修改记录、以及查询显示记录信息.旅游资源及线路管理系统的功能模块之间的关系如图5。2。1所示。旅游线路管理提供数据提供数据提供数据线路地区数据提供数据提供数据线路景点数据景点资源管理地线路域提供数据提供数据线路宾馆数据宾馆资源管理报价信提供数据提供数据及成息线路用餐数据餐厅资源管理本预管算理提供数据提供数据线路娱乐数据娱乐资源管理线路交通数据交通资源管理其他线路数据图5.2.1旅游资源及线路管理系统的功能模块关系图从模块关系图中可以看出,旅游资源信息除了供顾客查阅外,不可认为旅游线路管理提供数据。当顾客需要生成一条旅游线路时,可以从旅游资源里取到最新的数据。线路报价和成本预算也会伴随资源的变化而变化。5。3系统流程分析理解了系统的功能模块划分,以及各模块之间的关系。这是系统总体设计的重要构成部分。假如对系统形成一种完整而全面的认识,还需要进行系统流程分析。所谓系统流程就是顾客在使用系统时的工作过程。多顾客系统的工作流程都是从顾客登录模块开始,对顾客的身份进行认证.身份认证可以分为如下两个过程:(1)确认顾客与否有效的系统顾客;(2)确定顾客的类型。第1个过程决定顾客能否进入系统.第2个过程根据顾客的类型决定顾客的操作权限,从而决定顾客的工作界面。本系统的流程分析如图5.3所示。开始重试否失败是顾客登录失败超过3次退出程序成功顾客管理模块旅游资源及线路管理模块读取顾客类型1管理自己的顾客信息旅游资源管理2管理一般顾客的信息Admin顾客旅游线路管理管理自己的顾客信息5。3系统流程分析图从系统流程分析图中可以看到,每个顾客有3次机会进行身份认证.假如3次输入的顾客名和密码都无法与数据库中的数据匹配,则强制退出系统。5.4数据库设计5。4。1创立数据库表:数据库Travel中包括如下16个表:地区信息表Area、景点资源信息表Place、宾馆资源信息表Hotel、餐厅资源信息表Restaurant、娱乐厅资源信息表Amusement、娱乐项目资源信息表AmuseItem、火车资源信息表Train、飞机资源信息表Plane、线路基本信息表tline、线路景点信息表lplace、线路宾馆信息表lHotel、线路用餐信息表lRes、线路娱乐信息表lamuse、线路火车信息表ltrain、线路飞机信息表lplane、顾客信息表Users。在本系统中由于要用到标识符自动增长,在这里我们不使用企业管理器来创立表,而使用脚本文献创立数据表,这对背面的设计有很大的协助和以便作用。(1)创立表Area创立表Area的脚本文献为Area.sql,它的代码如下:createtableArea(AreaIdintprimarykeyidentity,AreaNamevarchar(40)notnull,AreaTypesmallintnotnull)在使用createtalbe指令创立表时,应当注意使用Primarykey关键字定义表的主键。表中每一行的主键均有唯一值,可以使用主键惟一地标识一行数据.(2)创立表Place创立表Place的脚本文献为Place。sql,它的代码如下:createtableplace(Pidintprimarykeyidentity,Pnamevarchar(200)notnull,Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(10),Adult_priceDecimal(10,2),Child_priceDecimal(10,2),AreaIdint,Input_timechar17)在使用createtable指令创立表时,应当注意使用identity关键字定义表的标识列。Identity属性可以用于获得自动增长的标识号。例如,表place中的Pid字段是标识列,对于新插入表中的记录,它的Pid字段将获得一种自动分派的整型值。对于诸多表中都使用的惟一编号列,一般可以使用identity定义。(3)创立表Hotel创立表Hotel的脚本文献为Hotel.sql,它的代码如下:createtableHotel(Hidintprimarykeyidentity,Hnamevarchar(200)notnull,Hlevelvarchar(40),Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(100),Price1Decimal(10,2),Price2Decimal(10,2),Price3Decimal(10,2),Price4Decimal(10,2),AreaIdint,Input_timechar17)在使用createtable指令创立表时,应当注意使用notnull关键字定义表的末空字段。使用notnull定义的字段将不容许为空,这样就可以防止表中出现无效的数据,影响系统运行。例如,表Hotel中的Hname字段将不能为空,否则在系统的宾馆名称列表中将出现一种空.(4)创立表Restaurant创立表Restaurant的脚本文献Restaurant。sql,它的代码如下:createtableRestaurant(Ridintprimarykeyidentity,Rnamevarchar(200)notnull,Rlevelvarchar(40),Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(10),Breakfastdecimal(10,2),Dinnerdecimal(10,2),AreaIdint,Input_timechar(17))(5)创立表Amusement创立表Amusement的脚本文献为Amusement.sql,它的代码如下:createtableAmusement(Aidintprimarykeyidentity,Anamevarchar(200)notnull,Contactvarchar(100),Phonevarchar(100),Addressvarchar(100),Postcodevarchar(10),AreaIdint,Input_timechar(17))(6)创立表AmuseItem创立表AmuseItem的脚本文献为AmuseItem。sql,它的代码如下:createtableAmuseItem(Iidintprimarykeyidentity,Aidint,Itemvarchar(50)notnull,Pricedecimal(10,2),Input_timechar(17))(7)创立表Train创立表Train的脚本文献为Train。sql,它的代码如下:createtableTrain(Tidintprimarykeyidentity,Tnovarchar(20)notnull,Sstationvarchar(40),Estationvarchar(40),Stimevarchar(40),Etimevarchar(40),PriceYzdecimal(7,2),PriceRzdecimal(7,2),PriceYwdecimal(7,2),PriceRwdecimal(7,2),Input_timechar(17))(8)创立表Plane创立表Plane的脚本文献为Plane.sql,它的代码如下:createtablePlane(Pidintprimarykeyidentity,AirComvarchar(50)notnull,Pnovarchar(20)notnull,SairPortvarchar(40),EaiPortvarchar(40),Stimevarchar(40),Etimevarchar(40),Price1decimal(7,2),Price2decimal(7,2),Cyclechar(7),Input_timechar(17))(9)创立表tline创立表tline的脚本文献为tline.sql,它的代码如下:createtabletline(lidintprimarykey,lnamevarchar(50),ldaysmallint,ltypesmallint,insComvarchar(40),insFeedecimal(8,2),oterCostdecimal(8,2),tourPaydecimal(8,2),benefitdecimal(8,2),AreaIdint)(10)创立表lplace创立表lplacee的脚本文献为lplace。sql,它的代码如下:createtablelplace(lidintnotnull,Pidintnotnull)(11)创立表lhotel创立表lhotel的脚本文献为lhotel.sql,它的代码如下:createtablelhotel(lidintnotnull,hidintnotnull,rTypetinyint,rdaystinyint)(12)创立表lres创立表lres的脚本文献为lres。sql,它的代码如下:createtablelres(lidintnotnull,ridintnotnull,rTypetinyint,rTimestinyint)(13)创立表lamuse创立表lamuse的脚本文献为lamuse。sql,它的代码如下:createtablelamuse(lidintnotnull,Iidintnotnull,aTimestinyint)(14)创立表ltrain创立表ltrain的脚本文献为ltrain.sql,它的代码如下:createtableltrain(lidintnotnull,directintnotnull,tidtinyintnotnull,rTypetinyint)(15)创立表lplane创立表lplane的脚本文献为lplane.sql,它的代码如下:createtablelplane(lidintnotnull,directtinyintnotnull,pidintnotnull)(16)创立表Users创立表Users的脚本文献为Users。sql,它的代码如下:createtableUsers(UserNamevarchar(40)primarykey,Pwdvarchar(40)notnull,EmpNamevarchar(40))在查询分析器中打开这些sql文献,然后单击运行图标,就可以在数据库中创立对应的表。5.5数据库访问5。5.1ODBC数据库访问技术ODBC(OpenDatabaseConnectivity,开放数据库互连)是Microsoft企业开放服务构造中有关数据库的一种构成部分,它建立了一组规范,并提供了一组对数据库访问的原则API(应用程序编程接口).这些API运用SQL来完毕其大部分任务.ODBC自身也提供了对SQL语言的支持,顾客可以直接将SQL语句送给ODBC.一种基于ODBC的应用程序对数据库的操作不依赖任何DBMS(数据库管理系统),不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完毕.也就是说,不管是FoxPro、Access还是SQLServer数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大长处是能以统一的方式处理所有的数据库。一种完整的ODBC由下列几种部分构成.?应用程序(Application);?ODBC管理器(Administrator)。该程序位于Windows控制面板的32位ODBC内,其重要任务是管理ODBC驱动程序和数据库;?驱动程序管理器(DriverManager)。驱动程序管理起包括在ODBC32。DLL中,对顾客是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件;?ODBCAPI;ODBC驱动程序。它是某些DLL,提供了ODBC和数据库之间的接口;??数据源。数据源包括了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。各部件之间的关系如图5.5所示。数据源名应用程序(DNS)应用层ODBCODBCAPI管理器SQL驱动程序管理器ODBC驱动程序ODBC层数据源DataSource数据层图5.5ODBC各部件关系图应用程序要访问一种数据库,首先必须用ODBC管理器注册一种数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与详细数据库的联络.这样,只要应用程序将数据源名提供应ODBC就能建立起与对应数据库的连接。5。5.2数据库访问控件在使用VisualBasic开发数据库应用程序的时候,会常常使用数据库访问控件.这些控件包括:?Data控件;?ADOData控件;?DataList控件/DataCombo控件;?DataGrid控件;?MSChart控件。5.6功能模块规划窗体、模块和类模块是VisualBasic的重要资源.它们在程序设计中具有不可替代的作用。设计好它们之间的功能,使用它们可以协调合作,对于开发数据库应用程序是非常重要的。窗体是VisualBasic程序中比不可少的资源。它可以实现工程的外观显示,添加程序代码,实现需要的功能。窗体文献一般直接寄存在应用程序的目录下。模块可以用来管理全局常量、变量和顾客自定义函数等。顾客可以在类模块中创立自定义类。本实例中约定,数据库的每个表都对应一种类模块。类的组员变量对应表中的每个列,类的组员函数则是对表的多种操作.5.6.1添加模块根据VisualBasic功能模块的划分原则,我们将分别创立如下几种模块。?Const用来管理工程中的常量。?DbFunc用来管理工程中与数据库操作有关的申明、变量和函数。?GeneralFunc用来管理工程中某些通用的自定义函数。?Variable用来管理工程中的全局变量。5.6.2添加类模块根据VisualBasic功能模块的划分原则,为每一种表创立一种类模块,将对此表的所有数据库操作封装在类中.在一般状况下,类的组员变量与对应的表中的字段名相似。由于绝大多数组员函数的编码格式都是非常相似的,只是所使用的SQL语句不一样,因此只阐明类中组员函数的功能,并不对所有的组员函数进行详细的代码分析.下面就Area类来阐明类模块组员函数。Area类的组员函数函数名详细阐明Init初始化组员变量Delete删除指定的地区记录。参数TmpId表达要删除的地区编号GetId根据指定的地区名读取地区编号。参数TmnName表达要读取的地区名称GetInfo读取指定的地区记录。参数TmpId表达要读取的地区编号In_DB判断指定的地区名称与否已经在数据库中。参数TmpName表达指定地区名Insert插入新的地区记录将所有的地区数据读取到数组中。为了便于使用,此过程按照地区的分类将Load_Area地区分别装入到数组d1()、d2()、d3()中Update修改指定的地区记录。参数TmpId表达要修改的地区编号详细的模块代码和类模块组员函数的代码不一一阐明。5。7系统主界面设计5.7。1设计主界面图5.7。2参照表5.7.1设置主界面窗体的属性。表5。7。1设置主窗体的属性窗体属性设置值详细阐明FrmMain名称设置窗体名称BorderStyle1—FixedSingle设置窗体的边框属性Caption旅游资源及线路管理系统窗体的标题条文本MaxButtonFalse取消最大化按钮MinButtonTrue激活最小化按钮PictureImg\Main.jpg设置窗体背景StartUpPosition2-屏幕中心设置窗体位于屏幕中心本实例的主界面如图5。7。1所示。图5.7。2旅游资源及线路管理系统主界面5.7。2在主界面中添加代码由于系统的其他功能还没有实现,因此只能添加退出系统的代码。其他的代码将在对应的功能实现后再添加到窗体中.当顾客单击lblExit按钮时,将执行lblExit_Click()过程,退出系统。代码如下:PrivateSublblexit_Click()DBapi_DisconnectEndEndSub5。8登录模块设计顾客要使用本系统,首先要同过系统的身份认证,这个过程叫做登录.登录过程需要完毕如下任务:?根据顾客名和密码来判断与否也许进入系统;?根据顾客类型决定顾客拥有的权限。5。8.1设计登录窗体创立一种新窗体,设置窗体名为FrmLogin。登录窗体的布局如图5。8所示。5.8。2在登录窗体中添加代码其中的Cmd_Ok按钮的代码如下:PrivateSubCmd_OK_Click()DimjAsSingle'数据有效性检查IftxtUser=””ThenMsgBox"请输入顾客名”txtUser.SetFocusExitSubEndIfIftxtPwd=”"ThenMsgBox”请输入密码"txtPwd.SetFocusExitSubEndIfNameKey=MakeStr(txtUser)PasswordKey=MakeStr(txtPwd)’判断顾客与否存在IfMyUser。In_DB(NameKey)=FalseThenMsgBox”顾客名不存在”Try_times=Try_times+1IfTry_times>=3ThenMsgBox”您已经三次尝试进入本系统,均不成功,系统将关闭”DBapi_DisconnectEndElseExitSubEndIfEndIf’判断密码与否对的MyUser.GetInfo(NameKey)IfMyUser.Pwd<〉PasswordKeyThenMsgBox”密码错误”Try_times=Try_times+1IfTry_times〉=3ThenMsgBox”您已经三次尝试进入本系统,均不成功,系统将关闭”DBapi_DisconnectEndElseExitSubEndIfEndIf'登录成功,将目前顾客的信息保留在CurUser中CurUser。GetInfo(MyUser。UserName)’关闭自己UnloadMeEndSub5.9旅游地区资源管理模块设计地区管理模块可以实现如下功能:?添加地区信息;?修改地区信息;?删除地区信息;?查看地区信息。5.9。1设计旅游地区资源编辑窗体编辑地区信息的窗体可以用来添加和修改地区信息。创立一种新窗体,窗体设置为FrmAreaEdit。窗体FrmAreaEdit的布局如图5.9所示。图5。9窗体FrmAreaEdit的布局下面分析窗体FrmAreaEdit中部分过程的代码。1(全局变量Modify变量Modify用来标识目前的数据库访问状态。当Modify=True时,表达修改已经有的数据,当Modify=False时,表达插入新的数据;变量OriId表达目前编辑地区数据的地区编号;变量OriAreaName表达目前编辑地区数据的原有地区名称;变量OriType表达目前编辑地区数据的原有地区类别.2(Cmd_OK_Click过程当顾客单击“确定”按钮时,将触发Cmd_Ok_Click事件,对应的程序代码如下:PrivateSubCmd_OK_Click()’检查顾客输入的地区数据与否有效IfCheck=FalseThenExitSubEndIfWithMyArea’把顾客输入的地区数据赋值到MyArea对象的组员变量中.AreaName=MakeStr(txtAreaName)。AreaType=CurType'判断地区名称与否存在IfModify=FalseOrOriAreaName<〉Trim(txtAreaName)ThenIf。In_DB(MakeStr(txtAreaName))=TrueThenMsgBox”地区名称已经存在,请重新输入”txtAreaName.SetFocustxtAreaName。SelStart=0txtAreaName。SelLength=Len(txtAreaName)ExitSubEndIfEndIf’根据变量Modify的值,决定是插入新数据,还是修改已经有的数据IfModify=FalseThen。InsertElse.Update(OriId)EndIfEndWith’关闭窗体UnloadMeEndSub在上面的程序段中,分别对插入地区数据和修改地区数据两种状况进行处理.插入数据时使用Area.Insert()过程,修改数据时调用Area。Update()过程.5。9.2设计旅游地区资源管理窗体创立一种新窗体,窗体名称设置为FrmAreaMan.窗体FrmAreaMan的布局如图5。9.2所示.下面分析窗体FrmAreaMan中部分过程的代码。(Loadarea过程1Loadarea过程的功能是从数据库中读取不一样类型的地区数据,并根据顾客的选择把指定类别的地区名称添加到List1中.对应的代码如下:PrivateSubLoadarea()DimiAsIntegerList1。ClearMyArea.Load_Area'本市地区IfOption1.Value=TrueThenDoWhiled1(i)〈〉""List1。AddItemd1(i)'把本市地区添加到List1列表框中i=i+1LoopEndIf'外埠地区IfOption2.Value=TrueThenDoWhiled2(i)〈〉””List1.AddItemd2(i)'把外埠地区添加到List1列表框中i=i+1LoopEndIf’国外地区IfOption3。Value=TrueThenDoWhiled3(i)〈>””List1。AddItemd3(i)'把国外地区添加到List1列表框中i=i+1LoopEndIfEndSubMyArea.Loadarea过程的作用是将地区名称按照类别读取到全局数组d1()、d2()和d3()中。2(DeleteCheck过程当顾客要删除地区数据时,程序将调用DeleteCheck()函数,判断目前选择的地区与否可以删除,对应的代码如下:PrivateFunctionDeleteCheck(ByValTmpIdAsLong)AsIntegerDimTmpNameAsString'旅游娱乐厅资源地区数据检查TmpName=MyPlace。AreaInPlace(CurAreaId)IfTmpName<〉"”ThenDeleteCheck=-1MsgBox"目前地区信息在娱乐厅—”+TmpName+"-中使用,为保证数据的完整性,不容许删除此地区.”ExitFunctionEndIf’旅游宾馆资源地区数据检查TmpName=MyHotel.AreaInHotel(CurAreaId)IfTmpName<>"”ThenDeleteCheck=—1MsgBox”目前地区信息在宾馆-"+TmpName+”-中使用,为保证数据的完整性,不容许删除此地区."ExitFunctionEndIf'旅游用餐资源地区数据检查TmpName=MyRes.AreaInRes(CurAreaId)IfTmpName<〉"”ThenDeleteCheck=—1MsgBox”目前地区信息在餐厅—"+TmpName+”-中使用,为保证数据的完整性,不容许删除此地区.”ExitFunctionEndIf'旅游娱乐资源地区数据检查TmpName=MyAmuse.AreaInAmuse(CurAreaId)IfTmpName<>””ThenDeleteCheck=—1MsgBox”目前地区信息在娱乐厅-"+TmpName+”—中使用,为保证数据的完整性,不容许删除此地区.”ExitFunctionEndIf'旅游线路地区数据检查TmpName=MyLine.AreaInLine(CurAreaId)IfTmpName〈〉"”ThenDeleteCheck=—1MsgBox”目前地区信息-在线路—"+TmpName+”—中使用,为保证数据的完整性,不容许删除此地区。"ExitFunctionEndIf'通过检查,可以删除目前地区DeleteCheck=0EndFunction为了维护数据库构造的完整性,在删除数据时,往往需要进行数据库完整性的判断.地域数据是本系统中最基本的数据,与诸多表存在联络。因此在删除地区数据时,需要在其他表中进行判断,假如要删除的地区存在于其他表中,则不能删除,由于删除此地区会导致其他表的数据不完整。3(Form_Load过程当装入窗体FrmAreaMan时,将触发Form_Load事件,对应的代码如下:PrivateSubForm_Load()'将目前地区类型设置为“本市"Option1。Value=True'装入数据LoadareaEndSub4(Cmd_Modi_Click过程当顾客单击“修改”按钮时,将触发Cmd_Modi_Click事件,对应的代码如下:PrivateSubCmd_Modi_Click()'判断与否选择了要修改的地区IfList1。ListIndex<0ThenMsgBox"请选择要修改的地区”ExitSubEndIf’修改本市地区IfOption1。Value=TrueThenFrmAreaEdit.CurType=1FrmAreaEdit。lblAreaType=”本市"EndIf'修改外埠地区IfOption2.Value=TrueThenFrmAreaEdit.CurType=2FrmAreaEdit.lblAreaType="外埠”EndIf’修改国外地区IfOption3.Value=TrueThenFrmAreaEdit.CurType=3FrmAreaEdit.lblAreaType="国外"EndIf’将变量Modify设置设置为False,表达插入新数据FrmAreaEdit.Modify=True'设置全局变量FrmAreaEdit。OriAreaName=List1。TextFrmAreaEdit.txtAreaName=List1。TextFrmAreaEdit。OriId=CurAreaId’启动编辑地区信息的窗体FrmAreaEdit。Show1'修改后重新装入地区数据LoadareaEndSub5(Cmd_Del_Click过程当顾客单击“删除"按钮时,将触发Cmd_Del_Click事件,对应的代码如下:PrivateSubCmd_Del_Click()'判断与否选择了要删除的地区IfList1。ListIndex<0ThenMsgBox"请选择要删除的地区”ExitSubEndIf'调用DeleteCheck()函数,判断选择的地区与否可以删除IfDeleteCheck(CurAreaId)=—1ThenExitSubEndIf'问询与否可以删除地区IfMsgBox("与否删除目前地区?",vbYesNo,"请确认”)=vbYesThenMyArea.Delete(CurAreaId)LoadareaEndIfEndSub5。10景点资源管理模块设计景点资源管理模块可以实现如下功能:?添加景点资源信息;?修改景点资源信息;?删除景点资源信息;?查看景点资源信息。5.10。1设计景点资源编辑窗体创立一种新窗体,窗体名称设置为FrmPlaceEdit。窗体FrmPlaceEdit的布局如图6。10所示。图5。10窗体FrmPlaceEdit的布局下面分析窗体FrmPlaceEdit中各个过程的代码.1(Form_Load过程当FrmPlaceEdit窗体启动时,将触发Form_Loade事件,对应的代码如下:PrivateSubForm_Load()ComboType.AddItem("本市")ComboType。AddItem(”外埠")ComboType.AddItem("国外")ComboType.ListIndex=OriType—1CallLoadarea(OriType,ComboName)IfInCombo(OriAreaName,ComboName)=TrueThenComboName。Text=OriAreaNameEndIfEndSub2(Cmd_Ok_Click()过程当顾客单击“确定”按钮时,将触发Cmd_OK_Click事件,对应的代码如下:PrivateSubCmd_OK_Click()'检查顾客输入的地区数据与否有效IfCheck=FalseThenExitSubEndIfWithMyPlace'把顾客输入的地区数据赋值到MyPlace对象的组员变量中。Pname=MakeStr(txtPlace)。Contact=MakeStr(txtContact).Phone=MakeStr(txtPhone).Address=MakeStr(txtAddress)。Postcode=MakeStr(txtCode)。Adult_price=Val(txtAdult)。Child_price=Val(txtChild).AreaId=MyArea.GetId(ComboName)’判断景点名称与否存在IfModify=FalseOrOriPlaceName〈〉Trim(txtPlace)ThenIf.In_DB(MakeStr(txtPlace))=TrueThenMsgBox”景点名称已经存在,请重新输入"txtPlace.SetFocustxtPlace。SelStart=0txtPlace.SelLength=Len(txtPlace)ExitSubEndIfEndIf'根据变量Modify的值,决定是插入新数据,还是修改已经有的数据IfModify=FalseThen。InsertElse。Update(OriId)EndIfEndWith’关闭窗体UnloadMeEndSub5.10.2设计景点资源管理窗体创立一种新窗体,窗体名称设置为FrmPlaceMan。参照表5.10。2添加并设置控件的属性.表5。10.2窗体FrmPlaceMan包括的控件及属性对象名属性属性值ConnectionStringDSN=TravelAdodc1PasswordSaUserNameSaRecordSourceSELECT*FROMPlaceVisibleFalseDataGrid1DataSourceAdodc1Cmd_AddCaption添加Cmd_ModiCaption修改Cmd_DelCaption删除Cmd_CloseCaption关闭窗体FrmPlaceMan的布局如图5。10所示。下面分析窗体FrmPlaceMan中几种过程的代码。1(Refresh_Place过程Refresh_Place()过程的功能是为Adodc1控件设置数据源,从而决定在DataGrid1控件显示的数据内容,对应的代码如下:PrivateSubRefresh_Place()’设置数据源Adodc1.RecordSource="SELECTa.AreaName所在地区,p.PnameAs景点名称,"_+”p。ContactAs联络人,p。PhoneAs联络电话,p.AddressAs通信地址,"_+”p.PostcodeAs邮政编码,p.Adult_PriceAs成人票价,"_+”p.Child_PriceAs小朋友票价,p.Input_timeAs录入时间”_+"FROMPlacep,AreaaWHEREp.AreaId=a.AreaId"_+"Anda。AreaName=’”+Trim(ComboName.Text)+”’”Adodc1。RefreshEndSub由于在DataGrid1控件中要显示的数据内容联络到了数据库中的两个表,这就是在数据库中所说地表的连接查询.要选择两个不一样的表,需要找到一种两个表都相似的公共部分,这样才能使两个表建立起一定的关系。在本例中,Area表和Place表是通过AreaId字段来建立连接关系的.但我们在操作的时候好象并没有对AreaId进行实际操作。这里用到了前面所说地在创立表的脚本文献时,使用IDENTITY关键字定义表的标识列,IDENTITY属性可以用于获得自动增长的标识号.然后通过place。AreaId=MyArea.GetId(ComboName)语句把自动获得的标识号赋值到place表中的AreaId字段中.这样就可以使我们在实际应用中减少许多复杂地考虑过程,这种措施在背面的实例中也常常用到.2(Cmd_Modi_Click事件当顾客单击“修改"按钮时,将触发Cmd_Modi_Click事件,对应的代码如下:PrivateSubCmd_Del_Click()DimTmpIdAsLong’判断与否选择了要删除的记录IfAdodc1.Recordset.EOF=TrueThenMsgBox”请选择记录"ExitSubEndIf’确定目前选择记录的位置p=Adodc1。Recordset。AbsolutePosition’读取目前行的景点编号,由于要以此编号做为删除景点的关键字TmpId=MyPlace.GetId(Trim(Adodc1。Recordset.Fields(1)))’判断目前记录与否出目前线路中IfMylplace.PlaceInLine(TmpId)>0ThenMsgBox"此景点在线路中使用,不能删除”ExitSubEndIf’确认删除IfMsgBox("与否删除目前行?",vbYesNo,”确认")=vbYesThenMyPlace.Delete(TmpId)Refresh_PlaceIfp-1〉0ThenAdodc1。Recordset.Movep-1EndIfEndIfEndSubPrivateSubCmd_Modi_Click()'判断与否选择了记录IfAdodc1。Recordset。EOF=TrueThenMsgBox"请选择记录”ExitSubEndIf’确定目前选择记录的位置p=Adodc1。Recordset。AbsolutePosition'地区信息FrmPlaceEdit.OriAreaName=ComboName.TextFrmPlaceEdit。OriType=ComboType。ListIndex+1'景点编号FrmPlaceEdit。OriId=MyPlace.GetId(Adodc1。Recordset.Fields(1))’景点名称FrmPlaceEdit.OriPlaceName=Trim(Adodc1.Recordset.Fields(1))FrmPlaceEdit.txtPlace=Trim(Adodc1。Recordset。Fields(1))'联络人FrmPlaceEdit。txtContact=Trim(Adodc1.Recordset。Fields(2))’联络电话FrmPlaceEdit.txtPhone=Trim(Adodc1.Recordset.Fields(3))'通信地址FrmPlaceEdit.txtAddress=Trim(Adodc1。Recordset.Fields(4))'邮政编码FrmPlaceEdit.txtCode=Trim(Adodc1。Recordset。Fields(5))'成人报价FrmPlaceEdit。txtAdult=Trim(Adodc1。Recordset。Fields(6))’小朋友报价FrmPlaceEdit。txtChild=Val(Adodc1。Recordset.Fields(7))'把变量Modify设置为True,表达目前状态为修改已经有记录FrmPlaceEdit。Modify=TrueFrmPlaceEdit.Show1'修改完毕,刷新显示内容Refresh_PlaceAdodc1.Recordset.MovepEndSub使用DataGrid控件显示数据的一种常用的措施,它的特点是简朴直观,一目了然.DataGrid控件只能用来显示数据,数据源由ADOData控件提供。可以通过Adodc1.Recordeset。Fields(n)读取成果集中的字段数据,n是字段的序号,第1个字段的序号。为05。11宾馆、餐厅、娱乐资源管理模块设计由于宾馆资源管理模块、餐厅资源管理模块设计、娱乐资源管理模块设计这三个模块设计的界面和模块功能基本相似。这里就以娱乐资源管理模块设计为例来阐明。娱乐资源管理模块可以实现如下功能:?添加娱乐资源信息;?修改娱乐资源信息;?删除娱乐资源信息;?查看娱乐资源信息。5.11。1设计娱乐资源编辑窗体创立一种新窗体,窗体名称设置为FrmAmuseEdit.窗体FrmAmuseEdit的布局入图5.11所示。图5.11窗体FrmAmuseEdit的布局5。11.2设计娱乐项目管理窗体与景点、宾馆、餐厅等旅游资源不一样,娱乐资源包括诸多的娱乐项目。如保龄球、台球、游泳等,因此需要有一种娱乐项目管理窗体。创立一种新窗体,窗体名称设置为FrmAitemMan。窗体FrmAitemMan的布局如图5。11.2所示。图5。11。2窗体FrmAitemMan的布局下面分析窗体FrmAitemMan中几种重要过程的代码.1(公共变量在窗体FrmAitemMan中有一种公共变量OriAid,表达目前所编辑的娱乐项目所属的娱乐厅编号。此变量必须在启动窗体FrmAitemMan之前进行设置。2(Loaditem()Loaditem()过程的功能是根据变量OriAid指定的娱乐厅,读取娱乐厅中包括的所有娱乐项目,并把这些娱乐项目显示在列表中。对应的代码如下:PrivateSubLoaditem()DimiAsInteger’清空娱乐项目列表List1.Clear'根据目前的娱乐厅编号,读取所有的娱乐项目到数组ArrItem()中MyAitem.LoadItem_ByAmuse(OriAid)'依次把数组ArrItem()中的数据添加到娱乐项目列表List1中i=0DoWhileArrItem(i)<>""List1.AddItemArrItem(i)i=i+1LoopEndSub在程序设计中,常常需要把数据库中满足一定条件的数据读取到组合框或列表框中,以便顾客选择,可以使用两种措施实现此功能.第一种措施使用DataCombo控件作为组合框,使用DataList控件作为列表框,把需要的数据读取到ADOData控件中。将DataList控件的RowSource属性设置为ADOData控件,ListField属性设置为要读取的字段,需要的数据就会自动出目前列表框中(组合框的措施也是同样的)。这种措施比较以便,不需要编写任何代码。第二种措施可以使用ComboBox控件作为组合框,使用ListBox控件作为列表框。编写程序将需要的数据从表中读取到一种(或一组)全局数组中,然后再使用AddItem措施把数组中的元素依次添加到ComboBox或ListBBox控件中.这样措施比较灵活,程序员可以控制程序的实现措施,增长某些扩展功能,同步全局数组中的数据不可以提供应其他部分的程序使用.1.List1_Click过程当顾客单击娱乐项目列表时,将触发List1_Click事件,对应的代码如下:PrivateSubList1_click()’判断与否选择了娱乐项目IfList1.Text=”"ThenExitSubEndIf’把选择的娱乐项目名称显示在右侧的“娱乐项目"编辑框中txtItem=List1。Text'读取娱乐项目编号,并根据此编号读取娱乐项目的所有信息TmpId=MyAitem。GetId(OriAid,txtItem)MyAitem。GetInfo(TmpId)'把娱乐项目的价格赋值到txtPrice文本框中txtPrice=MyAitem。Price’把娱乐项目的编辑时间赋值到lblinput_time标签中lblInput_time=MyAitem。Input_timeEndSub5。11。3设计娱乐资源管理窗体创立一种新窗体,窗体名称设置为FrmAmuseMan。窗体的布局如图5。11。3所示图5.11。3窗体FrmAmuseMan的布局当顾客单击“娱乐项目”按钮时,将触发Cmd_Item_Click事件,对应的代码如下:PrivateSubCmd_Item_Click()'要进入娱乐项目管理界面,必须首先选择一种娱乐厅IfAdodc1.Recordset.EOF=TrueThenMsgBox"请选择记录”ExitSubEndIf'读取选择好的娱乐厅娱乐,并赋值到FrmAitemMan.OriAid中FrmAitemMan.OriAid=MyAmuse.GetId(Trim(Adodc1.Recordset.Fields(1)))’打开娱乐项目管理窗体FrmAitemMan.Show1EndSub5.12火车、飞机资源管理模块设计火车资源管理模块设计和飞机资源管理模块设计的基本思想和构造大体上相似,这里以飞机管理模块设计为例来阐明.飞机资源管理模块可以实现如下功能:?添加飞机资源信息;?修改飞机资源信息;?删除飞机资源信息;?查看飞机资源信息.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)SelectCaseTmpCycleCase1Check1.Value=1Case2Check2。Value=1Case3Check3.Value=1Case4Check4。Value=1Case5Check5.Value=1Case6Check6。Value=1Case7Check7.Value=1EndSelectLoopEndSub2(Cmd_Ok_Click过程当顾客单击“确定“按钮时,将触发Cmd_Ok_Click事件,对应的代码如下:PrivateSubCmd_OK_Click()DimTmpCycleAsString’检查顾客输入数据的有效性IfTrim(txtAirCom)=”"ThenMsgBox"请输入航空企业"txtAirCom.SetFocusExitSubEndIfIfTrim(txtSairport)="”ThenMsgBox”请输入起飞机场”txtSairport。SetFocusExitSubEndIfIfTrim(txtEairport)="”ThenMsgBox”请输入抵达机场”txtEairport。SetFocusExitSubEndIf’把顾客输入的数据赋值到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=1ThenTmpCycle=TmpCycle+”1”EndIfIfCheck2.Value=1ThenTmpCycle=TmpCycle+"2”EndIfIfCheck3.Value=1ThenTmpCycle=TmpC

温馨提示

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

最新文档

评论

0/150

提交评论