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

下载本文档

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

文档简介

PAGEPAGE21青岛理工大学数据库系统课程设计院(系):计算机工程学院专业:XXXXXXXXX姓名:XXXXXXX班级:XXXXXXXXX学号:XXXXXXXXXX题目:民航机场售票管理系统起迄日期:_2011.1.3~2011.1.14_设计地点:2号实验楼402指导教师:XXXXXX

目录第1章前言 41.1.课题背景 41.2.开发工具 41.2.1WindowsSDK 41.2.2SQLServer2005数据库 41.2.3ODBCAPI数据库连接技术 5第2章需求分析 62.1.任务概述 62.1.1系统目标 62.1.2用户特点 62.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.1AIR_BOOK_TABLE(订票管理表) 114.2.2AIR_PLANE_TABLE(飞机管理表) 114.2.3AIR_SEAT_TABLE(舱位管理表) 124.2.4AIR_GUEST_TABLE(客户管理表) 124.2.5AIR_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.2获取数据库中特定表的某元组 175.2.3从数据库中删除、向数据库中添加信息 185.2.4与数据库断开连接 19第6章结论与展望 19参考文献 20

前言课题背景现在人们更多的使用飞机作为出行交通工具,因此机票票务市场也在快速发展。人们希望机票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极大的关注。随着社会的不断进步,国内外航空事业的飞速发展,各航空公司对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求也进行开发的。随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断地完善更新航空售票系统,提高航空售票系统的工作效率。航空系统中,售票系统是很重要的一个环节,要想提高整个航空公司的工作效率,就要先提高售票系统的工作效率和安全性,故而研发此系统,此系统能够为售票工作提供方便快捷的售票服务,广大的客户可以得到更高更好的票务服务。本系统实现一个单机版的机票售票管理系统,通过考察分析,构建出数据库,并且实现票务管理模块、客户信息管理模块和航班信息管理模块。本系统的开发严格遵守软件工程开发的标准流程。通过对各个模块的实现来完成最后软件总体功能的实现。通过观察,进行需求分析,画出E-R图和功能模块结构图。在模块设计的同时进行单元测试,系统设计完成进行系统调试。设计完成后,编写完整的软件说明书和用户手册,最后写对自己所作设计的评价和总结。开发工具WindowsSDKSDK,SoftwareDevelopmentKit的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。本系统是用传统的WINDOWSSDK编程方式,通过调用ODBCAPI来实现C++与数据库之间的链接。SQLServer2005数据库SQLServer是一个关系数据库管理系统。它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。Sybase则较专注于SQLServer在UNIX操作系统上的应SQLServer安装界面用。SQLServer2005通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQLServer2005能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。从CEO到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQLServer2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。ODBCAPI数据库连接技术ODBC是一种使用SQL的程序设计接口。使用ODBC让应用程序的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS厂商们的广泛支持。ODBC是一种使用SQL的程序设计接口。使用ODBC让应用程序的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS厂商们的广泛支持。MicrosoftDeveloperStudio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQLServer,Access,Paradox,dBase,FoxPro,Excel,Oracle以及MicrosoftText。如果用户希望使用其他数据格式,用户需要相应的ODBC驱动器及DBMS。ODBCAPI是一个内容丰富的数据库编程接口,包括60多个函数、SQL数据类型以及常量的声明。ODBCAPI是独立于DBMS和操作系统的,而且它与编程语言无关。ODBCAPI以X/Open和ISO/IEC中的CLI规范为基础,ODBC3.0完全实现了这两种规范,并添加了基于视图的数据库应用程序开发人员所需要的共同特性,例如可滚动光标。ODBCAPI中的函数由特定DBMS驱动程序的开发人员实现,应用程序用这些驱动程序调用函数,以独立于DBMS的方式访问数据。ODBCAPI涉及了数据源连接与管理、结果集检索、数据库管理、数据绑定、事务操作等内容,目前的最高版本是3.0。通常使用ODBCAPI开发数据库应用程序需要经过如下步骤:•连接数据源。•分配语句句柄。•准备并执行SQL语句。•获取结果集。•提交事务。•断开数据源连接并释放环境句柄。

需求分析任务概述系统目标本系统需要满足以下几个系统设计目标。实用性原则:真正为用户的实际工作服务,给民航机场售票业务带来方便。友好性原则:本民航机场售票管理系统的用户是各大机场的售票人员,所以系统操作上要求简单、方便、快捷,便于用户使用。用户特点本系统面向各大民航机场,因为在每年的寒假、暑假、重要的假期,会有大量的用户订购飞机票,所以会在节假日的开始与结束时,本系统会出现较大的负荷。其它时间符合比较均衡。系统的功能需求系统角色功能需求本系统只有一种角色:管理员。管理员负责添加、删除客机信息、客户信息、航线信息、舱位信息以及票务信功能模块本系统主要负责管理模块,各个子模块功能需求如下:机票预订信息管理模块管理员可以添加机票预订信息,并可以对添加的机票预订信息进行添加、查询、删除。客户信息管理模块管理员可以批量添加客户信息,并可以对添加的客户信息进行添加、删除。航线信息管理模块管理员可以批量添加航线信息,并可以对添加的航线信息进行添加、删除。客机信息管理模块管理员可以批量添加客机信息,并可以对添加的客机信息进行添加、删除。舱位信息管理模块管理员只可以修改飞机舱位信息。系统的性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:系统的开放性和系统的可扩充性系统在开发过程中,应该充分考虑以后的可扩充性。例如飞机信息属性添加、修改;客户信息属性添加、修改等模块也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。系统的易用性和易维护性系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的用户提供了方便的管理后台进行数据管理,特别为系统管理员提供了数据备份,日常安全管理,防止系统意外崩溃等功能。系统的响应速度系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。严格保证操作人员不会因为速度问题而影响工作效率。系统的数据需求通过对系统功能需求的分析,可以初步确定该系统的基本数据需求。由各个功能模块可以进一步确定具体的数据需求,具体数据需求如下:机票预订模块数据需求该模块主要管理客户订票,需要表示的数据有:订票数据:应包含机票编号、机票价格客户数据:客户编号、客户姓名航线数据:航线编号、起始城市、终点城市、出发日期舱位数据:舱位类型编号客户信息管理模块该模块主要管理客户自身信息,需要表示的数据有:客户编号、客户姓名、客户性别、客户证件号、客户电话。航线信息管理模块该模块主要管理航线自身信息,需要表示的数据有:航线编号、起始城市、终点城市、出发时间、到达时间、飞机编号、经济舱价格、头等舱价格。客机信息管理模块该模块主要管理客机自身信息,需要表示的数据有:飞机编号、飞机类型、经济舱座位数、头等舱座位数。舱位信息管理模块该模块主要管理舱位自身信息,需要表示的数据有:舱位类型编号、舱位类型名称、是否有报刊、是否有饮料、是否有食物、是否可取消、是否可打折

系统总体设计系统总体设计民航机场售票管理系统民航机场售票管理系统机票预订信息管理客户信息管理航线信息管理客机信息管理舱位信息管理订票信息添加订票信息查询订票信息删除客户信息添加客户信息删除航线信息添加航线信息删除客机信息添加客机信息删除修改舱位信息

数据库设计数据库概念设计订票信息实体E-R图订票信息实体订票信息实体订票编号客户编号客户姓名航线编号出发城市到达城市出发日期舱位类型机票价格客户信息实体E-R图客户信息实体客户信息实体客户编号客户姓名客户性别证件号码联系电话

航线信息实体E-R图航线信息实体航线信息实体航线编号出发城市到达城市航班日期出发时间到达时间客机编号经济舱价格头等舱价格客机信息实体E-R图客机信息实体客机信息实体客机编号客机型号经济舱座位数量头等舱座位数量舱位等级实体E-R图舱位等级实体舱位等级实体舱位等级编号舱位等级名称是否有报纸是否有饮料是否有午餐是否可以退票是否可以打折实体间关系E-R图舱位等级实体舱位等级实体航线信息实体客户信息实体订票信息实体客机信息实体订票1nn11数据库逻辑设计现在需要将上面的数据库概念结构转化为SQLServer2005数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。民航机场售票管理系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。AIR_BOOK_TABLE(订票管理表)列名数据类型可否为空说明TicketNoint否机票编号CustomerNoint否客户编号CustomerNamenvarchar(10)否客户姓名AirLineNoint否航线编号StartCitynvarchar(10)否出发城市EndCitynvarchar(50)否终点城市TicketDatenvarchar(50)否出发日期ServiceTypeint否舱位类型TicketPriceint否机票价格AIR_PLANE_TABLE(飞机管理表)列名数据类型可否为空说明PlaneNoint否飞机编号PlaneTypenvarchar(15)否飞机型号CommonNoint否经济舱座位数FirstNoint否头等舱座位数AIR_SEAT_TABLE(舱位管理表)列名数据类型可否为空说明ServiceNoint否舱位类型编号ServiceNamenvarchar(15)否舱位类型名称IsNewsPapernvarchar(7)否是否有报纸IsDrinknvarchar(7)否是否有饮料IsFoodnvarchar(7)否是否有食物CanCancelnvarchar(7)否是否可取消CanDiscountnvarchar(7)否是否可打折AIR_GUEST_TABLE(客户管理表)列名数据类型可否为空说明GuestNoint否客户编号GuestNamenvarchar(10)否客户姓名GuestSexnvarchar(4)否客户性别GuestIDnvarchar(20)否客户证件号GuestTelenvarchar(15)否客户电话AIR_LINE_TABLE(航线管理表)列名数据类型可否为空说明AirLineNoint否航线编号StartCitynchar(10)否起始城市EndCitynchar(10)否终点城市StartTimedatetime否出发时间EndTimedatetime否到达时间PlaneNoint否飞机编号CommonPriceint否经济舱价格FirstPriceint否头等舱价格

详细设计页面设计“登陆”界面通过用户输入的用户名及密码,如果用户名/密码输入错误,则会提示是否重新输入,若放弃输入,则该系统会自动退出。图表5-1图表5-2程序主界面系统登陆成功后,则会看到主界面,该系统的各功能可以从菜单栏中选择。图表5-3“机票预订信息管理”界面图表5-4“客户信息管理”界面图表5-5“航线信息管理”界面图表5-6“客机信息管理”界面图表5-7“舱位信息管理”界面在菜单上按“舱位信息管理”按钮后,会弹出“舱位信息管理”对话框。管理者可以在这个管理界面中实现对飞机舱位信息的修改。图表5-8“关于”界面在菜单上按“关于”按钮后,会弹出“关于”对话框,它显示了作者的信息。图表5-9

编码设计与数据库建立的链接用ODBCAPI与数据库建立连接需要经过如下几步:分配环境句柄->设置ODBC版本号->分配连接句柄->“用户名/密码”登陆数据库。我创建了函数ODBC_CONNECT来管理系统与数据库的链接,该函数会在主程序执行时被调用。BOOLODBC_CONNECT(constchar*DSN_NAME,constchar*USER_NAME,constchar*USER_PASSWORD){ //分配环境句柄 nResult=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); if((nResult!=SQL_SUCCESS)&&(nResult!=SQL_SUCCESS_WITH_INFO)) returnFALSE; //设置ODBC版本号 nResult=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); if((nResult!=SQL_SUCCESS)&&(nResult!=SQL_SUCCESS_WITH_INFO)) returnFALSE; //分配连接背景 nResult=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); if((nResult!=SQL_SUCCESS)&&(nResult!=SQL_SUCCESS_WITH_INFO)) returnFALSE; //连接数据库 nResult=SQLConnect(hdbc,(SQLCHAR*)DSN_NAME,SQL_NTS,(SQLCHAR*)USER_NAME,SQL_NTS,(SQLCHAR*)USER_PASSWORD,SQL_NTS); if((nResult!=SQL_SUCCESS)&&(nResult!=SQL_SUCCESS_WITH_INFO)) returnFALSE; returnTRUE;}获取数据库中特定表的某元组是用ODBCAPI从数据库中取出特定表中的某一个元组,需要经过如下操作:分配句柄->执行SQL语句->获取语句执行后返回的数据的属性的个数->将每一个属性与本地变量绑定->循环取数据,每次一个元组,并做相应处理->释放语句执行句柄.为实现该功能,我编写了ODBC_DISPLAYLIST函数,它会在每次产生子对话框时被调用,它也会在每次用户更新数据库后被调用(因为显示在程序界面上的数据要和数据库中的数据同步)。BOOLODBC_DISPLAYLIST(constchar*SQLSCENTENCE,HWND&hwndDlg,intControlID){ //分配句柄nResult=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt); if((nResult!=SQL_SUCCESS)&&(nResult!=SQL_SUCCESS_WITH_INFO)) returnFALSE; //执行SQL语句 nResult=SQLExecDirect(hstmt,(unsignedchar*)SQLSCENTENCE,SQL_NTS); if((nResult!=SQL_SUCCESS)&&(nResult!=SQL_SUCCESS_WITH_INFO)) returnFALSE; //获取语句执行后返回的数据的属性的个数,保存在nCols变量中 SQLNumResultCols(hstmt,&nCols); //将每一个属性与本地变量绑定for(nCount=0;nCount<nCols;nCount++) SQLBindCol(hstmt,(UWORD)(nCount+1),SQL_C_CHAR,data[nCount],MAXDATALEN,(long*)&dwDataLen[nCount]); //循环取数据,每次一个元组,并做相应处理(在此是用这些填充列表框) while(SQL_SUCCESS==SQLFetch(hstmt)) { memset(DATA_TEMP,0,sizeof(DATA_TEMP)); for(nCount=0;nCount<nCols;nCount++) if(dwDataLen[nCount]!=SQL_NULL_DATA) { wsprintf(DATA_ENUM,"%-30s",data[nCount]); lstrcat(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); returnTRUE;}从数据库中删除、向数据库中添加信息数据库信息的添加、删除分别是执行SQL语句的“INSERTINTO”、“DELETEFROM”,所以我编写了ODBC_EXECSQLDIRT函数来实现程序对SQL语句的执行,统一了插入、删除算法的编写,都是经过:获取变量值->构造SQL语句->执行SQL语句->完毕。该函数将在每次用户向数据库中“插入”、“删除”数据时执行。BOOLODBC_EXECSQLDIRT(constchar*SQLSCENTENCE){ nResult=SQ

温馨提示

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

评论

0/150

提交评论