收藏 分销(赏)

VB1055_航空售票管理系统2.doc

上传人:可**** 文档编号:4211209 上传时间:2024-08-25 格式:DOC 页数:28 大小:738.04KB
下载 相关 举报
VB1055_航空售票管理系统2.doc_第1页
第1页 / 共28页
VB1055_航空售票管理系统2.doc_第2页
第2页 / 共28页
VB1055_航空售票管理系统2.doc_第3页
第3页 / 共28页
VB1055_航空售票管理系统2.doc_第4页
第4页 / 共28页
VB1055_航空售票管理系统2.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、摘 要近年来,随着社会的不断进步,国内航空事业的飞速发展,各航空公司对票务管理的要求也在不断的提高。因此网上航班订票系统是通过网络查询信息,进行飞机票的查询、订购的电子商务系统。订票在购票交易过程中扮演着十分重要的角色,设计和实现一个完整的订票系统能够为旅客提供一个快捷、便利的购票渠道,对促进航空事业的发展具有十分重要的意义。实现航空售票管理系统的信息化实现,使烦琐的工作自动化成为目前重中之重。如何高效并快捷的对航空售票进行管理是关键。需要深入探讨订票系统开发过程及其相关技术,采用 Visual Basic 6.0作为前台开发工具,编程灵活,高效。SQL Server 作为后台数据库,具有强大

2、的安全管理模式,结合实际工程项目中售票系统的功能需求和业务流程分析。订票系统的规模较大,涉及的范围广,在实现过程中要求多个子系统并行开发,这对系统体系结构的健壮性、可扩展性有很高的要求。设计的总目标是:在数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有易扩充的,易维护的,安全性和稳定性高的,具有良好人机交互界面的订票管理系统,为航空公司提供准确,精细,迅速的订票管理信息。在对C/S和B/S两种模式深入分析的基础上,综合运用电子商务开发技术,建立基于VB系统N层分布式体系结构,从而满足航空事业飞速发展的趋势,同时为航空公司的订票业 务提供了智能化的管理体系。克服了航空售票传

3、统管理中的烦琐、耗时的缺点,使得航空售票的管理变的更有效率。关键词:航空售票,电子商务,C/S模式23ABSTRACTIn recent years, along with the societys unceasing progress, the domestic aviation enterprises swift development, the request of various Airlines which managed to the ticket clerk also in the unceasing enhancement. Therefore, flight order fo

4、rm on-line system is an electronic commerce system which polls message through the network, carries on the plane tickets inquiry and order. In the transaction process, ordering tickets is playing a very important role in buying tickets, designing and realizing a complete order form system can be abl

5、e to provide for the passenger a convenient and quick channel to buy tickets, which has a very vital significance to promote the aviation enterprises development.How effective and efficient management of air ticketing is the key. In this paper, in-depth study of the booking system and related techno

6、logy development process, the system using Visual Basic 6.0 as the future development tools, programming flexibility, efficiency, SQL Server database as a background, strong safety management model. Combination of practical projects in the ticketing system functional requirements and business proces

7、s analysis, the system is mainly to achieve customer information management, the provision of information services and ticketing information management. Booking system large-scale, involving a wide range of requirements in the process of achieving a number of subsystems parallel development, the sys

8、tem architecture of the robust, scalable high demand. The overall design goal is: in the database and advanced development platform, using existing software, a hardware configuration, development of an expansion is easy to maintain, security and stability of high, have good man-machine interface boo

9、king management system for airlines to provide accurate, precise, rapidly booking management information. In the C / S and B / S in-depth analysis of the two models, based on the integrated use of e-commerce development of technology, the paper proposed the establishment of VB-based N-tier distribut

10、ed systems architecture; Meet the rapid development of the aviation industry trends, as well as airline booking business for the intelligent management system.Keywords: booking management, E-commerce,C/S湖南工业大学本科生毕业设计(论文)目 录第1章 绪 论11.1 课题背景11.2 系统开发关键技术介绍21.2.1 Visual Basic介绍与特性21.2.2 基于Microsoft SQL

11、 Server 2000的数据存储服务21.2.3 使用ADO所带来的好处3第2章 基本技术方案42.1 系统建立所需环境42.2 系统体系结构52.3 电子商务发展介绍6第3章 系统分析83.1 系统需求分析93.2 系统流程9第4章 系统的详细设计144.1 数据库分析144.1.1 数据库设计E-R图144.1.2 系统数据表设计174.2 功能模块设计204.2.1 系统管理204.2.2 航线信息管理204.2.3 客户信息管理214.2.4 订票信息管理21第5章 系统功能的具体实现225.1 系统主窗口225.2 数据库连接225.3 系统登录255.4 客户登记275.5 航线

12、信息的设置285.6 票务信息管理305.6.1 订票的生成305.6.2 订票的修改和退票325.6.3 订票的查询35结 论36参考文献37致 谢38图3.1 系统模块结构图数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。描绘数据在软件中流动和被处理的逻辑过程。即使不是专业的计算机技术人员也容易理解它。本系统的数据流图如图3.2所示和实现其一层数据流图的图3.3。图3.2 顶层数据流图图3.3 1层数据流图图3.4到图3.8是对1层数据流图中各个信息处理的具体数据流程和实现。图3.4 对系统信息的处理图3.5 对客户信息的处理图3.6 对航线信息

13、的处理图3.7 对售票信息的管理本系统总的系统流程图如图3.8所示。图3.8 航空售票管理系统数据流程图 图5.3 权限警告界面5.4客户登记航空行业的特殊性要求旅客订票时采用实名登记,因此对于第一次登机的旅客要留下其身份标志,包括姓名、性别、身份证号码等信息并予以保存在该系统中,对于一些特殊用户,可以设置不同的客户类型,于是在购票的过程中将给予一定的优惠。客户基本信息的设置:图5.4 客户信息把信息载入到数据库中后,前台客户端需要把信息在指定的位置上显示出来,这就需要设置一个ShowData函数,来实现数据的显示操作,代码如下:Private Sub ShowData() 图5.5 客户类型

14、信息5.5航线信息的设置航线信息的设置涉及到航线所属客机的基本信息,客机内部各个级别座位的分配情况,即头等舱、公务舱和经济舱的数量分配,这就联系到即将介绍的订票模块的查询功能。另外就是这个模块中最重要的航线基本信息设置了,其中关系到出发、到达城市,航行时间、各个级别舱位的票价以及备注信息等。图5.6 航线信息旅客在订机票前,会先查询航班信息以便选择合适的时间,因此查询功能在该模块中显得尤为重要。图5.7 航线信息查询重要提示:本论文由大学论文网毕业论文下载网: 提供如果需要详细内容请与QQ:4991024联系附录资料:不需要的可以自行删除VB HOOK(钩子)超级无敌详细用法(介绍)hook是

15、WINDOWS提供的一种消息处理机制,它使得程序员可以使用子过程来监视系统消息,并在消息到达目标过程前得到处理。 下面将介绍WINNDOWS HOOKS并且说明如何在WINDOWS 程序中使用它。关于HOOKS 使用HOOK 将会降低系统效率,因为它增加了系统处量消息的工作量。建议在必要时才使用HOOK,并在消息处理完成后立即移去该HOOK。HOOK链 WINDOWS提供了几种不同类型的HOOKS;不同的HOOK可以处理不同的消息。例如,WH_MOUSE HOOK用来监视鼠标消息。 WINDOWS为这几种HOOKS维护着各自的HOOK链。HOOK链是一个由应用程序定义的回调函数队列,当某种类型

16、的消息发生时,WINDOWS向此种类型的HOOK链的第一个函数发送该消息,在第一函数处理完该消息后由该函数向链表中的下一个函数传递消息,依次向下。如果链中某个函数没有向下传送该消息,那么链表中后面的函数将得不到此消息。(对于某些类型的HOOK,不管HOOK链中的函数是否向下传递消息,与此类型HOOK联系的所有HOOK函数都会收到系统发送的消息)HOOK过程 为了拦截特定的消息,你可以使用SetWindowsHookEx函数在该类型的HOOK链中安装你自己的HOOK函数。该函数语法如下: public function MyHook(nCode,wParam,iParam) as long 加入

17、代码 end function 其中MyHook可以随便命名,其它不能变。该函数必须放在模块段。nCode指定HOOK类型。wParam,iParam的取值随nCode不同而不同,它代表了某种类型的HOOK的某个特定的动作。 SetWindowsHookEx总是将你的HOOK函数放置在HOOK链的顶端。你可以使用CallNextHookEx函数将系统消息传递给HOOK链中的下一个函数。 注释对于某些类型的HOOK,系统将向该类的所有HOOK函数发送消息,这时,HOOK函数中的CallNextHookEx语句将被忽略。 全局HOOK函数可以拦截系统中所有线程的某个特定的消息(此时该HOOK函数必

18、须放置在DLL中),局部HOOK函数可以拦截指定线程的某特定消息(此时该HOOK函数可以放置在DLL中,也可以放置在应用程序的模块段)。 注释 建议只在调试时使用全局HOOK函数。全局HOOK函数将降低系统效率,并且会同其它使用该类HOOK的应用程序产生冲突。HOOK类型 WH_CALLWNDPROC 和 WH_CALLWNDPROCRET HOOK WH_C ALLWNDPROC 和WH_CALLWNDPROCRET HOOK可以监视SendMessage发送的消息。系统在向窗体过程发送消息前,将调用WH_CALLWNDPROC;在窗体过程处理完该消息后系统将调用WH_CALLWNDPROC

19、RET。 WH_CALLWNDPROCRET HOOK会向HOOK过程传送一个CWPRETSTRUCT结构的地址。该结构包含了窗体过程处理系统消息后的一些信息。 WH_CBT Hook 系统在激活,创建,消毁,最小化,最大化,移动,改变窗体前;在完成一条系统命令前;在从系统消息队列中移去鼠标或键盘事件前;在设置输入焦点前,或同步系统消息队列前,将调用WH_CBT HOOK。你可以在你的HOOK 过程拦截该类HOOK,并返回一个值,告诉系统,是否继续执行上面的操作。 WH_DEBUG HOOK 系统在调用与某种HOOK类型联系的HOOK过程前,将调用WH_DEBUG ,应用程序可以使用该HOOK

20、决定是否让系统执行某种类型的HOOK。 WH_FOREGROUNDIDLE Hook 系统在空闲时调用该HOOK,在后台执行优先权较低的应用程序。 WH_GETMESSAGE Hook WH_GETMESSAGE Hook使应用程序可以拦截GetMessage 或 PeekMessage的消息。应用程序使用WH_GETMESSAGE HOOK监视鼠标、键盘输入和发送到队列中的其它消息。 WH_JOURNALRECORD Hook WH_JOURNALRECORD Hook使应用程序可以监视输入事件。典型地,应用程序使用该HOOK记录鼠标、键盘输入事件以供以后回放。该HOOK是全局HOOK,并且

21、不能在指定线程中使用。 WH_JOURNALPLAYBACK Hook WH_JOURNALPLAYBACK Hook使应用程序可以向系统消息队列中插入消息。该HOOK可以回放以前由WH_JOURNALRECORD HOOK录制的鼠标、键盘输入事件。在WH_JOURNALPLAYBACK Hook安装到系统时,鼠标、键盘输入事件将被屏蔽。该HOOK同样是一个全局HOOK,不能在指定线程中使用。 WH_JOURNALPLAYBACK Hook返回一个时间暂停值,它告诉系统,在处理当前回放的消息时,系统等待百分之几秒。这使得此HOOK可以控制在回放时的时间事件。 WH_KEYBOARD Hook

22、WH_KEYBOARD Hook使应用程序可以监视由GetMessage和PeekMessage返回的WM_KEYDOWN 及WM_KEYUP消息。应用程序使用该HOOK监视发送到消息队列中的键盘输入。 WH_MOUSE Hook WH_MOUSE Hook 使应用程序可以监视由GetMessage和PeekMessage返回的消息。应用程序使用该HOOK监视发送到消息队列中的鼠标输入。 WH_MSGFILTER and WH_SYSMSGFILTER Hooks WH_MSGFILTER 和WH_SYSMSGFILTER Hooks使应用程序可以监视菜单、滚动条、消息框、对话框,当用户使用A

23、LT+TAB或ALT+ESC来切换窗体时,该HOOK也可以拦截到消息。WH_MSGFILTER仅在应用程序内部监视菜单、滚动条、消息框、对话框,而WH_SYSMSGFILTER则可以在系统内监视所有应用程序的这些事件。 WH_SHELL Hook 一个SHELL程序可以使用WH_SHELL Hook来接收重要的信息。当一个SHELL程序被激活前或当前窗体被创建、消毁时,系统会调用WH_SHELL Hook过程。 使用HOOK 安装、销毁HOOK过程 监视系统事件安装、销毁HOOK过程 使用SetWindowsHookEx函数,指定一个HOOK类型,自己的HOOK过程是全局还是局部HOOK,同时

24、给出HOOK过程的进入点,就可以轻松的安装你自己的HOOK过程。Declare Function SetWindowsHookEx Lib user32 Alias SetWindowsHookExA _ (ByVal idHook As Long, _ ByVal lpfn As Long, _ ByVal hmod As Long, _ ByVal dwThreadId As Long) As LongidHook代表是何种Hook,有以下几种 Public Const WH_CALLWNDPROC = 4 Public Const WH_CALLWNDPROCRET = 12 Publi

25、c Const WH_CBT = 5 Public Const WH_DEBUG = 9 Public Const WH_FOREGROUNDIDLE = 11 Public Const WH_GETMESSAGE = 3 Public Const WH_HARDWARE = 8 Public Const WH_JOURNALPLAYBACK = 1 Public Const WH_JOURNALRECORD = 0 Public Const WH_KEYBOARD = 2 Public Const WH_MOUSE = 7 Public Const WH_MSGFILTER = (-1) P

26、ublic Const WH_SHELL = 10 Public Const WH_SYSMSGFILTER = 6lpfn代表Hook Function所在的Address,这是一个CallBack Fucnction,当挂上某个Hook时,我们便得定义一个Function来当作某个讯息产生时,来处理它的Function,这个Hook Function有一定的叁数格式 Private Function HookFunc(ByVal nCode As Long, _ ByVal wParam As Long, _ ByVal lParam As Long ) As Long nCode 代表是

27、什麽请况之下所产生的Hook,随Hook的不同而有不同组的可能值。 wParam lParam 传回值则随Hook的种类和nCode的值之不同而不同。 因这个叁数是一个 Function的Address所以我们固定将Hook Function放在.Bas中,并以AddressOf HookFunc传入。至於Hook Function的名称我们可以任意给定,不一定叫 HookFunchmod 代表.DLL的hInstance,如果是Local Hook,该值可以是Null(VB中可传0进去),而如果是Remote Hook,则可以使用GetModuleHandle(.dll名称)来传入。dwTh

28、readId 代表执行这个Hook的ThreadId,如果不设定是那个Thread来做,则传0(所以一般来说,Remote Hook传0进去),而VB的Local Hook一般可传App.ThreadId进去。值回值 如果SetWindowsHookEx()成功,它会传回一个值,代表目前的Hook的Handle,这个值要记录下来。因为A程式可以有一个System Hook(Remote Hook),如KeyBoard Hook,而B程式也来设一个Remote的KeyBoard Hook,那麽到底KeyBoard的讯息谁所拦截?答案是,最後的那一个所拦截,也就是说A先做keyboard Hook

29、,而後B才做,那讯息被B拦截,那A呢?就看B的Hook Function如何做。如果B想让A的Hook Function也得这个讯息,那B就得呼叫CallNextHookEx()将这讯息Pass给A,於是产生Hook的一个连线。如果B中不想Pass这讯息给A,那就不要呼叫CallNextHookEx()。Declare Function CallNextHookEx Lib user32 Alias CallNextHookEx _ (ByVal hHook As Long, _ ByVal ncode As Long, _ ByVal wParam As Long, _ lParam As

30、Any) As LonghHook值是SetWindowsHookEx()的传回值,nCode, wParam, lParam则是Hook Procedure中的三个叁数。最後是将这Hook去除掉,请呼叫UnHookWindowHookEx()Declare Function UnhookWindowsHookEx Lib user32 Alias UnhookWindowsHookEx _ (ByVal hHook As Long) As LonghHook便是SetWindowsHookEx()的传回值。此时,以上例来说,B程式结束Hook,则换A可以直接拦截讯息。KeyBoard Hoo

31、k的范例Hook Function的三个叁数nCode wParam lParam 传回值HC_ACTION表按键Virtual Key与WM_KEYDOWN同若讯息要被处理传0或 反之传1HC_NOREMOVEPublic hHook as LongPublic Sub UnHookKBD ()If hnexthookproc 0 Then UnhookWindowsHookEx hHook hHook = 0End IfEnd SubPublic Function EnableKBDHook()If hHook 0 Then Exit FunctionEnd Ifhhook = SetWi

32、ndowsHookEx(WH_KEYBOARD, AddressOf _ MyKBHFunc, App.hInstance, App.ThreadId)End FunctionPublic Function MyKBHFunc(ByVal iCode As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long MyKBHfunc = 0 表示要处理这个讯息 If wParam = vbKeySnapshot Then 侦测 有没有按到PrintScreen键 MyKBHFunc = 1 在这个Hook便吃掉这个讯息 End If

33、 Call CallNextHookEx(hHook, iCode, wParam, lParam) 传给下一个HookEnd Function鼠标钩子的示例列下。(1)模块中输入:Public Const WM_MOUSEMOVE = &H200Public Const WM_LBUTTONDOWN = &H201Public Const WM_LBUTTONUP = &H202Public Const WM_LBUTTONDBLCLK = &H203Public Const WM_RBUTTONDOWN = &H204Public Const WM_RBUTTONUP = &H205Pub

34、lic Const WM_RBUTTONDBLCLK = &H206Public Const WM_MBUTTONDOWN = &H207Public Const WM_MBUTTONUP = &H208Public Const WM_MBUTTONDBLCLK = &H209Public Const WM_MOUSEACTIVATE = &H21Public Const WM_MOUSEFIRST = &H200Public Const WM_MOUSELAST = &H209Public Const WM_MOUSEWHEEL = &H20A 以上是鼠标的各个值Private Declar

35、e Function CallNextHookEx Lib user32 (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lparam As Any) As LongPublic Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lparam As Long) As Long If nCode 0 Then HookProc = CallNextHookEx(hHook, nCode, wParam, lparam) Exit F

36、unction End If If wParam = WM_RBUTTONDOWN Then MsgBox aa End IfEnd Function(2)窗体中输入:Private Declare Function SetWindowsHookEx Lib user32 Alias SetWindowsHookExA (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As LongPrivate Declare Function UnhookWindowsHookE

37、x Lib user32 (ByVal hHook As Long) As LongPrivate Const WH_MOUSE_LL As Long = 14Private Sub Form_Load() hHook = SetWindowsHookEx(WH_MOUSE_LL, AddressOf HookProc, App.hInstance, 0)End SubPrivate Sub Form_Unload(Cancel As Integer)Call UnhookWindowsHookEx(hHook)End Sub=保存图片:创建一个picturebox,其 autosize设为t

38、rue 创建一个按钮 运行以下代码 Option Explicit Private Sub Command1_Click() Picture1.Picture = Clipboard.GetData SavePicture Picture1.Picture, d:1.jpg 保存路径和文件名自己定 End Sub =将一个或多个按键(注意可以是多个)消息发送到活动窗口,就如同在键盘上进行输入一样。 语法 SendKeys string, wait SendKeys 语句的语法具有以下几个命名参数: 部分 描述 string 必需的。字符串表达式,指定要发送的按键消息。 Wait 可选的。指定等

39、待方式的 BooleandefBooleanDataTypeveendf98.chm 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。 说明 每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 A 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 ABCD 作为 string。 对 SendKeys 来说,加号 (+)、插入符 ()、百分比符号 (%)、上划线 () 及圆括号 ( ) 都具有特殊意

40、义。为了指定上述任何一个字符,要将它放在大括号 () 当中。例如,要指定正号,可用 + 表示。方括号 ( ) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 及 。 为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键,请使用下列代码: 按键 代码 BACKSPACE BACKSPACE, BS, 或 BKSP BREAK BREAK CAPS LOCK CAPSLOCK DEL or DELETE DE

41、LETE 或 DEL DOWN ARROW DOWN END END ENTER ENTER或 ESC ESC HELP HELP HOME HOME INS or INSERT INSERT 或 INS LEFT ARROW LEFT NUM LOCK NUMLOCK PAGE DOWN PGDN PAGE UP PGUP PRINT SCREEN PRTSC RIGHT ARROW RIGHT SCROLL LOCK SCROLLLOCK TAB TAB UP ARROW UP F1 F1 F2 F2 F3 F3 F4 F4 F5 F5 F6 F6 F7 F7 F8 F8 F9 F9 F1

42、0 F10 F11 F11 F12 F12 F13 F13 F14 F14 F15 F15 F16 F16 为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下: 按键 代码 SHIFT + CTRL ALT % 为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 +(EC)。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 +EC。 为了指定重复键,使用 key number 的形式。必须在 key 与 number 之间放置一个空格。例如,LEFT 42 意指 42 次按下 LEFT ARROW 键;h 10 则是指 10 次按下 H 键。 注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 PRTSC 发送到任何应用程序。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服