民航机场售票管理系统

上传人:w**** 文档编号:43631140 上传时间:2021-12-03 格式:DOC 页数:27 大小:917KB
收藏 版权申诉 举报 下载
民航机场售票管理系统_第1页
第1页 / 共27页
民航机场售票管理系统_第2页
第2页 / 共27页
民航机场售票管理系统_第3页
第3页 / 共27页
资源描述:

《民航机场售票管理系统》由会员分享,可在线阅读,更多相关《民航机场售票管理系统(27页珍藏版)》请在装配图网上搜索。

1、青岛理工大学数据库系统课程设计院(系):专业:XXXXXXXXX姓名:XXXXXXX班级: XXXXXXXXX 学号:题目:民航机场售票管理系统起迄日期:2011. 1.3 2011 1. 14设计地点: 2号实验楼402指导教师:XXXXXX目录第1章前言41.1. 课题背景41.2. 开发工具41.2.1 Windows SDK41.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功能模块62.3. 系统的性能

2、需求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(舱位管理表)134.2.4 AIR_GUEST_TABLE(客户管理表)134.2.

3、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. 编码设计185.2.1与数据库建立的链接185.2.2获取数据库中特定表的某元组185.2.3从数据库中删除、向数据库中添加信息195.2.4与数据库断开连接20第6章结论与展望21参考文献21第1章前言课题背景现在人们更多的使用飞机作为出行交

4、通工具,因此机票票务市场也在快速发展。人们希望机票销售手段也能相 应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极人的关注。随着社会的不断进步, 国内外航空事业的飞速发展,各航空公司对票务管理的要求也在不断的提高,本系统就是针对这种口益增长的需求 也进行开发的。随着旅游业的逐渐的成熟发达,航空客运量人幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息 管理系统提出了更高的要求,所以要不断地完善更新航空售票系统,提高航空售票系统的工作效率。航空系统中, 售票系统是很重要的一个坏节,要想提高整个航空公司的工作效率,就要先提高售票系统的工作效率和安全性,故 而研发此系统

5、,此系统能够为售票工作提供方便快捷的售票服务,广人的客户可以得到更高更好的票务服务。本系统实现一个单机版的机票售票管理系统,通过考察分析,构建出数据库,并且实现票务管理模块、客户信 息管理模块和航班信息管理模块。本系统的开发严格遵守软件工程开发的标准流程。通过对各个模块的实现来完成最后软件总体功能的实现。通 过观察,进行需求分析,画出E-R图和功能模块结构图。在模块设计的同时进行单元测试,系统设计完成进行系统 调试。设计完成后,编写完整的软件说明书和用户手册,最后写对自己所作设计的评价和总结。12开发工具1.2.1 Windows SDKSDK, Software Development Ki

6、t的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、 范例和工具的集合。SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的 集合,一般而言SDK即开发Windows平台卞的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应 用程序接II API的一些文件,但也可能包扌舌能与某种嵌入式系统通讯的复杂的硬件。一般的工具包扌舌用于调试和其 他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。本系统是用传统的WINDOWS SDK编程方式,通过调用ODEC API来实现C

7、+与数据库之间的链接。1.2.2 SQL Server 2005 数据库SQL Server是一个关系数据库管理系统。它最初是由Microsoft Sybase和Ashton-Tate三家公司共同开发的, 1988年推出了第一个OS/2版本。在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道 扬维了,Microsoft将SQL Server移植到Windows NT系统上,专注于升发推广SQL Server的Windows NT版本。 Sybase则较专注于SQL Server在UNIX操作系统上的应SQL Server安装界面用。SQL Ser

8、ver 2005通过在可伸缩性、数据集成、开发工具和强人的分析等方面的革新更好的确立了微软 在EI领域的领导地位。SQL Server 2005能够把关键的信息及时的传递到组织内员工的手中,从而实现了可 伸缩的商业智能。从CEO到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQL Server 2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平 台上。1.2.3 ODBC API数据库连接技术ODBC是一种使用SQL的程序设计接I I。使用ODBC让应用程序的编写者避免了与数据源相联的复杂性。这项技 术目前已经得到了大多数DBMS

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

10、SQL数据类型以及常量的声明。0DBCAPI是 独立于DBMS和操作系统的,而且它与编程语言无关oODBC API以X/0pen和ISO/IEC中的CLI规范为基础,ODBC 3. 0 完全实现了这两种规范,并添加了基于视图的数据库应用程序开发人员所需要的共同特性,例如可滚动光标。ODBC API 中的函数由特定DBMS驱动程序的开发人员实现,应用程序用这些驱动程序调用函数,以独立于DBMS的方式访问数 据。ODBC API涉及了数据源连接与管理、结果集检索、数据库管理、数据绑定、事务操作等内容,目前的最高版本 是 3. 0o通常使用ODBC API开发数据库应用程序需要经过如卞步骤:连接数据

11、源。分配语句句柄。准备并执行SQL语句。获取结果集。提交事务。断开数据源连接并释放坏境句柄。第2章需求分析2.1 任务概述2.1.1系统目标本系统需要满足以下几个系统设计目标。1)实用性原则:真正为用户的实际工作服务,给民航机场售票业务带来方便。2)友好性原则:本民航机场售票管理系统的用户是各人机场的售票人员,所以系统操作上要求简单、方便、快捷, 便于用户使用。2.1.2用户特点本系统面向各大民航机场,因为在每年的寒假、暑假、重要的假期,会有人量的用户订购飞机票,所以会在节 假口的开始与结束时,本系统会出现较大的负荷。其它时间符合比较均衡。22系统的功能需求2.2.1系统角色功能需求本系统只有

12、一种角色:管理员。管理员负责添加、删除客机信息、客户信息.航线信息、舱位信息以及票务信222功能模块本系统主要负责管理模块,各个子模块功能需求如下:1)机票预订信息管理模块管理员可以添加机票预订信息,并可以对添加的机票预订信息进行添加、查询、删除。2)客户信息管理模块管理员可以批量添加客户信息,并可以对添加的客户信息进行添加、删除。3)航线信息管理模块管理员可以批量添加航线信息,并可以对添加的航线信息进行添加、删除。4)客机信息管理模块管理员可以批量添加客机信息,并可以对添加的客机信息进行添加、删除。5)舱位信息管理模块管理员只可以修改飞机舱位信息。2.3.系统的性能需求为了保证系统能够长期、

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

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

15、需求的分析,可以初步确定该系统的基本数据需求。由各个功能模块可以进一步确定具体的数 据需求,具体数据需求如下:1)机票预订模块数据需求该模块主要管理客户订票,需要表示的数据有:订票数据:应包含机票编号、机票价格客户数据:客户编号、客户姓名航线数据:航线编号、起始城市、终点城市、出发口期舱位数据:舱位类型编号2)客户信息管理模块该模块主要管理客户自身信息,需要表示的数据有:客户编号、客户姓名、客户性别、客户证件号、客户 电话。3)航线信息管理模块该模块主要管理航线自身信息,需要表示的数据有:航线编号、起始城市、终点城市、出发时间、到达时 间、飞机编号、经济舱价格、头等舱价格。4)客机信息管理模块

16、该模块主要管理客机自身信息,需要表示的数据有:飞机编号、飞机类型、经济舱座位数、头等舱座位数。5)舱位信息管理模块该模块主要管理舱位自身信息,需要表示的数据有:舱位类型编号、舱位类型名称、是否有报刊、是否有 饮料、是否有食物.是否可取消、是否可打折第3章系统总体设计3.1.系统总体设计第4章数据库设计4-1-数据库概念设计4.1.1订票信息实体E-R图4.1.2客户信息实体ER图客户编号证件号码联系电话4.1.3航线信息实体E-R图4.1.4客机信息实体E-R图4.1.5舱位等级实体E-R图4.1.6实体间关系E-R图4.2.数据库逻辑设计现在需要将上面的数据库概念结构转化为SQL Serve

17、i 2005数据库系统所支持的实际数据模型,也就是数据库的 逻辑结构。民航机场售票管理系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。4.2.1 AIR_BOOK_TABLE (订票管理表)列名数据类型可否为空说明TicketNoint否机票编号CustomerNoint否客户编号CustomerNamenvaichai(10)否客户姓名AiiLiiieNoint否航线编号StartCitynvaichai(10)否出发城市EndCitynvaichai(50)否终点城市TicketDatenvaichar(50)否出发日期SeiviceTypeint否舱位类型T

18、icketPricelilt否机票价格422 AIR_PLANE_TABLE(飞机管理表)列名数据类型可否为空说明PlaneNoint否飞机编号PlaneTypenvaichai(15)否飞机型号CoimnoiiNoint否经济舱座位数FiistNolilt否头等舱座位数423 AIR_SEAT_TABLE(舱位管理表)列名数据类型可否为空说明SeiviceNoint否舱位类型编号SeiviceNamenvaichai(15)否舱位类型名称IsNewsPapernvaichai(7)否是否有报纸IsDrinknvaichai(7)否是否有饮料IsFoodnvaichai(7)否是否有食物Can

19、Cancelnvaichai(7)否是否可取消CaiiDiscountnvaichai(7)否是否可打折424 AIR_GUEST_TABLE(客户管理表)列名数据类型可否为空说明GuestNoint否客户编号GuestNamenvaichai(10)否客户姓名GuestSexnvaichai(4)否客户性别GuestIDnvaichai(20)否客户证件号GuestTelenvaichai(15)否客户电话425 AIR_LINE_TABLE(航线管理表)列名数据类型可否为空说明AiiLiiieNoint否航线编号StartCitynchar(lO)否起始城市EndCitynchar(lO)

20、否终点城市StartTunedatetime否出发时间EndTiinedatetime否到达时间PlaneNoint否飞机编号CoimnoiiPnceint否经济舱价格FiistPricelilt否头等舱价格第5章详细设计5-1.页面设计5丄1 “登陆”界面通过用户输入的用户名及密码,如果用户名/密码输入错误,则会提示是否重新输入,若放弃输入,则该系统会 自动退出。图表5-1图表5-2图表5-35.1.2程序主界面系统登陆成功后,则会看到主界面,该系统的各功能可以从菜单栏中选择。5.13 “机票预订信息管理”界面图表545丄4 “客户信息管理”界面,手客户信息管理I ,听彳I客户信息皆理123

21、4-5678911麴容户执信息漳加370203165245234S/37020316524512781 2565G509595G5525t37024516524566125春户姓名匕客户性别二图表5-65丄5 “航线信息管理”界面3民航机场售票管理系统-JLPlteiS东统机票预订信急吉理客户信息笆理航线信息首芳范位信息电r理帘助航线倍息皆理2010-01 15 2010-01-16 Z01 0-01-16 2010-01-17 2010-01 10 2010-01-011 9:15:15 18:15:261 8:15:1209:15:1308:15:1512:12:121图表5-65丄6 “

22、客机信息管理”界面s民航机场售票首理系统lu)容机信息管理客机信息漳加12345678客机佶息MS0 129 1 1 1 图表57图表5-105.1.7 “舱位信息管理”界面在菜单上按“舱位信息管理”按钮后,会弹出“舱位信息管理”对话框。管理者可以在这个管理界面中实现对 飞机舱位信息的修改。S反WUJUS吿荼曾珂系纯烝无 机京丽讦倍*层管理 毎戸佞耳弩理1血位佶息骨理VES YES数期探作修改子号,200807255flfi位佶息丄脸位类型号二是否可取ifihjlI足査可打折=jd数4S垛作上MS在菜单上按“关于”按钮后,会弹出“关于”对话框,它显示了作者的信息。條改图表5-85.1.8 “关

23、于”界面52编码设计5.2.1与数据库建立的链接用ODBC API与数据库建立连接需要经过如下几步:分配环境句柄设置ODEC版本号-分配连接句柄“用 户名/密码”登陆数据库。我创建了函数ODBC_CONNECT来管理系统与数据库的链接,该函数会在主程序执行时被调用。BOOL ODBC_CONNECT(const char *DSN_NAME, const char *USER_NAME. const char *USER_PASSWORD) 分配环境句柄iiResult=SQLAllocHandle(SQL.HANDLE_ENV, SQL_NULL_HANDLE. &henv);if(iiRe

24、sult != SQL_SUCCESS) & (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;设置ODBC版本号iiResult=SQLSetEnvAttr(henv, SQL_ATTR_ODEC_VERSION, (void*)SQL_OV_ODEC3, 0);if(iiResult != SQL_SUCCESS) & (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;分配连接背景iiResult=SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);if(iiResu

25、lt != SQL_SUCCESS) & (nResult != SQL_SUCCESS_WITH_INFO)return FALSE;连接数据库iiResult=SQLCoimect(hdbc, (SQLCHAR*)DSN_NAME, SQL_NTS、 (SQLCHAR*)USER_NAME, SQL_NTS、 (SQLCHAR*)USER_PASSWORD. SQL.NTS);if(iiResult != SQL_SUCCESS) & (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;remin TRUE;5.2.2获取数据库中特定表的某元组是

26、用ODBC API从数据库中取出特定表中的某一个元组,需要经过如卞操作:分配句柄执行SQL语句-获取 语句执行后返回的数据的属性的个数亠将每一个属性与本地变量绑定-循坏取数据,每次一个元组,并做相应处理- 释放语句执行句柄.为实现该功能,我编写了 ODBC_DISPLAYLIST函数,它会在每次产生子对话框时被调用,它也会在每次用户 更新数据库后被调用(因为显示在程序界面上的数据要和数据库中的数据同步)。BOOL ODBC_DISPLAYLIST(const char *SQLSCENTENCE, HWND &hwndDlg, int ContiolLD)分配句柄iiResult=SQLAll

27、ocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);if(iiResult != SQL_SUCCESS) & (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;执行SQL语句iiResult=SQLExecDuect(hstmt, (unsigned char*)SQLSCENTENCE, SQL_NTS);if(iiResult != SQL_SUCCESS) & (nResult != SQL_SUCCESS_WITH_INFO) return FALSE;获取语句执行后返回的数据的属性的个数,保存在nCols变量

28、中SQLNuniResultCols(hstmt, &nCols);将每一个属性与本地变量绑定fbr(nCount=0; nCountnCols; nCount+)SQLBindCol(hstmt, (UWORD)(nC ount+1),SQL_C_CHAR, datanCount, MAXDAIALEN, (long*)&dwDataLennCount);/循环取数据,每次一个元组,并做相应处理(在此是用这些填充列表框) wlule(SQL_SUCCESS=SQLFetch(hstmt)meniset(DATA_TENIP, 0, sizeof(DATA_TEMP);fbr(nCount=0

29、; nCountnCols; nCount+) if(dwDataLennC ount! =SQL_NULL_D ATA)wspimtf(DATA_ENUNI, H%-30sH, datanCount); lstrcat(DATA_TEMP. DATA_ENUM);向列表框中填充数据SendDlgIteinMessage(hwndDlg, ContiolED, LB_ADDSTRING; 0, (LPARAM)DATA_TEMP);为列表框添加滚动条SendDlgIteniMessage(hwndDlg, ControlID, LB.SETHORIZONTALEXTENT, 1500, 0);

30、释放语句执行句柄SQLCloseCursor(hstmt);SQLFreeStmt(hstmt, SQL_UNBIND);SQLFieeHandle(SQL_HANDLE.STNITJistmt);letuin TRUE;523从数据库中删除.向数据库中添加信息数据库信息的添加、删除分别是执行SQL语句的“INSERT INTO DELETE FROM,所以我编写了 ODBC.EXECSQLDIRT函数来实现程序对SQL语句的执行,统一了插入、删除算法的编写,都是经过:获取变量值 构造SQL语句-执行SQL语句-完毕。该函数将在每次用户向数据库中插入”、“删除”数据时执行。BOOL ODBC_

31、EXECSQLDIRT(const chai *SQLSCENTENCE)iiResult=SQLAllocHandle(SQL_HANDLE_STMT, hdbc. &hstint);if(iiResult!=SQL_SUCCESS) & (nR亡sult!=SQL_SUCCESS_WITH_INFO) return FALSE;iiResult=SQLExecDuect(hstmt, (unsigned char *)SQLSCENTENCE, SQL_NTS);if(iiResult!=SQL_SUCCESS) & (nR亡sult!=SQL_SUCCESS_WITH_INFO) & (

32、nResult!=SQL_NO_DATA)SQLFreeHandle(SQL_HANDLESTMTJistmt); hstmt=NULL;return FALSE;SQLFieeHandle(SQL_HANDLE.STNITJistmt); hstmt = NULL;remin TRUE;5.2.4与数据库断开连接DBC API与数据库建立连接仅需要释放句柄即町,为此 我编写了 ODBC_DISCONNECT函数来实现管理系统 与数据库之间连接的断开。该函数将在程序退出之前被调用。void ODBC_DISCONNECT()SQLDiscoimect(hdbc);SQLFieeHandle(S

33、QL_HANDLE_DBC, hdbc);SQLFieeHandleCSQL.HANDLE.ENV; henv);第6章结论与展望整个数据库课程设计过程中,使我的专业基础知识进一步的得到了提高,让我更深刻地认识了 “数据库”、“SDK” 等知识,虽然在课程设计过程中遇到了很多问题,但最终在同学和网络的帮助下基本完成了预订的目标,学到了平 时很难学到的专业和实践知识。在开本系统过程中,我感受最深的就是如何让自己在较短的时间内掌握一个自己并 不熟悉的事物,因为之前开发带有可视化界面的程序都是用的SDK编程方式(都是些小程序),所以接到数据库课 设题目时候我还是想釆用SDK编程来实现“民航机场售票管

34、理系统”,经过查阅资料,SDK编程只有通过调用ODEC API才能与数据库建立连接,凭借着以前写SDK程序的经验,参考了 ODBC API REFERENCE手册,在多次试验中, 成功实现了与数据库“建立连接”、操作数据库”等功能。本系统界面比较简单,因为自己的SDK编程功力不足,以及对该系统的考虑不是很充分,导致了该管理系统功 能比较单一,只是大体地实现了功能而已。比如像“列表控件”这种人机交互界面友好的控件,我并不懂怎么用SDK 来操作,所以就是用了列表框来实现。短短2周的课程设计,设计出来的系统在各方面肯定还存在很多不足和需要改进的地方,但是我相信随着实践 操作的增加而不断改进和优化,总体来说,做完一个数据库的收获不仅仅是技术上的,对事情的宏观控制也有了更 加深入的看法。参考文献1 卢湘江,李向荣,晏子.MySQL高级配置和管理.北京:清华大学出版社,2001. 92 萨师塩,王珊.数据库系统概论.北京:高等教育出版社,20023 张海藩.软件工程.北京:人民邮电出版社,2006

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!