民航机场售票管理系统方案_第1页
民航机场售票管理系统方案_第2页
民航机场售票管理系统方案_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、青岛理工大学数据库系统课程设计院(系): 计算机工程学院专业:XXXXXXXXX姓名:XXXXXXX班级: XXXXXXXXX 学号:XXXXXXXXXX题目:民航机场售票管理系统起迄日期:设计地点:2 号实验楼402指导教师:XXXXXX目录第1章前言 41.1. 课题背景 41.2. 开发工具 41.2.1 Win dows SDK 41.2.2 SQL Server 2005数据库 41.2.3 ODBC API数据库连接技术 5第2章需求分析 62.1. 任务概述 62.1.1 系统目标 62.1.2 用户特点 62.2. 系统的功能需求 62.2.1 系统角色功能需求 62.2.2

2、功能模块 62.3. 系统的性能需求 72.4. 系统的数据需求 7第3章系统总体设计 93.1. 系统总体设计 9第4章数据库设计 104.1. 数据库概念设计 104.1.1 订票信息实体 E-R图 104.1.2 客户信息实体E-R图 104.1.3 航线信息实体 E-R图 114.1.4 客机信息实体 E-R图 114.1.5 舱位等级实体 E-R图 114.1.6 实体间关系 E-R图 124.2. 数据库逻辑设计 124.2.1 AIR_BOOK_TABLE (订票管理表) 124.2.2 AIR_PLANE_TABLE(飞机管理表) 124.2.3 AIR_SEAT_TABLE(

3、舱位管理表) 134.2.4 AIR_GUEST_TABLE(客户管理表) 134.2.5 AIR_LINE_TABLE(航线管理表) 13第5章详细设计 145.1. 页面设计 145.1.1 “登陆”界面 145.1.2 程序主界面 145.1.3 “机票预订信息管理”界面 155.1.4 “客户信息管理”界面 155.1.5 “航线信息管理”界面 165.1.6 “客机信息管理”界面 165.1.7 “舱位信息管理”界面 175.1.8 “关于”界面 175.2. 编码设计 18与数据库建立的链接 18522获取数据库中特定表的某元组 18523从数据库中删除、向数据库中添加信息 195

4、.2.4 与数据库断开连接 20第6章结论与展望 21参考文献 21第1章前言1.1. 课题背景现在人们更多的使用飞机作为出行交通工具,因此机票票务市场也在快速发展。人们希望机票销售手段也能相 应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极大的关注。随着社会的不断进步, 国内外航空事业的飞速发展,各航空公司对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求 也进行开发的。随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息 管理系统提出了更高的要求,所以要不断地完善更新航空售票系统,提高航空售票系统的工作效率。

5、航空系统中, 售票系统是很重要的一个环节,要想提高整个航空公司的工作效率,就要先提高售票系统的工作效率和安全性,故 而研发此系统,此系统能够为售票工作提供方便快捷的售票服务,广大的客户可以得到更高更好的票务服务。本系统实现一个单机版的机票售票管理系统,通过考察分析,构建出数据库,并且实现票务管理模块、客户信 息管理模块和航班信息管理模块。本系统的开发严格遵守软件工程开发的标准流程。通过对各个模块的实现来完成最后软件总体功能的实现。通 过观察,进行需求分析,画出E-R图和功能模块结构图。在模块设计的同时进行单元测试,系统设计完成进行系统调试。设计完成后,编写完整的软件说明书和用户手册,最后写对自

6、己所作设计的评价和总结。1.2. 开发工具1.2.1 Win dows SDKSDK Software Development Kit的缩写,中文即"软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。SDK是 一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK它可以简单的为某个程序设计语言提供应用程序接口 API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用 途的实用工具。SDK还经常包括示例代码、支持性的技

7、术注解或者其他的为基本参考资料澄清疑点的支持文档。本系统是用传统的 WINDOWS SD编程方式,通过调用 ODBC API来实现C+与数据库之间的链接。1.2.2 SQL Server 2005 数据库SQLServer是一个关系数据库管理系统。它最初是由Microsoft Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个 OS/2版本。在 Windows NT推出后,Microsoft 与Sybase在SQL Server的开发上就分道 扬镳了,Microsoft 将SQL Server移植到 Windows NT系统上,专注于开发推广SQL Server的

8、 Windows NT版本。Sybase则较专注于 SQL Server在UNIX操作系统上的应 SQL Server安装界面用。SQL Server 2005通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQL Server 2005能够把关键的信息及时的传递到组织内员工的手中,从而实现了SQL可伸缩的商业智能。 从CEO到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。Server 2005 全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的 平台上。1.2.3 ODBC AP数据库连接技术

9、ODBC是 一种使用SQL的程序设计接口。使用 ODBC让应用程序的编写者避免了与数据源相联的复杂性。这项技 术目前已经得到了大多数DBMS厂商们的广泛支持。ODBC是一种使用SQL的程序设计接口。使用 ODBC让应用程序32位ODBC驱动器。这些标准数据格式包括 以及Microsoft Text 。如果用户希望使用其的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS厂商们的广泛支持。Microsoft Developer Studio为大多数标准的数据库格式提供了有:SQL Server,Access,Paradox,dBase, FoxPro, Excel, Orac

10、le他数据格式,用户需要相应的ODBC驱动器及DBMSODBC API是一个内容丰富的数据库编程接口,包括60多个函数、SQL数据类型以及常量的声明。ODBCAPI是独立于DBMS和操作系统的,而且它与编程语言无关。ODBCAPI以X/Open和ISO/IEC中的CLI规范为基础,ODBC3.0 完全实现了这两种规范,并添加了基于视图的数据库应用程序开发人员所需要的共同特性,例如可滚动光标。ODB0PI中的函数由特定 DBMS驱动程序的开发人员实现,应用程序用这些驱动程序调用函数,以独立于DBMS的方式访问数据。ODBC API涉及了数据源连接与管理、结果集检索、数据库管理、数据绑定、事务操作

11、等内容,目前的最高版本 是 3.0。通常使用ODBC API开发数据库应用程序需要经过如下步骤:?连接数据源。?分配语句句柄。?准备并执行SQL语句。?获取结果集。?提交事务。?断开数据源连接并释放环境句柄。第2章需求分析2.1. 任务概述系统目标本系统需要满足以下几个系统设计目标。1)实用性原则:真正为用户的实际工作服务,给民航机场售票业务带来方便。2)友好性原则:本民航机场售票管理系统的用户是各大机场的售票人员,所以系统操作上要求简单、方便、快捷, 便于用户使用。用户特点本系统面向各大民航机场,因为在每年的寒假、暑假、重要的假期,会有大量的用户订购飞机票,所以会在节 假日的开始与结束时,本

12、系统会出现较大的负荷。其它时间符合比较均衡。2.2. 系统的功能需求系统角色功能需求本系统只有一种角色:管理员。管理员负责添加、删除客机信息、客户信息、航线信息、舱位信息以及票务信功能模块本系统主要负责管理模块,各个子模块功能需求如下:1)机票预订信息管理模块管理员可以添加机票预订信息,并可以对添加的机票预订信息进行添加、查询、删除。2)客户信息管理模块管理员可以批量添加客户信息,并可以对添加的客户信息进行添加、删除。3)航线信息管理模块管理员可以批量添加航线信息,并可以对添加的航线信息进行添加、删除。4)客机信息管理模块管理员可以批量添加客机信息,并可以对添加的客机信息进行添加、删除。5)舱

13、位信息管理模块管理员只可以修改飞机舱位信息。23系统的性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:1)系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。例如飞机信息属性添加、修改;客户信息属性添加、 修改等模块也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一 点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的 模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。2)系统的易用性和易维护性系统是直接面对使用人员的,而有些使

14、用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好 的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面; 针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的用户提供了方便的管理后台进 行数据管理,特别为系统管理员提供了数据备份,日常安全管理,防止系统意外崩溃等功能。3)系统的响应速度系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时 间和速度。系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。

15、严格保证操作人员不会因为速 度问题而影响工作效率。2.4.系统的数据需求通过对系统功能需求的分析,可以初步确定该系统的基本数据需求。由各个功能模块可以进一步确定具体的数 据需求,具体数据需求如下:1)机票预订模块数据需求该模块主要管理客户订票,需要表示的数据有:订票数据:应包含机票编号、机票价格客户数据:客户编号、客户姓名航线数据:航线编号、起始城市、终点城市、出发日期舱位数据:舱位类型编号2)客户信息管理模块该模块主要管理客户自身信息,需要表示的数据有:客户编号、客户姓名、客户性别、客户证件号、客户 电话。3)航线信息管理模块该模块主要管理航线自身信息,需要表示的数据有:航线编号、起始城市、

16、终点城市、出发时间、至U达时 间、飞机编号、经济舱价格、头等舱价格。4)客机信息管理模块该模块主要管理客机自身信息,需要表示的数据有:飞机编号、飞机类型、经济舱座位数、头等舱座位数。5)舱位信息管理模块该模块主要管理舱位自身信息,需要表示的数据有:舱位类型编号、舱位类型名称、是否有报刊、是否有 饮料、是否有食物、是否可取消、是否可打折第3章系统总体设计3.1.系统总体设计第4章数据库设计4.1. 数据库概念设计订票信息实体E-R图客户信息实体E-R图航线信息实体E-R图客机信息实体E-R图舱位等级实体E-R图实体间关系E-R图4.2. 数据库逻辑设计现在需要将上面的数据库概念结构转化为SQL

17、Server 2005 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。民航机场售票管理系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。票管理表)列名数据类型可否为空说明TicketNoint否机票编号CustomerNoint否客户编号CustomerNamen varchar(10)否客户姓名AirLi neNoint否航线编号StartCityn varchar(10)否出发城市En dCityn varchar(50)否终点城市TicketDaten varchar(50)否出发日期ServiceTypeint否舱位类型TicketPriceint

18、否机票价格飞机管理表)列名数据类型可否为空说明Pla neNoint否飞机编号Plan eTypen varchar(15)否飞机型号Com mon Noint否经济舱座位数FirstNoint否头等舱座位数423 AIR_SEAT_TABLE(位管理表)列名数据类型可否为空说明ServiceNoint否舱位类型编号ServiceNamen varchar(15)否舱位类型名称IsNewsPapern varchar(7)否是否有报纸IsDri nkn varchar(7)否是否有饮料IsFoodn varchar(7)否是否有食物CanCanceln varchar(7)否是否可取消Can

19、Discountn varchar(7)否是否可打折424 AIR_GUEST_TABL客户管理表)列名数据类型可否为空说明GuestNoint否客户编号GuestNamen varchar(10)否客户姓名GuestSexn varchar(4)否客户性别GuestIDn varchar(20)否客户证件号GuestTelen varchar(15)否客户电话航线管理表)列名数据类型可否为空说明AirLi neNoint否航线编号StartCityn char(10)否起始城市En dCityn char(10)否终点城市StartTimedatetime否出发时间En dTimedatet

20、ime否到达时间Pla neNoint否飞机编号Common Priceint否经济舱价格FirstPriceint否头等舱价格第5章详细设计5.1. 页面设计“登陆”界面通过用户输入的用户名及密码,如果用户名/密码输入错误,则会提示是否重新输入,若放弃输入,则该系统会自动退出。图表5-1用户名;密码;民飢机场直:|testingt JL JL 鼻 a. JE 見用户苦戒空码皓四图表5-2程序主界面系统登陆成功后,则会看到主界面,该系统的各功能可以从菜单栏中选择。图表5-3图表5-4“客户信息管理”界面5JS容户佶息它'理St)s3702031G52452345370Z031G5245

21、1270f256565flH595655?5f 3/U4h ltih2lbKblZfl9宁四图表5-5忧肮机场售棗营母乐缩Jfi线信符理数嘲攥作数摊餐作r严疑 机舉预订值&苛珏 習尸信忌苜理 顼线信忌苜理 囲机信忌首理 脂位信思苜理 就助 肮线佶息昔理laIH京泉嗨岛 匕邂比北昆音京京祈朮京南 JK北临怦北济12 1-4562D10 01 15 1 3:15:15 ZUIU-UI -16 I H:1b:2ti ?mn-oi-iK 1 fi;i5;u 2010 01 17 00;15J3 ZD1 U U1-1 U UB;1 5:1 5 201 Q-0 l-D I I 2:1 2:1 2粹

22、要则除的航线骗号图表5-6“客机信息管理”界面图表5-7在菜单上按“舱位信息管理”按钮后,会弹出“舱位信息管理”对话框。管理者可以在这个管理界面中实现对 飞机舱位信息的修改。图表5-8“关于”界面在菜单上按“关于”按钮后,会弹出“关于”对话框,它显示了作者的信息。图表5-952编码设计与数据库建立的链接用ODBC API与数据库建立连接需要经过如下几步:分配环境句柄 -> 设置ODBC版本号-> 分配连接句柄-> “用户 名/密码”登陆数据库。我创建了函数ODBC_CONNE来管理系统与数据库的链接,该函数会在主程序执行时被调用。BOOL ODBC_CONNECT(co ns

23、t char *DSN_NAME, const char *USER_NAME, con st char *USER_PASSWORD) /分配环境句柄n Result=SQLAIIocHa ndle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &he nv);if(n Result != SQL_SUCCESS) && (n Result != SQL_SUCCESS_WITH_INFO)return FALSE;/设置ODBC版本号n Result=SQLSetE nvAttr(he nv, SQL_ATTR_ODBC_VERSION, (vo

24、id*)SQL_OV_ODBC3, 0);if(n Result != SQL_SUCCESS) && (n Result != SQL_SUCCESS_WITH_INFO) return FALSE;/分配连接背景n Result=SQLAllocHa ndle(SQL_HANDLE_DBC, he nv, &hdbc);if(n Result != SQL_SUCCESS) && (n Result != SQL_SUCCESS_WITH_INFO)return FALSE;/连接数据库n Result=SQLCo nn ect(hdbc,(SQLC

25、HAR*)DSN_NAME, SQL_NTS, (SQLCHAR*)USER_NAME, SQL_NTS,(SQLCHAR*)USER_PASSWORD, SQL_NTS);if(n Result != SQL_SUCCESS) && (n Result != SQL_SUCCESS_WITH_INFO)return FALSE;return TRUE;获取数据库中特定表的某元组是用ODBC API从数据库中取出特定表中的某一个元组,需要经过如下操作:分配句柄-> 执行SQL语句-> 获取语句执行后返回的数据的属性的个数 -> 将每一个属性与本地变量绑定 -&

26、gt; 循环取数据,每次一个元组,并做相应处理 -> 释放语句执行句柄为实现该功能,我编写了ODBC_DISPLAYLIS函数,它会在每次产生子对话框时被调用,它也会在每次用户更新数据库后被调用(因为显示在程序界面上的数据要和数据库中的数据同步)。BOOL ODBC_DISPLAYLIST(co nst char *SQLSCENTENCE, HWND &hwn dDlg, i nt Con trolID)/分配句柄n Result=SQLAIIocHa ndle(SQL_HANDLE_STMT, hdbc, &hstmt);if(n Result != SQL_SUCC

27、ESS) && (n Result != SQL_SUCCESS_WITH_INFO)return FALSE;/执行SQL语句n Result=SQLExecDirect(hstmt, (un sig ned char*)SQLSCENTENCE, SQL_NTS);if(n Result != SQL_SUCCESS) && (n Result != SQL_SUCCESS_WITH_INFO)return FALSE;/获取语句执行后返回的数据的属性的个数,保存在nCols变量中SQLNumResultCols(hstmt, &n Cols);/将

28、每一个属性与本地变量绑定for(n Cou nt=O; n Cou nt< nCols; n Cou nt+)(longSQLB in dCol(hstmt,(UWORD)( nCou nt+1),SQL_C_CHAR, data nCoun t,MAXDATALEN,*)& dwDataLe nn Cou nt);/循环取数据,每次一个元组,并做相应处理(在此是用这些填充列表框)while(SQL_SUCCESS=SQLFetch(hstmt)memset(DATA_TEMP, 0, sizeof(DATA_TEMP);for(n Cou nt=O; n Cou nt<

29、nCols; nCou nt+)if(dwDataLe nn Cou nt!=SQL_NULL_DATA)wsprintf(DATA_ENUM, %30s", datanCount);lstrcat(DATA_TEMP, DATA_ENUM);/向列表框中填充数据Sen dDlgltemMessage(hw ndDIg, Co ntrollD, LB_ADDSTRING, 0, (LPARAM)DATA_TEMP);/为列表框添加滚动条Sen dDlgItemMessage(hw ndDIg, Con trolID, LB_SETHORIZONTALEXTENT, 1500, 0);

30、/释放语句执行句柄SQLCloseCursor(hstmt);SQLFreeStmt(hstmt, SQL_UNBIND);SQLFreeHa ndle(SQL_HANDLE_STMT, hstmt);return TRUE;从数据库中删除、向数据库中添加信息数据库信息的添加、删除分别是执行 SQL语句的“INSERTINTO”“DELETEFROM,所以我编写了 ODBC_EXECSQLDIRT函数来实现程序对 SQL语句的执行,统一了插入、删除算法的编写,都是经过:获取变量值-> 构造SQL语句-> 执行SQL语句-> 完毕。该函数将在每次用户向数据库中“插入”、“删除”

31、数据时执行。BOOL ODBC_EXECSQLDIRT(co nst char *SQLSCENTENCE)n Result=SQLAIIocHa ndle(SQL_HANDLE_STMT, hdbc, &hstmt);if(n Result!=SQL_SUCCESS) && (n Result!=SQL_SUCCESS_WITHNF O)return FALSE;n Result=SQLExecDirect(hstmt, (un sig ned char *)SQLSCENTENCE, SQL_NTS);if(n Result!=SQL_SUCCESS) && (n Result!=SQL_SUCCESS_WITHNFO) && (n

温馨提示

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

评论

0/150

提交评论