用VC++制作一个航班与订票管理系统Word文档下载推荐.docx
《用VC++制作一个航班与订票管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用VC++制作一个航班与订票管理系统Word文档下载推荐.docx(32页珍藏版)》请在冰点文库上搜索。
购订票人
身份证号
发出城市
到达城市
日期
起飞时间
到达时间
座位等级
文本
数字
日期/时间
50
20
默认
4
是
乘客数据表的演示数据可参表10.2所示内容。
表10.2乘客数据表的演示数据
出发城市
起飞时间
XH-0001
张三有
李有前
程钱
王三福
陈东东
张明确
111132227
121212218
111132220
111132221
111132222
111132223
重庆
北京
02-6-14
13:
55:
00
15:
A
B
C
2.“航班信息”数据表结构的定义
航班信息是供乘客查询使用的一个重要内容,也是航空公司进行数据管理的重要方面,根据航班信息的特点,特创建“航班信息”数据表的结构如表10.3所示。
表10.3“航班信息”数据表结构
字段大小
剩余座位
座位总数
票价
关键、惟一
“航班信息”数据表结构一经创建,用户可以在其中输入一些数据记录,以在后面的对话框制作中显示对话框制作的数据操作效果。
其演示数据可参考表10.4所示内容(数据仅供演示之用,无须考虑业务的真实性)。
表10.4“航班信息”数据表的参考数据
XH-001
张有钱
李富生
王明星
张铁生
李开封
陈有名
王一万
32322323
23423232
34343433
34343434
34343435
34343436
34343437
重庆重庆
02-6-16
35
450
400
350
3.“飞行时刻表”结构定义
飞行时刻表是航空公司的一切航班运行的时刻表,它也是航班管理中的一个重要方面,根据航空时刻表的数据特点,特定义“飞行时刻表”的结构如表10.5所示。
表10.5“飞行时刻表”数据表结构
所属公司
飞行时刻表的演示数据可参考表10.6所示内容。
表10.6飞行时刻表的演示数据
BH-002
ZH-003
西安
12:
00:
17:
05:
14:
20:
03:
西南航空公司
北方航空公司
中国民航
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"
航班管理系统h"
航班管理系统Set.h"
航班管理系统Doc.h"
航班管理系统View.h"
FxrjDlg.h"
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,
ON_COMMAND(ID_FILE_PRINT_PREVIEW,
OnFilePrintPreview)
END_MESSAGE_MAP()
//CMyViewconstruction/destruction
CMyView:
CMyView():
CRecordView(CMyView:
IDD)
~
{
//{{AFX_DATA_INIT(CMyView)
m_pSet=NULL;
//}}AFX_DATA_INIT
//TODO:
addconstructioncodehere
}
~CMyView()
voidCMyView:
DoDataExchange(CDataExchange*pDX)
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)
ModifytheWindowclassorstylesherebymodifying
//theCREATESTRUCTcs
returnCRecordView:
PreCreateWindow(cs);
OnInitialUpdate()
m_pSet=&
GetDocument()->
m_mySet;
OnInitialUpdate();
GetParentFrame()->
RecalcLayout();
ResizeParentToFit();
//CMyViewprinting
OnPreparePrinting(CPrintInfo*pInfo)
//defaultpreparation
returnDoPreparePrinting(pInfo);
OnBeginPrinting(CDC*/*pDC*/,
CPrintInfo*/*pInfo*/)
addextrainitializationbeforeprinting
OnEndPrinting(CDC*/*pDC*/,
addcleanupafterprinting
//CMyViewdiagnostics
AssertValid()
const
AssertValid();
Dump(CDumpContext&
dc)const
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
OnButtonl()
Addyourcontrolnotificationhandlercodehere
m_pSet->
AddNew();
UpdateData(FALSE);
OnButton2()
UpdateData();
Update();
Requery();
//m_pSet->
CancelUpdate();
OnButton3()
CFxrj_DlgFxrj_Dlg;
Fxrj_Dlg.DoModal();
OnButton4()
CHbxxDlgHbxxDlg;
HbxxDlg.DoModal();
2.工程设置文件
另外,我们列出工程的设置文件,它主要包括了工程中对于数据源、数据集和数据初始化的