【简介:】本篇文章给大家谈谈《航班预定系统》对应的知识点,希望对各位有所帮助。本文目录一览:
1、软件工程航空公司机票预定系统
2、飞机订票系统设计
3、目前常用到的机票预订系
本篇文章给大家谈谈《航班预定系统》对应的知识点,希望对各位有所帮助。
本文目录一览:
软件工程航空公司机票预定系统
软件工程课程设计
一、 课程设计题目:
航空公司机票预订系统。
二、 课程设计内容简要分析:
航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
三、主要设计过程:
1、问题定义:
航空运输现在已经逐渐成为我国运输事业的重要手段,但是对于航空运输来说,天气或人为的种种的因素,会给航空机票的预定和退订带来困难,特别是对于机票的预定和退订的条理性、及时性和准确性,也同样带来巨大的困难。
对以上的问题,完全可以建立一套完整的航空公司机预定系统,来对信息进行录入、查询、订票、退票等日常管理工作,尽量少的人员介入和数据冗余,以简练实用为基础,实现信息管理计算机化,提高工作效率和信息化水平。
2、可行性分析:
可行性分析对系统的开发至关重要,可以大幅减少不必要的损失,保证系统开发的顺利进行。可以从技术可行性、经济可行性、操作可行性三方面进行系统可行性分析:
2.1、技术可行性:
这些年来,计算机技术的发展异常迅猛,而绝大多数的企业和单位,都已经把计算机作为信息和数据处理、保存和管理的重要工具。
Java是Sun Microsystem公司的James Gosling开发的编程语言。它以C++为基础,但是却是一个全新的软件开发语言。Java是一个简单,面象对象、分布式、解释性、强壮、安全,与系统无关、可移植、高性能、多线程和动态的语言,利用Java就可以编制出程序接口好、图形界面优美的管理系统。同时,微软公司开发的SOL Server 2000,为数据库的开发和管理带来了极大的方便。
2.2、经济可行性:
一方面,对于新系统的开发和研究,不需要花费更多的费用,而且对于人员的培训,不同样不需要花费很多;另一方面,航空公司的原有服务器和计算机系统,同样可以用来使用,不需要更新系统。
2.3、操作可行性:
对于用Java开发的本系统,通过简单的学习就可以熟练操作,同时,对于票务的管理,也同样因为本系统的高效性、及时性和方便性而易于管理。
通过以上的分析,航空公司机票预定系统在经济上、技术上、操作上都是可行的。
3、 需求分析:
需求分析阶段的主要目标是准确了解用户对未来软件的系统结构的需求,是发现、求精、建模、规格说明和复审过程。
在需求分析中,可以采用主要流程和数据流程图来描述。
3.1、该系统主要要完成的流程为:
a) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
b) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
c) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
d) 退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
3.2、数据流程图:
数据流程图是描绘信息流和数据从输入移动到输出的过程中所经历的变换。是一种能全面描述信息系统逻辑模型的主要工具,也是系统分析人员与用户进行交流的有效手段。
旅客的订票流程图如下:
旅客取票的流程图如下:
订票旅客清单
打印机票
旅客信息查询
旅客
旅客
售出机票信息
4、概要设计:
4.1、本系统的设计总框图:
说明:本系统共分为两大子系统:客户定票系统和后台管理系统。
客户服务系统包含三个子系统:
1、查询系统(实现查询功能)
2、定票系统(实现定票功能)
3、退票系统(实现退票和修改功能)
后台处理系统包含三个子系统:
1、航班信息查询 (实现航班信息的查询功能)
2、航班信息修改(实现航班信息的修改、新增、删除功能)
3、乘客信息查询(实现乘客信息的查询)
两大系统共用两个数据文件:航班基本信息文件和客户定票信息文件。
4.2、客户定票系统的概要设计:
说明:
1)查询:用户可以通过输入航班号单关键字查询,飞机的起降地点和飞机的起飞时间双关键字查询两种方式进行查询。(注:结构图里查询和订票之间的连线表示客户可以由查询界面直接进入订票界面)
2)订票:客户可以直接从主界面直接进入订票界面,也可以从航班信息查询界面通过事件触发进入订票界面。客户在订票界面内填写客户基本信息和所定航班的关键信息,然后由提交事件进行信息有效性判断。如果数据有效,则修改航班基本信息,新增客户信息。
3)退票和修改:在客户正确输入交易单号,乘客姓名,身份证号的前提下,系统确定数据有效性,客户拥有退票或修改交易的权限。此时对航班基本信息数据文件和客户订票信息文件进行数据项的删除或修改。
4)客户修改的主要作用:当客户对于所定机票的航班号,数量,等级等内容需要修改时,可启动此功能。
同时,为方便客户修改过程能准确的了解航班基本信息,在客户退票界面加入了查询按钮。可以通过事件触发进入相关界面。
4.3、后台管理系统的概要设计:
说明:
1) 航班信息修改:管理人员可以通过输入航班号与日期查询该航班的基本信息 。可在查询的结果上进行修改,也可删除该条信息。所有数据修改都应在数据文件中完成,在界面上显示出来。
2) 航班信息录入:管理人员可以通过输入新的航班信息新加一条航班的基本信息。
3) 乘客信息查询:管理人员可以通过输入交易单号码,乘客姓名,乘客身份证号查询乘客的基本信息。
4.4、机票预订系统的逻辑模型如下:
航班机票信息
旅行时间
姓名
性别
旅行地点
身份证号码
工作单位
旅客
1
价格
航空公司
取票通知
帐单
订票
1 1
时间
旅行社
合适航班机票
N
订票旅客清单
售出机票信息
可售机票
等级
5、详细设计:
5.1、主界面程序流程图设计:
说明:在主界面,可以设置四个按钮以供选择:查询、订票、退票和退出。
选择不同的按钮触发不同事件。
5.2、查询系统程序流程图设计:
5.3、订票系统程序流程图设计:
5.4、 退票系统流程流程图设计:
6、实现和单元测试:
6.1、编码:
航班信息链表类核心代码:
public class FlightList implements Serializable
{
public FlightListNode firstNode; // 第一架航班的信息表
public FlightListNode lastNode; // 最后一架航班的信息表
public String name;
public int numberOfRecords; // 全天起落航班的总记录
public FlightList( String s )
{
name = s;
firstNode = lastNode = null;
}
public boolean exist( String sFlightNo, Date date ) //判断含传入航班号和日期的结点是否存在
{
FlightListNode current = firstNode; // 航班信息的第一个结点
while( current != null)
{
if( current.data.flightNum.equals( sFlightNo )
current.data.date.equals( date ) )
return false;
else
current = current.next; //当前航班号不存在时转入下一个结点
}
return true;
}
public void insertAtFront( FlightInfo insertItem ) //在链首插入结点
{
if( isEmpty() )
firstNode = lastNode = new FlightListNode( insertItem );
else
firstNode = new FlightListNode( insertItem, firstNode );
return numberOfRecords ++;
}
public void insertAtBack( FlightInfo insertItem ) //在链尾插入结点
{
if( isEmpty() )
firstNode = lastNode = new FlightListNode( insertItem );
else
lastNode = lastNode.next = new FlightListNode( insertItem );
return numberOfRecords ++;
}
public void delete( FlightInfo deleteItem ) //删除航班信息结点
{
FlightListNode deleteNode = new FlightListNode( deleteItem );
FlightListNode current = firstNode;
if( isEmpty() )
throw new EmptyListException( name );
FlightListNode temp = firstNode;
int flag = 0 ;
while( current != null )
{
if( current.data.flightNum.equals( deleteNode.data.flightNum ))
{
if( flag == 0 )
{
firstNode = firstNode.next;
}
temp.next = current.next;
break;
}
else
{
temp = current;
current = current.next;
flag ++;
}
}
numberOfRecords --;
}
}
7、软件维护:
维护方面主要为对服务器上的数据库数据进行维护。可使用 SQL SERVER 2000的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。
三、 主要参考文献:
1 张海潘. 软件工程导论. 北京:清华大学出版社,2005
2 赵松涛. SQL Server 2000系统管理实录. 北京:电子工业出版社, 2006
3 宋波. Java Web应用与开发教程. 北京:清华大学出版社,2006
4 孙卫琴. Java面向对象编程. 北京:电子工业出版社,2006
飞机订票系统设计
#include stdio.h
#include string.h
#include conio.h
#include ctype.h
#include stdlib.h
#include malloc.h
#include math.h//overflow
#define ok 1
typedef struct Yidingkehu
{//单链表
char name[15];//已订票的客户姓名
int dingpiaoshu;//已订票数量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//单链队
char name[15];//预订票的客户姓名
int yudingpiao;// 要订票数量
struct Weidingkehu *next2;//下一个链队结点指针
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//创建一个含有六个信息的结构体
char hangbanhao[15];//航班号-
char feijihao[15];//飞机号
int feixingriqi;//起飞时间
int chenkerenshu;//座位数
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一个链结点的指针
struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist head1);//02
void hbhchaxun();//通过航班号查询
void mddchaxun();//通过目的地查询
void lurugongneng();//初始化录入功能
void chaxungongnen();//查询功能
void dingpiaogongnen();//订票功能
void tuipiaogongnen();//退票功能
void main()
{
int n;
do{ //打印主界面
printf("\t 欢迎使用航空客运订票系统\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1. 录入功能 ==\n");
printf("\t==2. 查询功能 ==\n");
printf("\t==3. 订票功能 ==\n");
printf("\t==4. 退票功能 ==\n");
printf("\t==5. 退出 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t请选择:");
scanf("%d",n);printf("\n");
switch(n)
{
case 1: lurugongneng();//录入功能
break;
case 2: chaxungongnen();//查询功能
break;
case 3: dingpiaogongnen();//订票功能
break;
case 4:tuipiaogongnen();//退票功能
break;
default :exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
void lurugongneng()//初始化的单链表*********************************************************录入功能
{
Linklist p;
//int m,n;
if(!p) exit(OVERFLOW);
printf("\t请依次输入下面几项内容:\n\n");//这里的输入采用一个个单独输入,避免了乱赋值的现象
printf("航班号\n");
gets(p-hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车
gets(p-hangbanhao);
printf("飞机号\n");
gets(p-feijihao);
printf("终点站\n");
gets(p-zhongdianzhai);
printf("飞行日期\n");
scanf("%d",p-feixingriqi);
printf("乘客总数\n");
scanf("%d",p-chenkerenshu);
printf("余票数\n");
scanf("%d",p-yupiao);
}
void chaxungongnen()//******************************************************************查询功能
{
int n;
printf("\t 查 找 航 线 信 息 \n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1. 通过目的地查询 ==\n");
printf("\t==2. 通过航班号查询 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t请选择:");
scanf("%d",n);
printf("\n");//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通过目的地查询
{
char c[15];
int m;
Linklist p=L;
printf("\t请输入要查询的目的地:");
gets(c);
gets(c);//原因同上
do{
p=p-next;
if(p)
{
m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;
if(m==0)
{
printf("\t航班信息:\n");
printf("\t航班号:%s\n",p-hangbanhao);
printf("\t飞机号:%s\n",p-feijihao);
printf("\t飞行时间:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n",p-yupiao);
}
}
else
{//如果不匹配的话就做
printf("\t对不起没有你要找的目的地:\n\n"); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通过目的地查询
{
char c[15];
int m;
Linklist p=L;
printf("\t请输入要查询的航班号:");
gets(c); gets(c);printf("\n");
do{
p=p-next;
if(p)
{
m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-的作用是一样的
if(m==0)
{
printf("\t航班信息:\n");
printf("\t航班号:%s\n",p-hangbanhao);
printf("\t飞机号:%s\n",p-feijihao);
printf("\t飞行时间:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n\n",p-yupiao);
}
}
else
{//如果不匹配的话就做
printf("\t对不起没有你要找的航班号:\n"); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************订票功能
{
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("请输入终点站名:"); gets(c); printf("\n");
p=L-next;
if(p) {
do{//查找一下,是否有这个航班
if(!p)
{
printf("对不起,没有你要找的航班:\n\n");
goto loop1;
}
m=strcmpi(p-zhongdianzhai,c);
if(m==0)
{
printf("航班信息:\n");
printf("航班号:%s\n",p-hangbanhao);
printf("飞机号:%s\n",p-feijihao);
printf("飞行时间:周%d\n",p-feixingriqi);
printf("余票量:%d\n",p-yupiao);}
else p=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n请输入你要订的票数:"); scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf("请输入你的名字:");
gets(h-name);gets(h-name);
h-dingpiaoshu=piao;
h-next1=h1-next1;
h1-next1=h;
p-yupiao=p-yupiao-piao;
printf("订票成功:\n"); m=2;
}
}
else
{
printf("余票量:%d\n",p-yupiao);
printf("对不起,余票 %d 张不足,不能完成订票\n\n",p-yupiao);
printf(" 是否要重新订票?\n");
printf("需要请输入1 否则请按2 预订请输入3 : ");
scanf("%d",m);
printf("\n");
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf("对不起,该航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear) printf("没有人预订票,是否要预订?\n");
else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n");
printf("预订请输入1 否则输入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("请输入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("请输入订票数"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已经预订了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
以上回答你满意么?
目前常用到的机票预订系统都有哪些?
中航信的eterm sabre worldspan等等。 如果你订中国的国内票 自然是eterm是主流 如果是订其他国家的 那就是别的,比如sabre订美国等等,
国际的话 也一样 中国出发的 eterm貌似也是主流 美国出发 sabre价格比较低。
民航订票系统有哪几种?
航空售票系统只有一种:NFD SZXSHA 30APR ZH
系统功能:
1.来电号码自动识别:根据号码自动识别客户资料,屏幕上弹出客户名、会员号、送票地址、证件号码、最近订票和数量等信息,避免重复询问和记录客户名称和地址,大大减少错误率,提高客户满意度;根据客户以往的订票记录,针对不同的客户进行准确而有效的报价,大大提高提交率。
2.快速的eterm订单数据导入功能:简单的操作即可自动获取eterm民航系统内已出票的PNR信息,例如客户名称,证件号,航程,票面价等,并自动计算客户积分,有限减少订单输入。
3.强大的客户资料管理功能:会员管理和行业客户管理;会员积分管理;行业客户返点自动计算和提醒;客户的电话号码可以任意多个;客户资料可批量导入与导出(Excel格式)。
4.可查询航空公司代码、机场代码。
5.报表统计功能:销售情况统计; 话务统计报表。
6.订票结算功能,用于与送票员结算应收款。
7.强大的打印功能。
8.会员积分管理,积分兑换管理,为客户建立积分累积,能更好地抓住老客户,加大了客户的回头率。
9.行业客户管理,返点率自由设置,返点自动计算。
10.内部实时通讯功能,协同工作。
11.有USB答录盒,录音卡,语音卡3种版本供选择,满足客户不同需求。
12.智能话务分配策略,自动平均分配每个座席的话务量;老客户来电时系统自动将电话转接到上次接听该客户电话的座席上;设备已包含交换机(集团电话)功能,可带2-240路的分机或座席。外线来电号码可自动转发到分机;分机之间互转时来电号码也可转发;系统未启动时,分机自动与外线直连,不影响电话正常使用;(备注:只有语音卡版本具备)。
13.在线监听功能,管理可随时监听任何一个座席的通话,考核服务质量。(只有语音卡版本具备)。
14.电话调查功能,通话快结束时提示客户对服务评价,例如“按1非常满意,按2满意..."。(只有语音卡版本具备)。
15.通话自动录音功能:对通话过程无任何影响,录音文件自动压缩成 mp3格式,20G硬盘约可存储2500小时左右的通话,可随时听取避免遗忘通话内容,也可作为解决纠纷的依据。
16.来电防火墙的功能,自动拒接骚扰电话并保留记录。
17.语音信箱功能:电话无人值守时可让客户自动留言订餐,有新留言电脑会自动拨号通知您,将留言播放给你听取;您也可以在方便时候拨回来听取和管理留言。
18.自动语音导航(IVR),例如“按1进入产品介绍,按2进入人工订票,按3转语音留言系统”等,简单明了的图形化流程设计界面,可快速快速建立自动电话业务咨询。
19.短信群发功能:例如向客户群发生日祝福、节日祝福、订票确认、飞机起飞前提醒等短信通知。
欧美国家使用什么机票预订系统?
GDS(Global Distribution System)是全球行销预订系统的简称,一直被旅游行业所使用,GDS平台提供机票预订、酒店、火车、游轮、汽车及旅游套装行程,GDS是欧美国家旅游行业的主要预订工具,并透过此工具提供服务给旅客。
大约在40年前,Sabre公司直属于美国航空公司,其创建的GDS系统是用来帮助旅行社预订空中旅行的。在Internet问世之前,GDS是全球最早通过电脑进行机票、酒店预订的。随着机票的预订带来住宿需求的增长,同时完成酒店预订从而将旅游行业带入了一个新领域。
Sabre 公司2000年收入26亿美元,在美国德州总部拥有6,000名工作人员。
GDS的四大预订系统提供全球45个国家连线使用,全球50万家旅行社成为该公司的会员以及53,000家旅馆预定(一直处于增加当中)。本公司提供450家航空公 司航线,8家游艇航线,33条铁路运输而且还拥有全球最大的旅游网站Travelocity.com,并与世界著名的yahoo, AOL, Expedia......等网站拥有酒店预定、 机票预定、游轮预定及租车等诸多服务。
Travelocity.com为美国股票上市公司,它还提供B2B、B2C平台,网站会员达2,700万,2000年通过此网站预定达成的交易有25亿美元并为YAHOO、AOL及 NASDAQ等著名网站提供旅游预定,为了服务于欧洲德语系国家的旅游业,还提供其它语言版本。
关于《航班预定系统》的介绍到此就结束了。