民航机场售票管理系统.docx

上传人:b****6 文档编号:7911695 上传时间:2023-05-12 格式:DOCX 页数:18 大小:1.37MB
下载 相关 举报
民航机场售票管理系统.docx_第1页
第1页 / 共18页
民航机场售票管理系统.docx_第2页
第2页 / 共18页
民航机场售票管理系统.docx_第3页
第3页 / 共18页
民航机场售票管理系统.docx_第4页
第4页 / 共18页
民航机场售票管理系统.docx_第5页
第5页 / 共18页
民航机场售票管理系统.docx_第6页
第6页 / 共18页
民航机场售票管理系统.docx_第7页
第7页 / 共18页
民航机场售票管理系统.docx_第8页
第8页 / 共18页
民航机场售票管理系统.docx_第9页
第9页 / 共18页
民航机场售票管理系统.docx_第10页
第10页 / 共18页
民航机场售票管理系统.docx_第11页
第11页 / 共18页
民航机场售票管理系统.docx_第12页
第12页 / 共18页
民航机场售票管理系统.docx_第13页
第13页 / 共18页
民航机场售票管理系统.docx_第14页
第14页 / 共18页
民航机场售票管理系统.docx_第15页
第15页 / 共18页
民航机场售票管理系统.docx_第16页
第16页 / 共18页
民航机场售票管理系统.docx_第17页
第17页 / 共18页
民航机场售票管理系统.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

民航机场售票管理系统.docx

《民航机场售票管理系统.docx》由会员分享,可在线阅读,更多相关《民航机场售票管理系统.docx(18页珍藏版)》请在冰点文库上搜索。

民航机场售票管理系统.docx

民航机场售票管理系统

某某理工大学

 

数据库系统课程设计

 

院〔系〕:

计算机工程学院

专业:

XXXXXXXXX

某某:

XXXXXXX

班级:

XXXXXXXXX学号:

XXXXXXXXXX

题目:

民航机场售票管理系统

起迄日期:

_2011.1.3~2011.1.14_

设计地点:

2号实验楼402

指导教师:

XXXXXX

第1章前言

1.1.课题背景

现在人们更多的使用飞机作为出行交通工具,因此机票票务市场也在快速开展。

人们希望机票销售手段也能相应地有所调整,并对如何能经济、方便和与时地购置到自己所需要的机票表现出极大的关注。

随着社会的不断进步,国内外航空事业的飞速开展,各航空公司对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求也进展开发的。

随着旅游业的逐渐的成熟兴旺,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断地完善更新航空售票系统,提高航空售票系统的工作效率。

航空系统中,售票系统是很重要的一个环节,要想提高整个航空公司的工作效率,就要先提高售票系统的工作效率和安全性,故而研发此系统,此系统能够为售票工作提供方便快捷的售票服务,广阔的客户可以得到更高更好的票务服务。

本系统实现一个单机版的机票售票管理系统,通过考察分析,构建出数据库,并且实现票务管理模块、客户信息管理模块和航班信息管理模块。

本系统的开发严格遵守软件工程开发的标准流程。

通过对各个模块的实现来完成最后软件总体功能的实现。

通过观察,进展需求分析,画出E-R图和功能模块结构图。

在模块设计的同时进展单元测试,系统设计完成进展系统调试。

设计完成后,编写完整的软件说明书和用户手册,最后写对自己所作设计的评价和总结。

1.2.开发工具

1.2.1WindowsSDK

SDK,SoftwareDevelopmentKit的缩写,中文即“软件开发工具包〞。

广义上指辅助开发某一类软件的相关文档、X例和工具的集合。

SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。

它可以简单的为某个程序设计语言提供给用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。

一般的工具包括用于调试和其他用途的实用工具。

SDK还经常包括示例代码、支持性的技术注解或者其他的为根本参考资料澄清疑点的支持文档。

本系统是用传统的WINDOWSSDK编程方式,通过调用ODBCAPI来实现C++与数据库之间的。

1.2.2SQLServer2005数据库

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全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。

1.2.3ODBCAPI数据库连接技术

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规X为根底,ODBC3.0完全实现了这两种规X,并添加了基于视图的数据库应用程序开发人员所需要的共同特性,例如可滚动光标。

ODBCAPI中的函数由特定DBMS驱动程序的开发人员实现,应用程序用这些驱动程序调用函数,以独立于DBMS的方式访问数据。

ODBCAPI涉与了数据源连接与管理、结果集检索、数据库管理、数据绑定、事务操作等内容,目前的最高版本是3.0。

通常使用ODBCAPI开发数据库应用程序需要经过如下步骤:

•连接数据源。

•分配语句句柄。

•准备并执行SQL语句。

•获取结果集。

•提交事务。

•断开数据源连接并释放环境句柄。

第2章需求分析

2.1.任务概述

2.1.1系统目标

本系统需要满足以下几个系统设计目标。

1)实用性原如此:

真正为用户的实际工作服务,给民航机场售票业务带来方便。

2)友好性原如此:

本民航机场售票管理系统的用户是各大机场的售票人员,所以系统操作上要求简单、方便、快捷,便于用户使用。

2.1.2用户特点

本系统面向各大民航机场,因为在每年的寒假、暑假、重要的假期,会有大量的用户订购飞机票,所以会在节假日的开始与完毕时,本系统会出现较大的负荷。

其它时间符合比拟均衡。

2.2.系统的功能需求

2.2.1系统角色功能需求

本系统只有一种角色:

管理员。

管理员负责添加、删除客机信息、客户信息、航线信息、舱位信息以与票务信

2.2.2功能模块

本系统主要负责管理模块,各个子模块功能需求如下:

1)机票预订信息管理模块

管理员可以添加机票预订信息,并可以对添加的机票预订信息进展添加、查询、删除。

2)客户信息管理模块

管理员可以批量添加客户信息,并可以对添加的客户信息进展添加、删除。

3)航线信息管理模块

管理员可以批量添加航线信息,并可以对添加的航线信息进展添加、删除。

4)客机信息管理模块

管理员可以批量添加客机信息,并可以对添加的客机信息进展添加、删除。

5)舱位信息管理模块

管理员只可以修改飞机舱位信息。

2.3.系统的性能需求

为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:

1)系统的开放性和系统的可扩大性

系统在开发过程中,应该充分考虑以后的可扩大性。

例如飞机信息属性添加、修改;客户信息属性添加、修改等模块也会不断的更新和完善。

所有这些,都要求系统提供足够的手段进展功能的调整和扩大。

而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规X,可以简单的参加和减少系统的模块,配置系统的硬件。

通过软件的修补、替换完成系统的升级和更新换代。

2)系统的易用性和易维护性

系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。

这就要求系统能够提供良好的用户接口,易用的人机交互界面。

要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。

系统中涉与到的数据是高校实验室相当重要的信息,因此系统为不同角色的用户提供了方便的管理后台进展数据管理,特别为系统管理员提供了数据备份,日常安全管理,防止系统意外崩溃等功能。

3)系统的响应速度

系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。

系统在日常处理中的响应速度为秒级,达到实时要求,以与时反应信息。

严格保证操作人员不会因为速度问题而影响工作效率。

2.4.系统的数据需求

通过对系统功能需求的分析,可以初步确定该系统的根本数据需求。

由各个功能模块可以进一步确定具体的数据需求,具体数据需求如下:

1)机票预订模块数据需求

该模块主要管理客户订票,需要表示的数据有:

订票数据:

应包含机票编号、机票价格

客户数据:

客户编号、客户某某

航线数据:

航线编号、起始城市、终点城市、出发日期

舱位数据:

舱位类型编号

2)客户信息管理模块

该模块主要管理客户自身信息,需要表示的数据有:

客户编号、客户某某、客户性别、客户证件号、客户。

3)航线信息管理模块

该模块主要管理航线自身信息,需要表示的数据有:

航线编号、起始城市、终点城市、出发时间、到达时间、飞机编号、经济舱价格、头等舱价格。

4)客机信息管理模块

该模块主要管理客机自身信息,需要表示的数据有:

飞机编号、飞机类型、经济舱座位数、头等舱座位数。

5)舱位信息管理模块

该模块主要管理舱位自身信息,需要表示的数据有:

舱位类型编号、舱位类型名称、是否有报刊、是否有饮料、是否有食物、是否可取消、是否可打折

第3章系统总体设计

3.1.系统总体设计

第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.数据库逻辑设计

现在需要将上面的数据库概念结构转化为SQLServer2005数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。

民航机场售票管理系统数据库中各个表格的设计结果如下面表格所示。

每个表格表示在数据库中的一个表。

4.2.1AIR_BOOK_TABLE〔订票管理表〕

列名

数据类型

可否为空

说明

TicketNo

int

机票编号

CustomerNo

int

客户编号

CustomerName

nvarchar(10)

客户某某

AirLineNo

int

航线编号

StartCity

nvarchar(10)

出发城市

EndCity

nvarchar(50)

终点城市

TicketDate

nvarchar(50)

出发日期

ServiceType

int

舱位类型

TicketPrice

int

机票价格

4.2.2AIR_PLANE_TABLE(飞机管理表)

列名

数据类型

可否为空

说明

PlaneNo

int

飞机编号

PlaneType

nvarchar(15)

飞机型号

monNo

int

经济舱座位数

FirstNo

int

头等舱座位数

4.2.3AIR_SEAT_TABLE(舱位管理表)

列名

数据类型

可否为空

说明

ServiceNo

int

舱位类型编号

ServiceName

nvarchar(15)

舱位类型名称

IsNewsPaper

nvarchar(7)

是否有报纸

IsDrink

nvarchar(7)

是否有饮料

IsFood

nvarchar(7)

是否有食物

CanCancel

nvarchar(7)

是否可取消

CanDiscount

nvarchar(7)

是否可打折

4.2.4AIR_GUEST_TABLE(客户管理表)

列名

数据类型

可否为空

说明

GuestNo

int

客户编号

GuestName

nvarchar(10)

客户某某

GuestSex

nvarchar(4)

客户性别

GuestID

nvarchar(20)

客户证件号

GuestTele

nvarchar(15)

客户

4.2.5AIR_LINE_TABLE(航线管理表)

列名

数据类型

可否为空

说明

AirLineNo

int

航线编号

StartCity

nchar(10)

起始城市

EndCity

nchar(10)

终点城市

StartTime

datetime

出发时间

EndTime

datetime

到达时间

PlaneNo

int

飞机编号

monPrice

int

经济舱价格

FirstPrice

int

头等舱价格

第5章详细设计

5.1.页面设计

5.1.1“登陆〞界面

通过用户输入的用户名与密码,如果用户名/密码输入错误,如此会提示是否重新输入,假如放弃输入,如此该系统会自动退出。

图表5-1图表5-2

5.1.2程序主界面

系统登陆成功后,如此会看到主界面,该系统的各功能可以从菜单栏中选择。

图表5-3

5.1.3“机票预订信息管理〞界面

图表5-4

5.1.4“客户信息管理〞界面

图表5-5

5.1.5“航线信息管理〞界面

图表5-6

5.1.6“客机信息管理〞界面

图表5-7

5.1.7“舱位信息管理〞界面

在菜单上按“舱位信息管理〞按钮后,会弹出“舱位信息管理〞对话框。

管理者可以在这个管理界面中实现对飞机舱位信息的修改。

图表5-8

5.1.8“关于〞界面

在菜单上按“关于〞按钮后,会弹出“关于〞对话框,它显示了作者的信息。

图表5-9

5.2.编码设计

5.2.1与数据库建立的

用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;

}

5.2.2获取数据库中特定表的某元组

是用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

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

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;

}

5.2.3从数据库中删除、向数据库中添加信息

数据库信息的添加、删除分别是执行SQL语句的“INSERTINTO〞、“DELETEFROM〞,所以我编写了ODBC_EXECSQLDIRT函数来实现程序对SQL语句的执行,统一了插入、删除算法的编写,都是经过:

获取变量值->构造SQL语句->执行SQL语句->完毕。

该函数将在每次用户向数据库中“插入〞、“删除〞数据时执行。

BOOLODBC_EXECSQLDIRT(constchar*SQLSCENTENCE)

{

nResult=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);

if((nResult!

=SQL_SUCCESS)&&(nResult!

=SQL_SUCCESS_WITH_INFO))

returnFALSE;

nResult=SQLExecDirect(hstmt,(unsignedchar*)SQLSCENTENCE,SQL_NTS);

if((nResult!

=SQL_SUCCESS)&&(nResult!

=SQL_SUCCESS_WITH_INFO)&&(nResult!

=SQL_NO_DATA))

{

SQLFreeHandle(SQL_HANDLE_STMT,hstmt);

hstmt=NULL;

returnFALSE;

}

SQLFreeHandle(SQL_HANDLE_STMT,hstmt);

hstmt=NULL;

returnTRUE;

}

5.2.4与数据库断开连接

DBCAPI与数据库建立连接仅需要释放句柄即可,为此,我编写了ODBC_DISCONNECT函数来实现管理系统与数据库之间连接的断开。

该函数将在程序退出之前被调用。

voidODBC_DISCONNECT()

{

SQLDisconnect(hdbc);

SQLFreeHandle(SQL_HANDLE_DBC,hdbc);

SQLFreeHandle(SQL_HANDLE_ENV,henv);

}

第6章结论与展望

整个数据库课程设计过程中,使我的专业根底知识进一步的得到了提高,让我更深刻地认识了“数据库〞、“SDK〞等知识,虽然在课程设计过程中遇到了很多问题,但最终在同学和网络的帮助下根本完成了预订的目标,学到了平时很难学到的专业和实践知识。

在开本系统过程中,我感受最深的就是如何让自己在较短的时间内掌握一个自己并不熟悉的事物,因为之前开发带有可视化界面的程序都是用的SDK编程方式〔都是些小程序〕,所以接到数据库课设题目时候我还是想采用SDK编程来实现“民航机场售票管理系统〞,经过查阅资料,SDK编程只有通过调用ODBCAPI才能与数据库建立连接,凭借着以前写SDK程序的经验,参考了ODBCAPIREFERENCE手册,在屡次试验中,成功实现了与数据库“建立连接〞、“操作数据库〞等功能。

本系统界面比拟简单,因为自己的SDK编程功力不足,以与对该系统的考虑不是很充分,导致了该管理系统功能比拟单一,只是大体地实现了功能而已。

比如像“列表控件〞这种人机交互界面友好的控件,我并不懂怎么用SDK来操作,所以就是用了列表框来实现。

短短2周的课程设计,设计出来的系统在各方面肯定还存在很多不足和需要改良的地方,但是我相信随着实践操作的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2