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

下载本文档

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

文档简介

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

2、62.2.1 系统角色功能需求 62.2.2 功能模块 62.3. 系统的性能需求 72.4. 系统的数据需求 7第3 章 系统总体设计 83.1.系统总体设计 8第4 章 数据库设计 94.1. 数据库概念设计 94.1.1 订票信息实体E-R 图 94.1.2 客户信息实体E-R 图 94.1.3 航线信息实体E-R 图 104.1.4 客机信息实体E-R 图 104.1.5 舱位等级实体E-R 图 104.1.6 实体间关系E-R 图 114.2. 数据库逻辑设计114.2.1 AIR_BOOK_TABLE (订票管理表)114.2.2 AIR_PLANE_TABLE( 飞机管理表)11

3、4.2.3 AIR_SEAT_TABLE( 舱位管理表) 124.2.4 AIR_GUEST_TABLE( 客户管理表)124.2.5 AIR_LINE_TABLE( 航线管理表) 12第 5 章 详细设计135.1. 页面设计 135.1.1 登陆 “ ”界面 135.1.2 程序主界面 135.1.3 机票预订信息管理”界面 “ 145.1.4 客户信息管理”界面 “ 145.1.5 航线信息管理”界面 “ 155.1.6 客机信息管理”界面 “ 155.1.7 舱位信息管理”界面 “ 165.1.8 关于”界面 “ 165.2. 编码设计 175.2.1 与数据库建立的链接 175.2.

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

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

6、时进行单元测试,系统设计完成进行系统 调试。设计完成后,编写完整的软件说明书和用户手册,最后写对自己所作设计的评价和总结。1.2. 开发工具1.2.1 Windows SDKSDK, Software Development Kit的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、 范例和工具的集合。SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口 API的一些文件,但也可能包括能与某种嵌入式系统通讯的复

7、杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。本系统是用传统的 WINDOWS SDK编程方式,通过调用 ODBC API来实现C+与数据库之间的链接。1.2.2 SQL Server 2005 数据库SQLServer是一个关系数据库管理系统。它最初是由 Microsoft Sybase和Ashton-Tate三家公司共同开发的, 于1988年推出了第一个 OS/2版本。在 Windows NT推出后,Microsoft 与Sybase在SQL Server的开发上就分道 扬镶了,Microsoft

8、 将SQL Server移植到 Windows NT系统上,专注于开发推广SQL Server的 Windows NT版本。Sybase则较专注于 SQL Server在UNIX操作系统上的应 SQL Server安装界面用。SQL Server 2005通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQL Server 2005 能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。从 CEO到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQLServer 2005 全面的集成、分析和报表功能使企业能

9、够提高他们已有应用的价值,即便这些应用是在不同的平 台上。1.2.3 ODBC API 数据库连接技术ODBB一种使用SQL的程序设计接口。使用ODBC让应用程序的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS厂商们的广泛支持。ODBC是一种使用SQL的程序设计接口。使用ODBC让应用程序的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS厂商们的广泛支持。Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBCW动器。这些标准数据格式包括有: SQL Server , Access , Paradox , d

10、Base, FoxPro , Excel , Oracle 以及 Microsoft Text 。如果用户希望使用其 他数据格式,用户需要相应的ODBCB动器及DBMSODBC API 是一个内容丰富的数据库编程接口,包括60 多个函数、SQL 数据类型以及常量的声明。ODBCAPI 是独立于DBMS和操作系统的,而且它与编程语言无关。ODBCAPI以X/Open和ISO/IEC中的CLI规范为基础,ODBC3.0完全实现了这两种规范,并添加了基于视图的数据库应用程序开发人员所需要的共同特性,例如可滚动光标。ODBCAPI中的函数由特定 DBMSB动程序的开发人员实现,应用程序用这些驱动程序调

11、用函数,以独立于DBMS的方式访问数据。ODBC API 涉及了数据源连接与管理、结果集检索、数据库管理、数据绑定、事务操作等内容,目前的最高版本 是 3.0 。通常使用ODBC API 开发数据库应用程序需要经过如下步骤:? 连接数据源。? 分配语句句柄。? 准备并执行SQL 语句。? 获取结果集。? 提交事务。? 断开数据源连接并释放环境句柄。第 2章 需求分析2.1. 任务概述2.1.1 系统目标本系统需要满足以下几个系统设计目标。1) 实用性原则:真正为用户的实际工作服务,给民航机场售票业务带来方便。2) 友好性原则:本民航机场售票管理系统的用户是各大机场的售票人员,所以系统操作上要求

12、简单、方便、快捷,便于用户使用。2.1.2 用户特点本系统面向各大民航机场,因为在每年的寒假、暑假、重要的假期,会有大量的用户订购飞机票,所以会在节假日的开始与结束时,本系统会出现较大的负荷。其它时间符合比较均衡。2.2. 系统的功能需求1) 2.1 系统角色功能需求本系统只有一种角色:管理员。管理员负责添加、删除客机信息、客户信息、航线信息、舱位信息以及票务信2) 2.2功能模块本系统主要负责管理模块,各个子模块功能需求如下:3) 机票预订信息管理模块管理员可以添加机票预订信息,并可以对添加的机票预订信息进行添加、查询、删除。4) 客户信息管理模块管理员可以批量添加客户信息,并可以对添加的客

13、户信息进行添加、删除。5) 航线信息管理模块管理员可以批量添加航线信息,并可以对添加的航线信息进行添加、删除。6) 客机信息管理模块管理员可以批量添加客机信息,并可以对添加的客机信息进行添加、删除。7) 舱位信息管理模块管理员只可以修改飞机舱位信息。2.3. 系统的性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:1) 系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。例如飞机信息属性添加、修改;客户信息属性添加、 修改等模块也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一 点,应通过系统的

14、开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的 模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。2) 系统的易用性和易维护性系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好 的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面; 针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的用户提供了方便的管理后台进 行数据管理,特别为系统管理员提供了数据备份,日常安全

15、管理,防止系统意外崩溃等功能。3) 系统的响应速度系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时 间和速度。系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。严格保证操作人员不会因为速度问题而影响工作效率。2.4. 系统的数据需求通过对系统功能需求的分析,可以初步确定该系统的基本数据需求。由各个功能模块可以进一步确定具体的数 据需求,具体数据需求如下:1) 机票预订模块数据需求 该模块主要管理客户订票,需要表示的数据有: 订票数据:应包含机票编号、机票价格 客户数据:客户编号、客户姓名 航线数据:航线编号、起始城市、终点城市、出发日期

16、 舱位数据:舱位类型编号2) 客户信息管理模块 该模块主要管理客户自身信息,需要表示的数据有:客户编号、客户姓名、客户性别、客户证件号、客户电话。3) 航线信息管理模块 该模块主要管理航线自身信息,需要表示的数据有:航线编号、起始城市、终点城市、出发时间、到达时 间、飞机编号、经济舱价格、头等舱价格。4) 客机信息管理模块 该模块主要管理客机自身信息,需要表示的数据有:飞机编号、飞机类型、经济舱座位数、头等舱座位数。5) 舱位信息管理模块 该模块主要管理舱位自身信息,需要表示的数据有:舱位类型编号、舱位类型名称、是否有报刊、是否有饮料、是否有食物、是否可取消、是否可打折第3章系统总体设计3.1

17、.系统总体设计第4章数据库设计4.1. 数据库概念设计4.1.1 订票信息实体E-R图4.1.2 客户信息实体E-R图证件号码4.1.3航线信息实体E-R图4.1.4客机信息实体E-R图4.1.5舱位等级实体E-R图4.1.6实体间关系E-R图4.2. 数据库逻辑设计现在需要将上面的数据库概念结构转化为SQL Server 2005数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。民航机场售票管理系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。4.2.1 AIR_BOOK_TABLE (订票管理表)列名数据类型可否为空说明TicketNoint否机票编号Cu

18、stomerNoint否客户编号CustomerNamenvarchar(10)否客户姓名AirLineNoint否航线编号StartCitynvarchar(10)否出发城巾EndCitynvarchar(50)否终点城巾TicketDatenvarchar(50)否出发日期ServiceTypeint否舱位类型TicketPriceint否机票价格4.2.2 AIR_PLANE_TABLE(飞机管理表)列名数据类型可否为空说明PlaneNoint否飞机编号PlaneTypenvarchar(15)否飞机型号CommonNoint否经济舱座位数FirstNoint否头等舱座位数4.2.3 A

19、IR_SEAT_TABLE(舱位管理表)列名数据类型可否为空说明ServiceNoint否舱位类型编号ServiceNamenvarchar(15)否舱位类型名称IsNewsPapernvarchar否是否有报纸IsDrinknvarchar否是否有饮料IsFoodnvarchar否是否有食物CanCancelnvarchar否是否可取消CanDiscountnvarchar否是否可打折4.2.4 AIR_GUEST_TABLE(客户管理表)列名数据类型可否为空说明GuestNoint否客户编号GuestNamenvarchar(10)否客户姓名GuestSexnvarchar(4)否客户性别

20、GuestIDnvarchar(20)否客户证件号GuestTelenvarchar(15)否客户电话4.2.5 AIR_LINE_TABLE(航线管理表)列名数据类型可否为空说明AirLineNoint否航线编号StartCitynchar(10)否起始城巾EndCitynchar(10)否终点城巾StartTimedatetime否出发时间EndTimedatetime否到达时间PlaneNoint否飞机编号CommonPriceint否经济舱价格FirstPriceint否头等舱价格-/第5章详细设计5.1. 页面设计5.1.1 “登陆”界面通过用户输入的用户名及密码,如果用户名/密码输

21、入错误,则会提示是否重新输入,若放弃输入,则该系统会自动退出。图表5-1图表5-2图表5-35.1.2 程序主界面系统登陆成功后,则会看到主界面,该系统的各功能可以从菜单栏中选择。-/5.1.3 ”机票预订信息管理”界面图表5-53U3巽李Ju哲湖结果,刘凯删除图表5-45.1.4 “客户信息管理”界面S星喷加g隹三合础车tt客户信息官理Q回国需户信息管埋明福而四令王季季3了口20316524523Ab4 3702031 652-151278E 25G5GGU959GGB52BE 3702451652456612?敬捻集作客户信息二客户班号工|注户姓垢身份证号码工客户性别我系电话,数期探作再加

22、-/6.1.5 ”航线信息管理”界面图表5-78民肮机场自穿号性系绩航线信息管理2D10 01 1S 1 3:15:15数据岸作2UIU-UI-lf> ?nin-ni-iR 2010 01 17 2D1 u ui-i u 201 0-01-DI产场机票预订信息吉旺若尸后悬首理顼编G息哲理雷矶信息营理的应信息哲理就助 航线信息者理海因京泉胴曲 上责北北昆吉京京祈北京南 北北啮坏北济I 1 8:1 5:120 3:15:13 B:15:ISI 2:1 2: I 2图表5-65.1.6 ”客机信息管理”界面-/5.1.7 ”舱位信息管理”界面在菜单上按“舱位信息管理”按钮后,会弹出“舱位信息管

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

24、char *USER_PASSWORD) /分配环境句柄nResult=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;/设置ODBC 版本号nResult=SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);if(nResult != SQL_SUCCESS) &&

25、amp; (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;/分配连接背景nResult=SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;/连接数据库nResult=SQLConnect(hdbc, (SQLCHAR*)DSN_NAME, SQL_NTS, (SQLCHAR*)USER_NAME, SQL_NTS, (SQLCHAR

26、*)USER_PASSWORD, SQL_NTS);if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;return TRUE; 5.2.2 获取数据库中特定表的某元组是用 ODBC API 从数据库中取出特定表中的某一个元组,需要经过如下操作:分配句柄-执行 SQL 语句-获取语句执行后返回的数据的属性的个数- 将每一个属性与本地变量绑定-循环取数据,每次一个元组,并做相应处理-释放语句执行句柄.为实现该功能,我编写了ODBC_DISPLAYLIST 函数,它会在每次产生子

27、对话框时被调用,它也会在每次用户更新数据库后被调用(因为显示在程序界面上的数据要和数据库中的数据同步)。BOOL ODBC_DISPLAYLIST(const char *SQLSCENTENCE, HWND &hwndDlg, int ControlID) /分配句柄nResult=SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;/执行SQL 语句nResult=

28、SQLExecDirect(hstmt, (unsigned char*)SQLSCENTENCE, SQL_NTS);if(nResult != SQL_SUCCESS) && (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;/获取语句执行后返回的数据的属性的个数,保存在nCols 变量中SQLNumResultCols(hstmt, &nCols);/将每一个属性与本地变量绑定for(nCount=0; nCountnCols; nCount+)SQLBindCol(hstmt, (UWORD)(nCount+1),

29、SQL_C_CHAR, datanCount, MAXDA TALEN, (long *)&dwDataLennCount);/循环取数据,每次一个元组,并做相应处理(在此是用这些填充列表框)while(SQL_SUCCESS=SQLFetch(hstmt)memset(DATA_TEMP, 0, sizeof(DATA_TEMP);for(nCount=0; nCountnCols; nCount+)if(dwDataLennCount!=SQL_NULL_DATA) wsprintf(DATA_ENUM, "%-30s", datanCount);lstrcat

30、(DATA_TEMP, DATA_ENUM);/向列表框中填充数据SendDlgItemMessage(hwndDlg, ControlID, LB_ADDSTRING, 0, (LPARAM)DATA_TEMP);/为列表框添加滚动条SendDlgItemMessage(hwndDlg, ControlID, LB_SETHORIZONTALEXTENT, 1500, 0);/释放语句执行句柄SQLCloseCursor(hstmt);SQLFreeStmt(hstmt, SQL_UNBIND);SQLFreeHandle(SQL_HANDLE_STMT, hstmt);return TRU

31、E;5.2.3 从数据库中删除、向数据库中添加信息数据库信息的添加、删除分别是执行SQL 语句的“INSERT INTO ”、 “ DELETE FROM ”,所以我编写了ODBC_EXECSQLDIRT 函数来实现程序对SQL 语句的执行,统一了插入、删除算法的编写,都是经过:获取变量值-构造SQL 语句 -执行 SQL 语句 -完毕。该函数将在每次用户向数据库中“插入”、 “删除”数据时执行。BOOL ODBC_EXECSQLDIRT(const char *SQLSCENTENCE) nResult=SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);if(nResult!=SQL_SUCCESS) && (nResult!=SQL_SUCCESS_WITH_INFO) return FALSE;nResult=SQLExecDirect(hstmt, (unsigned char *)SQLSCENTENCE, SQL_NTS);if(nResult!=SQL_SUCCESS) && (nResult!=SQL_SUCCESS_WITH_INFO) && (nRe

温馨提示

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

评论

0/150

提交评论