数据库课程设计航空售票管理系统.docx
- 文档编号:19035671
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:36
- 大小:447.50KB
数据库课程设计航空售票管理系统.docx
《数据库课程设计航空售票管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计航空售票管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
数据库课程设计航空售票管理系统
课程设计
课程名称数据库体系课程设计
标题名称
学生学院
专业班级
学号
学生姓名
指点教师
2013年1月
评价尺度
分数比例(%)
成绩
论文
论文构造包含:
1.相干技巧介绍.需求剖析.
2.概念构造设计(涉及的实体至少三个以上).
3.逻辑构造设计(有完全性束缚解释).
4.数据库物理设计.
5.数据库完全性设计(违背实体.参照完全性时的解决办法,比方触发器.存储进程等)
5.数据库安然性设计.
6.数据库实行.体系测试计划和测试陈述.
7.体系的重要功效和应用解释.体系装配解释.
请求论文完全.内容具体,格局规范.
40
程序
1、体系运行精确;
2.功效完美:
有增.删.改.查功效,输入.输出功效;
3.有根本的统计.报表功效
4.有多表衔接查询.自身衔接查询.字符串匹配查询.隐约查询.分组查询等.
5.工作量充分;
6.体系实现技巧的难度.
30
数据
库设
计
E-R图设计精确;
数据库逻辑构造设计规范化;
数据库物理设计合理.
30
总评成绩
优
良
中
合格
不合格
总分
目次
1绪论
课题布景及实际意义
跟着科技的成长和人们生涯程度的日益进步,人们在不竭寻求加倍快捷的交通方法以知足人们快节拍的生涯方法,航空体系在交通体系中已扮演着一个越来越重要的脚色.然而,交通的快捷离不开信息的快捷.
跟着跟着盘算机的成长和普及,人们的生涯方法产生了伟大的转变,盘算机在代替和延长脑力劳动方面施展着越来越重要的感化.在交通体系中,有大量的数据须要被处理,而这些工作有人来完成几乎是不成能的,而交给盘算机处理,就可以很好地知足我们的需求.
航空售票治理体系可以依据乘客和治理人员的请求,进行便利快速的查询.购票.退票和治理等工作.本文介绍了简略单纯航空售票治理体系的实现进程.
航空票务治理体系简介
1.2.1界说
航空票务治理体系中重要包含了用户的根本信息(用户名.暗码.权限),客户信息(姓名.性别.身份证号.接洽德律风.备注等),航班信息(航班编号.动身城市.到达城市等).可以添加.查询.修正.删除各表的根本信息,知足客户购置机票.退票等多种需求.一切的统计和盘算都盘算机代为治理了,航空票务治理体系对企业的合理化治理起到了很大的感化,它为企业信息化的扶植打响了头炮,企业的信息化扶植已成为现代各个企业成长的须要.
1.2.2重要功效
本体系重要功效有:
(1)体系登录(用户名与暗码)
(2)客户信息(客户信息修正与添加.查询.删除)
(3)航班信息(航班信息的增长.撤消.修正)
(4)订单信息(检讨订单的情形,退票)
(5)购置机票(选择对应的机票并且购置)
(6)关于(显示版权信息)
重要性
实践证实,一个企业中治理与效益是互相干注的,实现数据规范化.主动化的电脑治理,是一个治理规范.运作高效的企事业单位的必定请求.跟着现代科技的进步,用盘算机来进行票务治理也成为现代化企业运作必不成少的一部分.
应用盘算机来进行票务的治理的重要有以下几个方面利益:
(1)大大下降了工作人员的工作量,进步了工作效力;
(2)节俭成本,包含人力资本;
(3)安然精确的购票.治理航班的感化;
开辟技巧介绍
《航空票务治理体系》的开辟平台和对象为:
后台数据库应用SQLServer2008,前台开辟对象应用VS2010.
1.VS2010是一个功效壮大的可视化应用程序开辟对象,用于Windows情形下32位的应用程序的开辟,是盘算机界公认的最优良的应用开辟对象之一.在供给可视化的编程方法的同时,VS2010也实用于编写直接对体系底层操纵的程序,生成代码的质量也优于其它的开辟对象.在VS2010情形下,应用Microsoft的根本类库MFC(MicrosoftFoundationClassLibrary),可以应用完全的面向对象的办法来进行Windows应用程序的开辟,使得Windows程序员从大量的庞杂劳动中解救出来,领会到真正的程序说话的壮大功效和优越的灵巧性[2].
VS2010编程是一个面向对象的程序设计办法.同传统的构造化程序设计办法比拟,它缩短软件的研制时光,进步软件的开辟效力,使程序员可以更好地懂得和治理宏大而庞杂的程序.
面向对象的程序设计汲取了构造化程序设计的精髓,它应用了人们依据对事物分类和抽象的偏向,引入了类和对象的概念,具有封装性(数据抽象).继续和多态的特色.与构造化程序设计不合的是,面向对象程序设计是用类抽象代表示实的实体,用类之间的继续关系暗示程序设计的抽象进程.函数只是对数据的操纵,没稀有据的概念,而类是数据和数据操纵的聚集,因为面向对象的程序设计办法平常近实际,所以越来越风行.
VS2010中集成了大量的最新技巧,如ActiveX.COM等技巧,程序开辟人员可以紧紧地掌控住软件开辟技巧成长的偏向,开辟出功效壮大的应用程序.
VS2010还供给了丰硕的技巧资本,MSDN(MicrosoftDevelopNetwork)供给了壮大的联机帮忙支撑,同时还可以经由过程拜访Microsoft的网上站点来获得最新的技巧文档.
2.SQLServer是一个关系数据库治理体系,SQLServer是一个周全的数据库平台,应用集成的贸易智能(BI)对象供给了企业级的数据治理.SQLServer数据库引擎为关系型数据和构造化数据供给了更安然靠得住的存储功效,便利安然靠得住地构建和治理用于营业的高可用和高机能的数据应用程序.
SQLServer特色[5]:
(1)真正的客户机/办事器体系构造.
(2)图形化用户界面,使体系治理和数据库治理加倍直不雅.简略.
(3)丰硕的编程接口对象,为用户进行程序设计供给了更大的选择余地.
(4)SQLServer与WindowsNT完全集成,应用了NT的很多功效,如发送和接收新闻,治理登录安然性等.SQLServer也可以很好地与MicrosoftBackOffice产品集成.
(5)具有很好的伸缩性,可跨越多种平台应用.
2体系需求剖析设计
需求剖析的目标
软件的需求剖析必须要有对原营业的一个深刻懂得.提取.抽象.升华的进程,治理软件需求剖析尤其如斯.
软件的需求剖析是从用户的营业中提掏出软件体系可以或许帮忙用户解决的营业问题,经由过程对用户营业问题的剖析,计划出我们的软件产品.这个步调是对用户营业需求的一个升华,是一个把用户营业治理流程优化,转化为软件产品,从而晋升治理而实现的质的飞跃,这一步是否成功,直接关系到开辟出来的软件产品可否得到用户承认,顺遂交付给客户,客户可否真正应用我们的产品帮忙他解决营业或治理问题.
按照软件工程对软件开辟进程的描写,需求阶段细分为需求调研和需求剖析两个小阶段,需求调研须要充分过细的懂得客户目标,用户营业内容.流程等,这是一个对需求的收集进程,是进行需求剖析的基本预备.
2.2体系需求剖析
体系功效需求
航空票务治理体系中重要要解决的是:
1.用户在登录应用程序界面时,检讨用户的正当性,并依据用户的权限为其分派功效.
2.本体系可以由售票员.司理.总司理几个身份进入,不合身份失去不合权限.例如,只有总司理可以在航班治理中修正和撤消航班,只有司理以上才干退票.而售票员只能售票.
3.体系治理员可以经由过程应用程序对用户信息进行同一治理,进行各类信息的修正与操纵.
4.应用程序内部要可以经由过程SQL语句对数据库内的数据进行更新.拔出(增长).修正和删除等操纵.
5.当体系治理员对相干信息进行操纵时,体系要主动检测输入的数据是否合理,并弹出响应的提醒信息.
6.应用程序中要有该程序的相干简介和应用解释,帮忙体系治理员和用户更好地应用该程序.
软件运行情形
操纵体系:
WindowsXp.Windows7
Cpu:
IntelCeleron448MHz或更高设置装备摆设
内存:
256M或更大
硬盘:
100M或更大空间
2.3数据流图
数据流图介绍
数据流图也称为数据流程图dateflowdiagram,DFD,是一种便于用户懂得和剖析体系数据流程的图形对象,摆脱了体系和具体内容,精确的在逻辑上描写体系的功效.输入.输出和数据存储等,是体系逻辑模子的重要构成部分.
数据流图的根本构成成分:
(1)数据流:
是由一组固定成分的数据构成,暗示数据的流向.值得留意的是,数据流图中描写的是数据流,而不是控制流.除了流向数据存储或从数据存储流出的数据不必定名外,每个数据流必须要有一个合适的名字,以反应该数据流的寄义.
(2)加工:
加工描写了输入数据流到输出数据之间的变换,也就是输入数据流经由什么处理后变成了输出数据.每个加工都有一个名字和编号.编号能反应该加工位于分层的数据流图的哪个层次和哪张图中,可以或许看出它是由哪个加工分化出来的子加工.
(3)数据存储:
数据存储暗示临时存储的数据.每个数据存储都有一个名字.
(4)外部实体:
外部实体是消失于软件体系之外的人员或组织,指出数据所须要的发源地或体系所产生的数据的归属地.
体系数据流图
治理信息
数
存取据
获取库
客户订购信息文
件
图2.1数据流图
图2.2数据流图
3体系整体设计
3.1体系剖析与设计
基于上面的剖析,按照软件工程的思惟,对航空票务治理体系进行功效剖析:
(1)实现体系登录功效;
(2)输入客户根本信息,包含姓名.性别.身份证等;
(3)阅读和修正航班信息;
(4)购置机票;
(5)查询订单和退票;
(6)查询航班信息
3.2体系功效模块设计图
经由过程各类体系的剖析,得到了航空票务治理体系的重要功效模块及其关系,如图3.1所示:
图体系功效模块设计图
3.3数据库设计
一个成功的治理体系,是由:
[50%的营业+50%的软件]所构成,而50%的成功软件又有[25%的数据库+25%的程序]所构成,数据库设计的利害是一个症结.假如把企业的数据比做性命所必须的血液,那么数据库的设计就是应用中最重要的一部分.基于上述原因,体系的数据库采取熟习的MSSQL2008,并以简略.高效为基起源基本则对体系数据库进行了剖析和设计.
数据库概念设计
因为E-R模子与人们熟习实际世界的类似形,是以在描写数据库的概念构造或全局逻辑构造时,采取E-R图这种图形化的暗示有平常大的利益,一是图形化暗示的简略性;二是图形化暗示的清楚性[6].经由过程具体的研讨和剖析,按照企业的一般的要乞降运作程序,得到根本的实体关系图如图3.2所示.
图3.2E-R图
数据库逻辑设计
基于之前的具体模块及功效设计,体系须要设计到下列各表,这些表配合存储着体系所须要的数据.在设计数据库表的进程中,重要遵守以下几条原则:
1.数据库设计一个表只存储一个实体或对象的相干信息,不合的实体存储在不合的数据表中;2.扩充信息和动态变更的信息必定要离开在不合的表里;3.尽量防止消失多对多如许的表关系体系.
是以须要树立以下几个数据库:
员工信息表.出勤信息表.工资信息表.用户表.因为开辟时应用的数据量较小,是以这些表都分散在同一个数据库中.
(1)用户信息表中包含用户名.暗码.权限字段.具体设置如表3.1所示.
表3.1用户信息表
字段名
数据类型
解释
用户
Varchar(18)
字段大小为18(主键)
暗码
Varchar(18)
字段大小为18
权限
int
不许可NULL
用户表设计
(2)客户信息表中包含姓名.性别.身份证号.客户德律风.备注等字段.具体设置如表所示.
表3.2客户信息表
字段名
数据类型
解释
姓名
Varchar(20)
notnull
性别
Varchar(4)
notnull
身份证号
Varchar(18)
(主键)
客户德律风
Varchar(11)
备注
Varchar(50)
图3.4客户信息设计
(3)航班信息表中包含航班编号.动身城市.到达城市.动身日期.机票价钱.备注等字段.具体设置如表3.3所示.
表3.3工资信息表
字段名
数据类型
解释
航班编号
Varchar(12)
(主键)
动身城市
Varchar(50)
notnull
到达城市
Varchar(50)
notnull
动身日期
Varchar(50)
notnull
机票价钱
int
notnull
备注
Varchar(50)
图3.5航班信息设计
(4)订单信息表中包含订单号.航班编号.身份证号等字段.具体设置如表3.4所示.
表3.4订单信息表
字段名
数据类型
解释
订单号
Varchar(10)
(主键)
身份证号
Varchar(18)
外键
航班编号
Varchar(12)
外键
购置票数
Int
notnull
购置日期
Varchar(50)
notnull
售票员
Varchar(18)
外键
备注
Varchar(50)
图3.6订单信息设计
图3.7数据库关系图
(5)外键设置
图外键设置
图航班编号外键设置
图身份证号外键设置
图用户外键设置
4具体设计
4.1数据库衔接
采取ADO方法,应用程序可经由过程ADO直接与数据库衔接;
在创建应用程序实例初始化时,进行数据库衔接.在登陆框初始化时,履行sql查询.
相干的衔接程序如下:
BOOLCADOtestApp:
:
InitInstance()
{
AfxEnableControlContainer();
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
//在ADO操纵中建议语句中要经常应用try...catch()来捕获错误信息,
//因为它有时会经常消失一些想不到的错误
try
{
m_pConnection->Open("driver={SQLServer};Server=.;Database=SL;UID=;PWD=",
"","",adModeUnknown);
//Server后是办事器的盘算机名,可以用.暗示当地,Database后是数据库名,
//这里应用的windows验证,没有设置用户名和暗码,
}
catch(_com_errore)
{
AfxMessageBox("数据库衔接掉败!
");
returnFALSE;
}
衔接成功后应在响应的对话框中完成初始化工作(以登录界面为例):
BOOLCAirHoldingSystemDlg:
:
OnInitDialog()
{
CDialogEx:
:
OnInitDialog();
SkinH_Attach();//挪用dll皮肤文件,换一层皮肤
//SetCursor((HCURSOR)GetDlgItem(IDC_PWD));
//GetDlgItem(IDC_PWD)->SetFocus();
//MessageBox("a");
m_User="李锦樑";//初始化用户名是为了便利调试
m_Password="123";
UpdateData(FALSE);
//将“关于...”菜单项添加到体系菜单中.
//IDM_ABOUTBOX必须在体系敕令规模内.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
BOOLbNameValid;
CStringstrAboutMenu;
bNameValid=strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//设置此对话框的图标.当应用程序主窗口不是对话框时,框架将主动
//履行此操纵
SetIcon(m_hIcon,TRUE);//设置大图标
SetIcon(m_hIcon,FALSE);//设置小图标
//TODO:
在此添加额外的初始化代码
returnTRUE;//除非将核心设置到控件,不然返回TRUE
}
初始化后,即可进行登陆操纵
4.2举例航班治理代码
航班治理界面初始化
初始化ListCtrl控件,显示相干航班信息
找到初始化函数,并写入相干代码
图4.2MFC类领导找初始化函数
BOOLCFlight:
:
OnInitDialog()
{
CDialogEx:
:
OnInitDialog();
if(root { GetDlgItem(IDC_NEW)->ShowWindow(SW_HIDE); GetDlgItem(IDC_REMOVE)->ShowWindow(SW_HIDE); } m_List.InsertColumn(0,"航班编号",LVCFMT_CENTER,85); m_List.InsertColumn(1,"动身城市",LVCFMT_CENTER,85); m_List.InsertColumn(2,"到达城市",LVCFMT_CENTER,85); m_List.InsertColumn(3,"机票价钱",LVCFMT_CENTER,85); m_List.InsertColumn(4,"动身日期",LVCFMT_CENTER,85); m_List.InsertColumn(5,"备注",LVCFMT_CENTER,85); UpdateData(false); m_pConnection.CreateInstance(__uuidof(Connection)); m_pRecordset.CreateInstance(__uuidof(Recordset)); //在ADO操纵中建议语句中要经常应用try...catch()来捕获错误信息, //因为它有时会经常消失一些想不到的错误 try { //打开当地SqlServer库student m_pConnection->Open("driver={SQLServer};Server=.;Database=AirHolding;UID="";PWD=""", "","",adModeUnknown); //Server后是办事器的盘算机名,Database后是数据库名 //这里应用的windows验证,没有设置用户名和暗码, //假如是windows和SQLserver混杂验证,UID="";PWD=""要写入响应的用户名和暗码 } catch(_com_errore) { AfxMessageBox("数据库衔接掉败! "); returnFALSE; } //TODO: Addyourcontrolnotificationhandlercodehere try { m_pRecordset->Open("SELECT*FROM航班信息",//查询Good表中所有字段 theApp.m_pConnection.GetInterfacePtr(),//获取库接库的IDispatch指针 adOpenDynamic, adLockOptimistic, adCmdText); } catch(_com_error*e) { AfxMessageBox(e->ErrorMessage()); } //m_List.InsertItem(4,"ab"); //m_List.InsertItem(5,"ab"); if(! m_pRecordset->adoEOF) m_pRecordset->MoveFirst(); while(! m_pRecordset->adoEOF) { _variant_tprice=m_pRecordset->GetCollect("机票价钱"); price.bstrVal; intline=m_List.GetItemCount(); m_List.InsertItem(line,(char*)(_bstr_t)(m_pRecordset->GetCollect("航班编号"))); m_List.SetItemText(line,1,(char*)(_bstr_t)(m_pRecordset->GetCollect("动身城市"))); m_List.SetItemText(line,2,(char*)(_bstr_t)(m_pRecordset->GetCollect("到达城市"))); m_List.SetItemText(line,3,(char*)(_bstr_t)(m_pRecordset->GetCollect("机票价钱"))); m_List.SetItemText(line,4,(char*)(_bstr_t)(m_pRecordset->GetCollect("动身日期"))); _variant_tstr=m_pRecordset->GetCollect("备注"); if(str.vt==VT_NULL) m_List.SetItemText(line,5,"无"); else m_List.SetItemText(line,5,(char*)(_bstr_t)str); m_pRecordset->MoveNext(); } //TODO: 在此添加额外的初始化 returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //平常: OCX属性页应返回FALSE } 初始化成功后,得如下界面: 图4.3航班治理界面 新增航班的实现 对多用户数据库程序来说,不合的用户应有不合的权限.比方治理员可以无任何限制,有的用户只有查询的权限没有修正的权限,有的用户只可以输入数据不克不及查询等等.所以新增航班这一功效只有失去总司理的权限才干应用,不然此按钮将被隐蔽起来,如图4.4,与4.3形成比较. 图4.4售票员航班治理界面 //新增航班 voidCFlight: : OnBnClickedNew() {//弹出新增航班对话框 CAdd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 航空 售票 管理 系统