航班与订票管理系统 面向对象课程设计报告.docx
《航班与订票管理系统 面向对象课程设计报告.docx》由会员分享,可在线阅读,更多相关《航班与订票管理系统 面向对象课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
航班与订票管理系统面向对象课程设计报告
摘要:
虽着城市生活节奏的加快,飞机已经成为人们使用越来越频繁的交通工具,随之而来的问题是,如何能让旅客最快、最便捷的订到机票。
这就需要一个合适的订票系统来处理航班、机票、旅客等信息,方便售票人员查询,插入,删除各种信息。
本系统就是利用面向对象visualC++环境中MFC开发一个民航售票管理系统,能方便快捷的运用在民航服务中。
本系统是根据售票业务基本流程进行的。
在航班订票系统中,需要满足一些基本信息:
乘客乘坐航班的起点、终点、日期和预订座位等基本信息,自动显示乘客需要的航班是否存在,通过数据库的利用满足一些必要的查询服务。
关键词:
面向对象;民航售票管理系统;MFC;数据库
1课题综述
1.1课题来源及意义
随着人类科技的发展进步和生活水平的不断提高,使得飞机在人们的日常中扮演了更加平凡的角色。
一般情况下,人们订票是通过电话订票或者是现场订购。
但是随着计算机发展,尤其是计算机网络的发展,人们对于订票又有了新的需求:
网上定票。
同时,对于航班订票系统的需求也应运而生。
该系统能满足乘客的订票、查询等等一系列需求。
乘客只需要点点鼠标,即方便也节省时间,真正意义上的方便了乘客。
1.2预期的目标
利用面向对象visualC++环境中MFC开发一个民航售票管理系统,能完成以下功能:
乘客乘坐航班的起点、终点、日期和预订座位等基本信息,自动显示乘客需要的航班是否存在,通过数据库的利用满足一些必要的查询服务。
1.3面对的问题
开发本系统的所面对的最大问题就是将程序的面向对象化,以及运用MFC进行开发。
面向对象具有抽象性,这对于思维的要求就比较高,程序制作起来难度大。
并且,系统各个板块的相互联系也是一个比较难的问题。
关于MFC,就是关于控件跟代码的结合问题。
这些就要求我们对于所学知识的掌握要到位。
对于一些抽象思维能理解,并利用这些思维进行编程。
2系统分析
2.1涉及的知识基础
在本次程设计中,用的是面向对象的程序设计思想。
主要用到的知识有类、函数、MFC、成员函数、数据库的链接等等。
2.1.1函数的应用
类外实现成员函数的形式如下:
返回值类型类名:
:
成员函数名(形式参数表)
{
函数体
}
构造函数是类的一个特殊成员函数,它的函数名与类名相同,可以有任意类型的参数,但不能具有返回类型。
当创建一个新对象时,编译器会自动调用构造函数。
声明一个构造函数的语法格式如下:
public:
类名(〈参数表〉);
2.1.2数据库的访问
ADO访问数据库:
主要是使用ADO的各种对象进行访问,它易使用、速度快、内支出少,其大好处是在Internet上访问数据库的高效性。
因为ADO的关键的Internet中使用了少的网络流量,并且在客户端和数据库服务端使用了少的层数。
可以说,ADO为桌面或Internet上的数据库访问提供了一种轻量级的高性能接口。
ActiveX控件访问:
ActiveX控件是一种可重用的软件组件,通过使用ActiveX控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。
ActiveX控件过去被称做OLE控件,其开发基于组件对象模型(COM,ComponentObjectModel),它嵌入到对话框或其他的ActiveX控件容器。
使用ActiveX控件的应用程序可以通过该控件所包含的一系列的属性和方法(合起来称做接口)来操作该控件的行为。
ActiveX控件并不仅仅限于与用户的可视交互,它还可以用于其他用途,如访问数据库、监视数据等。
2.1.3类的应用
根类:
CObject类。
CObject类是MFC的抽象基类,实际上是MFC中大多数类及用户自定义子类的根类,其中包括许多公共操作。
这些操作包括:
对象的建立和删除、对象诊断输出、运行时信息等。
图2-1类的结构
应用程序体系结构类:
这些类用于构造应用程序的基本结构,提供多数应用程序共用的功能,实现了编写程序的任务,即填充框架,添加应用程序专用的功能。
利用这些类可以简化应用程序的开发过程。
2.1.4对话框的应用
所谓对话框(Dialog)实际上也是一个窗口,这是一种特殊的窗口,主要功能是输出信息、接收用户输入。
对话框类:
从CDialog类派生的对话框类提供编程接口,用来管理与对话框模板相关联的对话框。
CDialog类的许多成员函数可供程序员调用。
由于对话框是一种窗口,因此相应的对话框类必须与一个Windows窗口相联系,而对话框资源模板就是用于创建这个Windows窗口及其包含在其中的控件。
2.2功能模块框图
2.3总体方案
根据乘客订票的需要,将本系统分为三大块:
订票部分,飞机时刻表查询,航班信息查询。
3系统设计
本系统按照:
数据库设计,制作一个系统封面位图,创建应用程序框架,创建乘客订票管理对话框,制作航班时刻查询对话框,制作航班信息以及制作航班信息处理对话框的顺序进行。
下面就从这几个方面进行阐述。
3.1数据库设计
定义一个数据库文件“航班与订票管理系统”,同时创建一个数据表结构,包括三个部分:
乘客数据表,飞行时刻表,航班信息。
表一命名为乘客数据表,表二命名为飞行时刻表,表三命名为飞行时刻表。
其中三个表的参数见下面的三个表。
表3-1乘客数据表
字段名称
字段类型
字段大小
必须填写
航班号
文本
50
是
购订票人
文本
20
是
身份证号
数字
默认
是
发出城市
文本
50
是
到达城市
文本
50
是
日期
日期/时间
默认
是
起飞时间
日期/时间
默认
是
到达时间
日期/时间
默认
是
座位等级
文本
4
是
表3-2飞行时刻表
字段名称
字段类型
字段大小
索引
必须填写
航班号
文本
50
关键、唯一
是
发出城市
文本
50
是
到达城市
文本
50
是
起飞时间
日期/时间
默认
是
到达时间
日期/时间
默认
是
表3-3航班信息表
字段名称
字段类型
字段类型
索引
必须填写
航班号
文本
50
关键、唯一
是
购订票人
文本
20
是
身份证号
数字
默认
是
发出城市
文本
50
是
到达城市
文本
50
是
日期
日期/时间
默认
是
起飞时间
日期/时间
默认
是
是到达时间
日期/时间
默认
是
座位等级
文本
4
是
剩余座位
数字
默认
是
座位总数
数字
默认
是
票价
数字
默认
是
3.2制作一个系统封面位图
系统封面图的制作:
在Project选项中选择Addtoproject,再选择ComponentsandControls,然后选择VisualC++Components,继续选择里面的SplashScreen,后单击Insert。
之后出现一个Splash画面,内容实际就是一个位图文件的调用。
图3-1Splash航班登陆界面
3.3创建应用程序框架
基本框架制作过程如下:
启动VC++单击“File|New…”菜单项,在工程对话框中选择MFCAppWizard(EXE),输入工程名为“航班与订票管理系统”并选择Win32平台类型,单击“OK”,进入文档类型设置对话框,选择“Singledocument”,单击“Next”,选择“Datebaseviewwithfilesupport”,再单击“DateSource…”,之后进入DatebaseOptions界面。
选择“OLEDB”,单击“SelectOLEDBDateSource”,之后选择默认的,再单击“下一步”,进入数据连接属性界面。
选择“使用连接字符串”,单击“编译”,选择“机器数据源”,选择自己创建好的航班与订票管理系统数据库,单击“确定”。
然后回到“DatebaseOptions”界面,选择“ODBC”再选择自己创建好的航班与订票管理系统数据库,进入“SelectDatebaseTables”,把三个数据表都选上,单击“完成”,“Next”,“Finish”。
3.4创建乘客订购票管理对话框
根据下表,在主窗体插入相应得控件。
即添加10个Static,9个Edit,4个Button按键。
然后将10个Static相应的空间的标题改成如下图所示。
图3-1订票管理对话框
3.5制作航班时刻查询对话框
单击“Insert|ResourceDialog”菜单,在工程制图选项卡中增加新的对话框,插入相应控件。
同时要设置ADO及DBGrid控件的属性。
ADO属性设置:
Control中,选择UseConnectionString,然后单击Build,选择对应“飞行时刻表”数据;CommandType中选2-adCmdTable;Keyboard中的AllowAddNew,AllowDelete要选中,All选项中的DateSource中的IDCADODC1要选中。
图3-2飞行时刻表
3.6制作航班信息处理对话框
根据下表,单击“Insert|ResourceDialog”菜单,插入相应得控件。
同时要设置ADO及DBGrid控件的一些属性。
设置ADO的属性,首先Control选项中,先选择UseConnectionString,然后单击Build,选择对应的“航班信息表”数据;其次CommandType选项中要选2-adCmdTable;还有就是Keyboard选项中的AllowAddNew,AllowDelete都要选中,最后All选项中的DateSource中的IDCADODC1要选中。
图3-3航班信息表
4代码编写
按钮代码:
voidCMyView:
:
OnButton3()
{
CMyDlg1MyDlg1;
MyDlg1.DoModal();
}
voidCMyView:
:
OnButton4()
{
CMyDlg2MyDlg2;
MyDlg2.DoModal();
}
voidCMyView:
:
OnButton1()
{
CRecordset*pSet=OnGetRecordset();
if(pSet->CanUpdate()&&!
pSet->IsDeleted())
{
pSet->Edit();
if(!
UpdateData())return;
pSet->Update();
}
longm_lNewID=m_pSet->GetMaxID()+1;
m_pSet->AddNew();
m_pSet->m_hangbanhao=m_lNewID;
UpdateData(FALSE);
}
voidCMyView:
:
OnButton2()
{
UpdateData();
m_pSet->Update();
m_pSet->Requery();
}
5程序调试
5.1程序运行
点击运行,首先出来的界面就是位图登陆界面。
其停留的时间很短(1-2秒),之后就自动进入航班与订票管理系统的主窗口。
图5-1登陆界面
图5-2主窗口
单击飞行时刻表,便会弹出飞行时刻表对话框,并且能够显示一系列自己原先在数据库里面输入的信息。
图5-3飞行时刻表
单击航班信息表,弹出航班信息对话框,同样能够在对话框里面显示相应的数据信息。
图5-4航班信息表
在主窗口的9个Edit框里面相应的添加信息,确认添加,便能够显示添加后的信息。
图5-5添加信息显示
总结
经过几天的课程设计,使我对C++语言有了更进一步的认识和了解。
要想学好C++要重在实践,要通过不断的上机操作才能更好地学习它。
通过此次课程设计,我也发现我的好多不足之处。
第一天数据库做的很成功,大体框架也很清楚,不过第二天的时候难题就开始出现了,特别值得一提的是控件用错了,ADO控件应该选用MicrosoftADODateControl,version6.0,DBGird的那个控件也该选用MicrosoftDateGirdControl6.0。
接下来的问题就是数据源的问题,好多次数据源都没有导入,经过查阅资料,询问老师,和同学的帮助,最终克服了重重困难,发现问题之所在,顺利解决了这个问题。
通过这次困难,我知道了面对困难不能惧怕,要用心去寻找解决它的办法,这样完成后自己也特别会有成就感。
通过课程设计中的学习,我深刻认识到到学好计算机要重视实践操作,不仅仅是学习C++语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以在以后的学习过程中,我会更加注视实际动手操作,使自己更好地学好计算机的课程。
经过这次的课程设计,我真的收获颇多,学到了很多书本上没有的知识,感觉很好。
参考文献
1沈大林《Access数据库应用案例教程》,中国铁道出版社,2009.09
2郑阿奇编《VisualC++实用教程(第三版)》,电子工业出版社,2007.1
3郑莉,傅仕星编《C++面向对象程序设计》,清华大学出版社,2003.9
4徐孝凯《数据结构实验》,中央广播电视大学出版社,2001
5李师贤等译《C++精髓》,机械工业出版社,2002.8
6丁爱萍,郝小会孙宏莉《C语言程序设计实例教程(第二版)》,西安电子科技大学出版社,2002.3