案例十航班与订票管理系统.docx

上传人:b****8 文档编号:23786104 上传时间:2023-05-20 格式:DOCX 页数:30 大小:313.48KB
下载 相关 举报
案例十航班与订票管理系统.docx_第1页
第1页 / 共30页
案例十航班与订票管理系统.docx_第2页
第2页 / 共30页
案例十航班与订票管理系统.docx_第3页
第3页 / 共30页
案例十航班与订票管理系统.docx_第4页
第4页 / 共30页
案例十航班与订票管理系统.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

案例十航班与订票管理系统.docx

《案例十航班与订票管理系统.docx》由会员分享,可在线阅读,更多相关《案例十航班与订票管理系统.docx(30页珍藏版)》请在冰豆网上搜索。

案例十航班与订票管理系统.docx

案例十航班与订票管理系统

A、课程设计实施步骤

同学们可按下列步骤完成所选题目的设计并写出设计报告。

第一步:

问题分析

在对所选题目进行调研的基础上,明确课题背景及该选题要做什么。

依据调查结果,进一步分析和表达用户的需求。

(1)系统的功能需求:

围绕选题,明确系统的主要功能;

(2)用户操作需求:

系统应以怎么的方式与用户进行交互。

第二步:

总体设计

(1)系统的功能划分:

主要给出系统的功能结构图;

(2)系统流程:

主要给出系统工作流程示意图。

第三步:

详细设计与实现

(1)类设计:

给出系统中设计的类的功能、结构等的说明;

(2)系统的主要代码:

类的实现及程序主要代码及其说明;

第四步:

测试

以运行结果的形式给出程序的测试过程,需要运行界面截图与文字说明,缺一不可。

第五步:

形成设计报告

对设计结果的合理性、规范程度和实际运行的结果以报告的形式进行提交。

B、课程设计报告要求

课程设计报告有四个方面的要求:

1.问题描述。

包括此问题的理论和实际两个方面。

2.解决方案。

包括:

(1)总体设计:

应合理划分系统功能模块,系统工作流程合理、符合实际;

(2)详细设计与实现:

类的设置是问题域中客观存在事物的放映和抽象,代码符合程序编写规范;

(3)测试:

对系统应进行全面的功能测试,以保证系统的可靠运行。

3.报告撰写格式要规范,具体参见样例。

案例十用VC++制作一个航班与订票管理系统

 关键词:

查看数据使用文件支持OLEDB数据源

10.1课程设计的目的和意义

民航售票/订票是民航管理业务中的一个最基本的业务,表面上看,它只是民航业务的一个简单的部分,但是它涉及到资金管理与客户服务等多方面。

过去传统的售票方式已经不能满足现代航空业务流量剧增的客观要求,本课程设计便是利用开发工具VC++开发一个民航售售票管理系统,它能方便快捷地运用在民航业务的营运之中。

10.2系统功能设计

本系统设计主要是根据售票业务的基本流程进行的,一般地说,售票业务包括:

售票子系统、订票子系统、查询子系统、飞行时刻表等甲方个方面。

其中,售票与订票系统至少要满足:

(1)顾客乘坐飞机的起点、终点、日期和可以使用(预订)的座位等基本信息。

(2)自动显示符合顾客要求的航班及座位是否存在(是否还有空位)。

(3)利用查询子系统,可以查询当前航班的售票订票情况和乘客信息。

(4)查询航空公司的航班时刻表信息。

其系统的功能模块如图10.1所示。

当然,本系统仅供学生练习使用,不可能是真正意义上的航班管理系统,它与实际的需求还有很大的差距。

 

 图10.1民航售票系统功能模块图

10.3航班管理系统数据库与数据表的创建

数据库是数据表的集合,与其他任何的数据库应用系统一样,系统开发首先应该开发一个数据库,它用于存放系统中的数据表,本案例仍采用MicrosoftOffice2003中的MicrosoftAccess2003来进行数据库与数据表的创建工作。

为此我们先定义一个“航班管理数据库”的数据库文件,同时创建3个数据表的结构,即“乘客数据表”、“飞行时刻表”、“航班信息”的结构,我们将通过这三个数据表对航班业务进行管理。

1.“乘客数据表”结构的定义

乘客管理是航班管理中的一个重要的方面,首先需要对乘客进行记录,根据乘客在购票、订票和乘客信息等方面的特点,我们特设计“乘客数据表”的结构如表10.1所示。

表10.1“乘客数据表”结构

字段名称

字段类型

字段大小

小数位数

索引

必须填写

航班号

购订票人

身份证号

发出城市

到达城市

日期

起飞时间

到达时间

座位等级

文本

文本

数字

文本

文本

日期/时间

日期/时间

日期/时间

文本

50

20

默认

50

50

默认

默认

默认

4

 

 

 乘客数据表的演示数据可参表10.2所示内容。

表10.2乘客数据表的演示数据

 航班号

购订票人

身份证号

出发城市

到达城市

日期

起飞时间

到达时间

座位等级

XH-0001

XH-0001

XH-0001

XH-0001

XH-0001

XH-0001

张三有

李有前

程钱

王三福

陈东东

张明确

111132227

121212218

111132220

111132221

111132222

111132223

重庆

重庆

重庆

重庆

重庆

重庆

北京

北京

北京

北京

北京

北京

02-6-14

02-6-14

02-6-14

02-6-14

02-6-14

02-6-14

13:

55:

00

13:

55:

00

13:

55:

00

13:

55:

00

13:

55:

00

13:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

A

B

C

A

A

A

 

2.“航班信息”数据表结构的定义

航班信息是供乘客查询使用的一个重要内容,也是航空公司进行数据管理的重要方面,根据航班信息的特点,特创建“航班信息”数据表的结构如表10.3所示。

表10.3“航班信息”数据表结构

 字段名称

字段类型

字段大小

小数位数

索引

必须填写

航班号

购订票人

身份证号

发出城市

到达城市

日期

起飞时间

到达时间

座位等级

剩余座位

座位总数

票价

文本

文本

数字

文本

文本

日期/时间

日期/时间

日期/时间

文本

数字

数字

数字

50

20

默认

50

50

默认

默认

默认

4

默认

默认

默认

 

关键、惟一

 “航班信息”数据表结构一经创建,用户可以在其中输入一些数据记录,以在后面的对话框制作中显示对话框制作的数据操作效果。

其演示数据可参考表10.4所示内容(数据仅供演示之用,无须考虑业务的真实性)。

 表10.4“航班信息”数据表的参考数据

 航班号

购订票人

身份证号

出发城市

到达城市

日期

起飞时间

到达时间

座位等级

座位总数

剩余座位

票价

XH-001

XH-001

XH-001

XH-001

XH-001

XH-001

XH-001

张有钱

李富生

王明星

张铁生

李开封

陈有名

王一万

32322323

23423232

34343433

34343434

34343435

34343436

34343437

重庆

重庆

重庆

重庆重庆

重庆

重庆

北京

北京

北京

北京

北京

北京

北京

02-6-16

02-6-16

02-6-16

02-6-16

02-6-16

02-6-16

02-6-16

13:

55:

00

13:

55:

00

13:

55:

00

13:

55:

00

13:

55:

00

13:

55:

00

13:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

15:

55:

00

A

A

A

B

B

C

C

35

35

35

35

35

35

35

 

450

450

450

400

400

350

350

 3.“飞行时刻表”结构定义

飞行时刻表是航空公司的一切航班运行的时刻表,它也是航班管理中的一个重要方面,根据航空时刻表的数据特点,特定义“飞行时刻表”的结构如表10.5所示。

表10.5“飞行时刻表”数据表结构

 字段名称

字段类型

字段大小

小数位数

索引

必须填写

航班号

发出城市

到达城市

起飞时间

到达时间

所属公司

文本

文本

文本

日期/时间

日期/时间

文本

50

50

50

默认

默认

50

 

关键、惟一

 飞行时刻表的演示数据可参考表10.6所示内容。

表10.6飞行时刻表的演示数据

 航班号

发出城市

到达城市

起飞时间

到达时间

所属公司

XH-001

BH-002

ZH-003

重庆

北京

西安

北京

重庆

北京

13:

55:

00

12:

00:

00

17:

05:

00

15:

55:

00

14:

00:

00

20:

03:

00

西南航空公司

北方航空公司

中国民航

10.4制作一个系统封面位图

本案例我们仍将制作一个系统封面位图。

系统启动时首先出现一个Splash画面,该画面主要内容就是一个位图文件。

系统封面闪动之后,进入系统操作功能界面。

其位图文件如图10.2所示。

 图10.2位图文件

10.5创建应用程序框架

与前面的所有案例一样,在VC++开发平台中,往往开发应用程序就是从应用程序框架着手的。

在前面我们已经创建了数据库、数据表,制作了系统封面的位烀文件,也就作好了系统开发的一切准备工作,因此我们可以着手应用系统的界面制作了。

创建“航班售票管理系统”应用程序框架的步骤如下:

(1)结束数据库的创建并启动VC++,出现VC++主控界面。

(2)在VC++主控界面中单击“文件|新建…”菜单项,出现新建工程类型选择对话框,在工程类型对话框中选择MFCAppWizard(EXE)工程类型。

(3)输入工程名称为“航班售票管理系统”并选择Win32平台类型。

(4)单击“确定”按钮,进入文档类型设置对话框。

(5)选择单文档类型,即创建一个单文档界面的应用程序,设置资源使用的语言为中文,选择文档/查看体系结构支持。

(6)单击“下一步”按钮,进入框架设计的第2步,出现图10.3所示对话框,在该对话框中,用户可对数据库的应用作一些相关的选择。

 图10.3数据库选择

 (7)在本案例中,我们选择“数据库查看使用文件支持”选项,它与前面的所有案例的数据查看方式有所区别。

(8)单击DataSource按钮,出现数据源选择对话框,如图10.4所示。

 图10.4数据源选择

 本案例中,我们将采用一种新的数据源,即选择OLEDB数据源。

(9)单击SelectOLEDBDatasource按钮,出现一个数据库驱动程序列表,如图10.5所示。

我们在列表中选择MicrosoftOLEDBProviderforODBCDrivers.

(10)单击Next按钮,出现一个数据连接属性选项卡。

(11)在选项卡中使用连接字符串选项。

再单击Build按钮,即创建一个新的数据源,如图10.6所示。

 图10.5驱动程序列表

 

 图10.6数据源连接

 确认后回到图10.3所示的对话框,单击“完成”按钮即结束应用程序框架的信息显示。

然后再选择ODBC数据源,即刚才通过OLE方法创建的数据源即可,如图10.7所示。

 图10.7航班宇航管理数据源的引入

 最后,工程基本框架创建的信息如下所示:

Applicationtypeof航班管理系统:

SingleDocumentInterfaceApplicationtargeting:

          Win32

Classestobecreated:

       Application:

CMyAppin 航班管理系统.hand航班管理系统.cpp

       Frame:

CMainFrameinMainFrm.handMainFrm.cpp

       Document:

CMyDlgin航班管理系统Doc.hand航班管理系统Doc.cpp

Features:

      +Initialtoolbarinmainframe

      +Initialstatusbarinmainframe

      +3DControls

      +UsessharedDLLimplementation(MFC42.DLL)

      +Includesdatabaseheaderfiles

      +ActiveXControlssupportenabled

      +Localizabletextin:

            中文[中国]

10.6创建乘客订购票管理对话框

航班管理系统的第一个对话框就是乘客订票对话框,它可以记录乘客订票的一些基本内容,它的制作我们在前面已经介绍过多次,其布局如图10.8所示。

 图10.8乘客订票对话框

 该对话框的制作方法大家应该是比较熟悉了,在前面我们已经多次进行过介绍,为此我们不再重复,请参考后面的工程实现文件的内容。

10.7制作航班时刻查询对话框

航班管理的另一个重要方面就是航班时刻表查询。

我们可以采用前面案例中ADO控件和DBGrid控件进行查询(参见案例二),但首先需要在工程中插入一个新的对话框资源,然后加工制作新的对话框,其对话框布局如图10.9所示。

 图10.9“航班时刻表查询”对话框布局

 该对话框的制作过程我们也不重复介绍了,它是我们前面多次制作过的一种对话框类型。

10.8制作航班信息处理对话框

航班作息处理对话框的制作完全可以采用与飞行时刻表相同的方法进行创建,这里全部略去其过程的介绍。

为了调用航班时刻对话框和航班信息对话框,需要在主对话框IDD_MY_FORM中增另两个命令按钮控件,其主对话框的布局如图10.10所示。

 

 图10.10在主对话框中新增按钮

 最后运行工程,可以检验各个功能模块的执行情况。

航班信息对话框的运行效果如图10.11所示。

 

 图10.11航班信息对话框的运行效果

10.9制作系统启动封面

系统启动封面的制作方法在前面也已经作过介绍,只需要插入一个启动封面的资源即可(参见案例五)。

10.10 工程文件分析

为了使大家熟悉使用VC++制作应用系统的一般方法,我们在本案例中给出了一个航班管理系统,它的制作过程我们在前面几乎都介绍过,因此,本案例的过程几乎全部省略。

我们仅给出工程的一些文件,供大家参考使用,或在编程时进行分析。

1.工程实现文件

工程实现文件是用户制作工程中进行类创建、类声明、创建消息映射和编制过程代码的主要记录文件,它的内容如下所示:

//航班管理系统View.cpp:

implementationoftheCMyViewclass

#include"stdafx.h"

#include"航班管理系统h"

 

#include"航班管理系统Set.h"

#include"航班管理系统Doc.h"

#include"航班管理系统View.h"

#include"FxrjDlg.h"

#include"HbxxDlg.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////

//CMyView

 

IMPLEMENT_DYNCREATE(CMyView,CRecordView)

 

BEGIN_MESSAGEMAP(CMyView,CRecordView)

//{{AFX_MSG_MAP(CMyView)

ON_BN_CLICKED(IDC_BUTTON1, OnButtonl)

ON_BN_CLICKED(IDC_BUTTON2, OnButton2)

ON_BN_CLICKED(IDC_BUTTON3, OnButton3)

ON_BN_CLICKED(IDC_BUTTON4, OnButton4)

//ON_BN_CLICKED(IDC_BUTTONS, OnButtonS)

//}}AFX_MSG_MAP

//Standardprintingcommands

ON_COMMAND(ID_FILE_PRINT, CRecordView:

:

OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView:

:

OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView:

:

OnFilePrintPreview)

END_MESSAGE_MAP()

 

/////////////////////////////////////////////////////

//CMyViewconstruction/destruction

 

CMyView:

:

CMyView():

CRecordView(CMyView:

:

IDD)                                 ~

{

   //{{AFX_DATA_INIT(CMyView)

   m_pSet=NULL;

   //}}AFX_DATA_INIT

   //TODO:

addconstructioncodehere

}

 

CMyView:

:

~CMyView()

{

}

 

voidCMyView:

:

DoDataExchange(CDataExchange*pDX)

{

    CRecordView:

:

DoDataExchange(pDX);

    //{{AFX_DATAMAP(CMyView)

    DDX_FieldText(pDX,IDC_EDIT1,m_pSet->m_HBH,m_pSet);

    DDX_FieldText(pDX,IDC_EDIT2,m_pSet->m_DGPR,m_pSet);

    DDX_FieldText(pDX,IDC_EDIT3,m_pSet->m_SFZH,mpSet);

    DDX_FieldText(pDX,IDC_EDIT4,m_pSet->mFCCS,mpSet);

    DDX_FieldText(pDX,IDC_EDIT5,m_pSet->m_DDCS,mpSet);

    DDX_FieldText(pDX,IDC_EDIT9,m_pSet->m_ZWDJ,mpSet);

    //}}AFX_DATA_MAP

}

 

BOOLCMyView:

:

PreCreateWindow(CREATESTRUCT&cs)

{

    //TODO:

ModifytheWindowclassorstylesherebymodifying

    //theCREATESTRUCTcs

    returnCRecordView:

:

PreCreateWindow(cs);

}

 

voidCMyView:

:

OnInitialUpdate()

{

    m_pSet=&GetDocument()->m_mySet;

    CRecordView:

:

OnInitialUpdate();

    GetParentFrame()->RecalcLayout();

    ResizeParentToFit();

}

 

/////////////////////////////////////////////////////

//CMyViewprinting

 

BOOLCMyView:

:

OnPreparePrinting(CPrintInfo*pInfo)

{

//defaultpreparation

returnDoPreparePrinting(pInfo);

}

 

voidCMyView:

:

OnBeginPrinting(CDC*/*pDC*/, CPrintInfo*/*pInfo*/)

{

     //TODO:

addextrainitializationbeforeprinting

}

 

voidCMyView:

:

OnEndPrinting(CDC*/*pDC*/, CPrintInfo*/*pInfo*/)

{

     //TODO:

addcleanupafterprinting

}

 

/////////////////////////////////////////////////////

//CMyViewdiagnostics

 

#ifdef_DEBUG

voidCMyView:

:

AssertValid() const

{

     CRecordView:

:

AssertValid();

}

 

voidCMyView:

:

Dump(CDumpContext&dc)const

{

     CRecordView:

:

Dump(dc);

}

 

CMyDoc*CMyView:

:

GetDocument() //non-debugversionisinline

{

      ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));

      return(CMyDoc*)m_pDocument;

}

#endif //_DEBUG

 

/////////////////////////////////////////////////////

//CMyViewdatabasesupport

CRecordset*CMyView:

:

OnGetRecordset()

{

      returnm_pSet;

}

 

/////////////////////////////////////////////////////

//CMyViewmessagehandlers

 

 

 

 

 

 

2.工程设置文件

另外,我们列出工程的设置文件,它主要包括了工程中对于数据源、数据集和数据初始化的一些信息,其内容如下所示:

//航班管理系统Set.cpp:

implementationoftheCMySetclass

#include"stdafx.h"

#include"航班管理系统.h"

#include"航班管理系统Set.h"

 

#ifdef_DEBUG

#d

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1