【簡介:】本篇文章給大家談談《航空預定票系統(tǒng)》對應的知識點,希望對各位有所幫助。本文目錄一覽:
1、軟件工程航空公司機票預定系統(tǒng)
2、飛機訂票系統(tǒng)設計
3、民航訂票系統(tǒng)有哪幾種
本篇文章給大家談談《航空預定票系統(tǒng)》對應的知識點,希望對各位有所幫助。
本文目錄一覽:
軟件工程航空公司機票預定系統(tǒng)
軟件工程課程設計
一、 課程設計題目:
航空公司機票預訂系統(tǒng)。
二、 課程設計內容簡要分析:
航空公司為方便旅客,需開發(fā)一個機票預定系統(tǒng)。為便于旅客由旅行社代替航空公司負責為旅客定票,旅行社把預定機票的旅客信息,包括姓名、性別、工作單位、身份證號碼、旅行時間、旅行目的地,輸入機票預定系統(tǒng)的客戶端程序,系統(tǒng)經過查詢航空公司內的航班數(shù)據服務器后,為旅客安排航班,印出取票通知。旅客在飛機起飛前一天憑取票通知和帳單交款后取票,系統(tǒng)校對無誤后即印出機票給旅客。
要求系統(tǒng)能有效、快速、安全、可靠和無誤的完成上述操作。并要求客戶機的界面要簡單明了,易于操作,服務器程序利于維護。
三、主要設計過程:
1、問題定義:
航空運輸現(xiàn)在已經逐漸成為我國運輸事業(yè)的重要手段,但是對于航空運輸來說,天氣或人為的種種的因素,會給航空機票的預定和退訂帶來困難,特別是對于機票的預定和退訂的條理性、及時性和準確性,也同樣帶來巨大的困難。
對以上的問題,完全可以建立一套完整的航空公司機預定系統(tǒng),來對信息進行錄入、查詢、訂票、退票等日常管理工作,盡量少的人員介入和數(shù)據冗余,以簡練實用為基礎,實現(xiàn)信息管理計算機化,提高工作效率和信息化水平。
2、可行性分析:
可行性分析對系統(tǒng)的開發(fā)至關重要,可以大幅減少不必要的損失,保證系統(tǒng)開發(fā)的順利進行??梢詮募夹g可行性、經濟可行性、操作可行性三方面進行系統(tǒng)可行性分析:
2.1、技術可行性:
這些年來,計算機技術的發(fā)展異常迅猛,而絕大多數(shù)的企業(yè)和單位,都已經把計算機作為信息和數(shù)據處理、保存和管理的重要工具。
Java是Sun Microsystem公司的James Gosling開發(fā)的編程語言。它以C++為基礎,但是卻是一個全新的軟件開發(fā)語言。Java是一個簡單,面象對象、分布式、解釋性、強壯、安全,與系統(tǒng)無關、可移植、高性能、多線程和動態(tài)的語言,利用Java就可以編制出程序接口好、圖形界面優(yōu)美的管理系統(tǒng)。同時,微軟公司開發(fā)的SOL Server 2000,為數(shù)據庫的開發(fā)和管理帶來了極大的方便。
2.2、經濟可行性:
一方面,對于新系統(tǒng)的開發(fā)和研究,不需要花費更多的費用,而且對于人員的培訓,不同樣不需要花費很多;另一方面,航空公司的原有服務器和計算機系統(tǒng),同樣可以用來使用,不需要更新系統(tǒng)。
2.3、操作可行性:
對于用Java開發(fā)的本系統(tǒng),通過簡單的學習就可以熟練操作,同時,對于票務的管理,也同樣因為本系統(tǒng)的高效性、及時性和方便性而易于管理。
通過以上的分析,航空公司機票預定系統(tǒng)在經濟上、技術上、操作上都是可行的。
3、 需求分析:
需求分析階段的主要目標是準確了解用戶對未來軟件的系統(tǒng)結構的需求,是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復審過程。
在需求分析中,可以采用主要流程和數(shù)據流程圖來描述。
3.1、該系統(tǒng)主要要完成的流程為:
a) 錄入:可以錄入航班情況(數(shù)據可以存儲在一個數(shù)據文件中,數(shù)據結構、具體數(shù)據自定)
b) 查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;
c) 訂票:(訂票情況可以存在一個數(shù)據文件中,結構自己設定)可以訂票,如果該航班已經無票,可以提供相關可選擇航班;
d) 退票: 可退票,退票后修改相關數(shù)據文件;客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。
3.2、數(shù)據流程圖:
數(shù)據流程圖是描繪信息流和數(shù)據從輸入移動到輸出的過程中所經歷的變換。是一種能全面描述信息系統(tǒng)邏輯模型的主要工具,也是系統(tǒng)分析人員與用戶進行交流的有效手段。
旅客的訂票流程圖如下:
旅客取票的流程圖如下:
訂票旅客清單
打印機票
旅客信息查詢
旅客
旅客
售出機票信息
4、概要設計:
4.1、本系統(tǒng)的設計總框圖:
說明:本系統(tǒng)共分為兩大子系統(tǒng):客戶定票系統(tǒng)和后臺管理系統(tǒng)。
客戶服務系統(tǒng)包含三個子系統(tǒng):
1、查詢系統(tǒng)(實現(xiàn)查詢功能)
2、定票系統(tǒng)(實現(xiàn)定票功能)
3、退票系統(tǒng)(實現(xiàn)退票和修改功能)
后臺處理系統(tǒng)包含三個子系統(tǒng):
1、航班信息查詢 (實現(xiàn)航班信息的查詢功能)
2、航班信息修改(實現(xiàn)航班信息的修改、新增、刪除功能)
3、乘客信息查詢(實現(xiàn)乘客信息的查詢)
兩大系統(tǒng)共用兩個數(shù)據文件:航班基本信息文件和客戶定票信息文件。
4.2、客戶定票系統(tǒng)的概要設計:
說明:
1)查詢:用戶可以通過輸入航班號單關鍵字查詢,飛機的起降地點和飛機的起飛時間雙關鍵字查詢兩種方式進行查詢。(注:結構圖里查詢和訂票之間的連線表示客戶可以由查詢界面直接進入訂票界面)
2)訂票:客戶可以直接從主界面直接進入訂票界面,也可以從航班信息查詢界面通過事件觸發(fā)進入訂票界面??蛻粼谟喥苯缑鎯忍顚懣蛻艋拘畔⒑退ê桨嗟年P鍵信息,然后由提交事件進行信息有效性判斷。如果數(shù)據有效,則修改航班基本信息,新增客戶信息。
3)退票和修改:在客戶正確輸入交易單號,乘客姓名,身份證號的前提下,系統(tǒng)確定數(shù)據有效性,客戶擁有退票或修改交易的權限。此時對航班基本信息數(shù)據文件和客戶訂票信息文件進行數(shù)據項的刪除或修改。
4)客戶修改的主要作用:當客戶對于所定機票的航班號,數(shù)量,等級等內容需要修改時,可啟動此功能。
同時,為方便客戶修改過程能準確的了解航班基本信息,在客戶退票界面加入了查詢按鈕??梢酝ㄟ^事件觸發(fā)進入相關界面。
4.3、后臺管理系統(tǒng)的概要設計:
說明:
1) 航班信息修改:管理人員可以通過輸入航班號與日期查詢該航班的基本信息 。可在查詢的結果上進行修改,也可刪除該條信息。所有數(shù)據修改都應在數(shù)據文件中完成,在界面上顯示出來。
2) 航班信息錄入:管理人員可以通過輸入新的航班信息新加一條航班的基本信息。
3) 乘客信息查詢:管理人員可以通過輸入交易單號碼,乘客姓名,乘客身份證號查詢乘客的基本信息。
4.4、機票預訂系統(tǒng)的邏輯模型如下:
航班機票信息
旅行時間
姓名
性別
旅行地點
身份證號碼
工作單位
旅客
1
價格
航空公司
取票通知
帳單
訂票
1 1
時間
旅行社
合適航班機票
N
訂票旅客清單
售出機票信息
可售機票
等級
5、詳細設計:
5.1、主界面程序流程圖設計:
說明:在主界面,可以設置四個按鈕以供選擇:查詢、訂票、退票和退出。
選擇不同的按鈕觸發(fā)不同事件。
5.2、查詢系統(tǒng)程序流程圖設計:
5.3、訂票系統(tǒng)程序流程圖設計:
5.4、 退票系統(tǒng)流程流程圖設計:
6、實現(xiàn)和單元測試:
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、軟件維護:
維護方面主要為對服務器上的數(shù)據庫數(shù)據進行維護。可使用 SQL SERVER 2000的數(shù)據庫維護功能機制。例如,定期為數(shù)據庫進行Backup,維護管理數(shù)據庫死鎖問題和維護數(shù)據庫內數(shù)據的一致性等。
三、 主要參考文獻:
1 張海潘. 軟件工程導論. 北京:清華大學出版社,2005
2 趙松濤. SQL Server 2000系統(tǒng)管理實錄. 北京:電子工業(yè)出版社, 2006
3 宋波. Java Web應用與開發(fā)教程. 北京:清華大學出版社,2006
4 孫衛(wèi)琴. Java面向對象編程. 北京:電子工業(yè)出版社,2006
飛機訂票系統(tǒng)設計
#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;//已訂票數(shù)量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//單鏈隊
char name[15];//預訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個鏈隊結點指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個含有六個信息的結構體
char hangbanhao[15];//航班號-
char feijihao[15];//飛機號
int feixingriqi;//起飛時間
int chenkerenshu;//座位數(shù)
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 歡迎使用航空客運訂票系統(tǒng)\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");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xià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("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\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請輸入你要訂的票數(shù):"); 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("請輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經預訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
以上回答你滿意么?
民航訂票系統(tǒng)有哪幾種?
航空售票系統(tǒng)只有一種:NFD SZXSHA 30APR ZH
系統(tǒng)功能:
1.來電號碼自動識別:根據號碼自動識別客戶資料,屏幕上彈出客戶名、會員號、送票地址、證件號碼、最近訂票和數(shù)量等信息,避免重復詢問和記錄客戶名稱和地址,大大減少錯誤率,提高客戶滿意度;根據客戶以往的訂票記錄,針對不同的客戶進行準確而有效的報價,大大提高提交率。
2.快速的eterm訂單數(shù)據導入功能:簡單的操作即可自動獲取eterm民航系統(tǒng)內已出票的PNR信息,例如客戶名稱,證件號,航程,票面價等,并自動計算客戶積分,有限減少訂單輸入。
3.強大的客戶資料管理功能:會員管理和行業(yè)客戶管理;會員積分管理;行業(yè)客戶返點自動計算和提醒;客戶的電話號碼可以任意多個;客戶資料可批量導入與導出(Excel格式)。
4.可查詢航空公司代碼、機場代碼。
5.報表統(tǒng)計功能:銷售情況統(tǒng)計; 話務統(tǒng)計報表。
6.訂票結算功能,用于與送票員結算應收款。
7.強大的打印功能。
8.會員積分管理,積分兌換管理,為客戶建立積分累積,能更好地抓住老客戶,加大了客戶的回頭率。
9.行業(yè)客戶管理,返點率自由設置,返點自動計算。
10.內部實時通訊功能,協(xié)同工作。
11.有USB答錄盒,錄音卡,語音卡3種版本供選擇,滿足客戶不同需求。
12.智能話務分配策略,自動平均分配每個座席的話務量;老客戶來電時系統(tǒng)自動將電話轉接到上次接聽該客戶電話的座席上;設備已包含交換機(集團電話)功能,可帶2-240路的分機或座席。外線來電號碼可自動轉發(fā)到分機;分機之間互轉時來電號碼也可轉發(fā);系統(tǒng)未啟動時,分機自動與外線直連,不影響電話正常使用;(備注:只有語音卡版本具備)。
13.在線監(jiān)聽功能,管理可隨時監(jiān)聽任何一個座席的通話,考核服務質量。(只有語音卡版本具備)。
14.電話調查功能,通話快結束時提示客戶對服務評價,例如“按1非常滿意,按2滿意..."。(只有語音卡版本具備)。
15.通話自動錄音功能:對通話過程無任何影響,錄音文件自動壓縮成 mp3格式,20G硬盤約可存儲2500小時左右的通話,可隨時聽取避免遺忘通話內容,也可作為解決糾紛的依據。
16.來電防火墻的功能,自動拒接騷擾電話并保留記錄。
17.語音信箱功能:電話無人值守時可讓客戶自動留言訂餐,有新留言電腦會自動撥號通知您,將留言播放給你聽??;您也可以在方便時候撥回來聽取和管理留言。
18.自動語音導航(IVR),例如“按1進入產品介紹,按2進入人工訂票,按3轉語音留言系統(tǒng)”等,簡單明了的圖形化流程設計界面,可快速快速建立自動電話業(yè)務咨詢。
19.短信群發(fā)功能:例如向客戶群發(fā)生日祝福、節(jié)日祝福、訂票確認、飛機起飛前提醒等短信通知。
目前常用到的機票預訂系統(tǒng)都有哪些?
中航信的eterm sabre worldspan等等。 如果你訂中國的國內票 自然是eterm是主流 如果是訂其他國家的 那就是別的,比如sabre訂美國等等,
國際的話 也一樣 中國出發(fā)的 eterm貌似也是主流 美國出發(fā) sabre價格比較低。
關于《航空預定票系統(tǒng)》的介紹到此就結束了。