航空订票系统代码

合集下载

课程设航空订票系统完整源代码及详解

课程设航空订票系统完整源代码及详解

#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<stdlib.h> //包含动态存储与释放函数头文件#include<process.h>//包含access函数的头文件#define N 10000struct plane //定义结构体数组{int num;char start[20];char over[20];char time[10];int count;int ys;}s[N];int i;int m=0;#define PRINT "%-d%10s%10s%10s%12d%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s [i].count,s[i].ys //定义输出格式void input(); //输入航班信息void save(); //保存航班信息void read(); //读取航班信息void order();//升序输出航班信息void search(); //查找航班信息void dingpiao(); //订票信息void tuipiao(); //退票信息void save1();//void main()//主函数{ int j;save1();do{printf(" \n");printf(" ★--- 您好,欢迎进入自制飞机订票系统!---★\n");printf(" \n");printf("********************************************************************* *\n");printf(" \n");printf(" -------- ☆ 1.输入航班信息☆-------- \n\n" " -------- ※ 2.浏览航班信息※-------- \n\n"" -------- ☆ 3.查找航班信息☆-------- \n\n"" -------- ※ 4.订票信息※-------- \n\n"" -------- ☆ 5.退票信息☆-------- \n\n"" -------- *0.退出* -------- \n\n"); printf(" \n");printf("********************************************************************* **\n");printf(" \n");printf(" 请在0-5中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1: input();//调用输入模块break;case 2:order();//调用打印模块break;case 3:search();//调用查找模块break;case 4:dingpiao();//调用订票模块break;case 5:tuipiao();//调用退票模块break;case 0:;break;}}while(j!=0); //判断结束printf("谢谢使用,再见!\n");}//主函数结束void input()//信息录入{ int y;{FILE *fp;//定义文件指针if((fp=fopen("plane.txt","wb"))==NULL)//打开文件并判断是否出错{printf("创建文件失败!\n\n");//打印出错提示getchar();return;}printf("→→→→→→→→→→→→→→→→→\n");printf("请依次输入航班信息\n\n""完成输入信息请键入0以回车键结束\n\n"); //提示信息printf("←←←←←←←←←←←←←←←←←\n");for(i=0;i<N;i++){printf("请输入航班号: \n");scanf("%d",&s[i].num); //读取航班号printf("请输入起始站: \n");scanf("%s",s[i].start);//读取起始站printf("请输入终点站: \n");scanf("%s",s[i].over);//读取终点站printf("请输入时间: \n");scanf("%s",s[i].time);//读取时间printf("请输入机票数(机票数为0结束输入): \n",);scanf("%d",&s[i].count);//读取机票数m++;//统计输入的航班总数printf("信息已经输完是否继续?请输入任意数字键并回车继续,按0键回车结束",m);scanf("%d",&y);if(y==0){save();//将结构体信息存盘break;}}}}void save()//保存模块程序{ FILE *fp;//定义文件指针if((fp=fopen("plane.txt","wb"))==NULL)//打开文件并判断是否出错{printf("创建文件失败!\n\n");//打印出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(struct plane),1,fp)==0)//写入数据判断是否出错printf("向文件输入数据失败!\n\n");fclose(fp);//关闭文件}void save1(){if(access("plane.txt",0))//判断文件是否存在{input();//调用输入模块}elsesave();//调用保存模块}void read()//从文件读取信息模块{FILE *fp;//定义文件指针if((fp=fopen("plane.txt","rb"))==NULL)//打开文件,并判断是否出错{printf("出错,请检查文件是否存在,按z键回车返回主菜单");//错误提示getchar();return;}i=0;while(!feof(fp)){fread(&s[i],sizeof(struct plane),1,fp);//从文件中读取信息i++;m++;}m--;fclose(fp);//关闭文件}void order()//升序排列航班信息模块{int i,j;//冒泡法排序struct plane t;for(i=0;i<m;i++){for(j=0;j<m-1;j++)if(s[j].num>s[j+1].num){t=s[j+1];s[j+1]=s[j];s[j]=t;}}{char w[20];printf("航班号起始站终点站飞行时间机票总数已售票数\n");for(i=0;i<m;i++){printf(PRINT);//打印信息}printf("请按z键回车键结束返回主菜单:\n");scanf("%s",w);}}void search()//查询模块{char name1[20];char name2[20];char hb[10];int n,b;do{printf("→→→→→→→→→→→→→→→→→\n"); printf("请选择查找方式:\n\n");//打印查询方式菜单printf("—— 1.按航班号查找——\n\n""—— 2.按起始站查找——\n\n""—— 3.终点站查找——\n\n""—— 0.返回——\n\n");printf("←←←←←←←←←←←←←←←←←\n"); printf("请在0-3中选择:\n\n");scanf("%d",&n);//读取查找方式if(n==0)break;switch(n){case 1:printf("请输入航班号: \n");scanf("%d",&b);//航班号break;case 2:printf("请输入起始站名称: \n");scanf("%s",name1);//读取终点站break;case 3:printf("请输入终点站名称: \n");scanf("%s",name2);//终点站break;}read();//调用读取函数for(i=0;i<m;i++){ if(strcmp(s[i].start,name1)==0)//按起始站判断输出条件{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站飞行时间机票总数已售票数\n");printf(PRINT);//打印信息break;}if(strcmp(s[i].over,name2)==0)//按终点站判断输出条件{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站飞行时间机票总数已售票数\n");printf(PRINT);//打印信息break;}if(s[i].num==b)//按航班号判断输出条件{ printf("\n查找航班信息成功!\n");printf("航班号起始站终点站飞行时间机票总数已售票数\n");printf(PRINT);//打印信息break;}}b=0;//将航班号赋值为0printf("**查找完毕**\n\n");printf("此航班若是您需要查询航班,请输入yes并回车确定\n""此航班不是您需要查询的航班,请输入no并回车键重新查询:\n"); scanf("%s",hb);}while(strcmp(hb,"no")==0);//判断结束}void dingpiao()//订票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要订的机票数以回车键结束:\n");scanf("%d",&n);//读取所订机票数if(s[i].count<n)//判断机票数是否足够{printf(" 机票数不足!\n");break;}if(n<=0){printf("请输入有效的机票数!\n");//判断机票数是否出错break;}if(s[i].count!=0&&s[i].count>=n)//判断是否出错{s[i].count=s[i].count-n;s[i].ys=n;save();//调用保存函数printf("\n""\n");printf("Θ⊕订票成功⊕Θ!\n\n");}printf("是否继续订票?请输入yes或no以回车键结束:\n");//判断是否继续scanf("%s",a);}while(strcmp(a,"yes")==0);//判断结束getchar();}void tuipiao()//退票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要退的机票数目:\n");scanf("%d",&n);//输入所退票数if(s[i].ys<n)//判断可退机票数是否足够{printf(" 可退机票数不足!\n"); break;}if(n<=0) //判断票数是否有效printf("请输入有效的机票数!\n");s[i].count=s[i].count+n;s[i].ys=s[i].ys-n;save(); //调用保存模块printf(" \n""⊙☉退票成功!☉⊙\n\n"" \n");printf("是否继续退票?请键入yes或no以回车键结束:\n\n");//是否继续scanf("%s",a);}while(strcmp(a,"yes")==0);//判断并跳出循环getchar();}。

飞机订票系统(C语言代码及流程图)

飞机订票系统(C语言代码及流程图)

目录第一部分源程序---------------------------------------------------3第二部分函数流程图--------------------------------------------11 menu()-----------------------------------------------------12 enter()-----------------------------------------------------13 input()-----------------------------------------------------14 browse()---------------------------------------------------15 menu1()---------------------------------------------------16 order()-----------------------------------------------------17 search_time()---------------------------------------------18 search_end()----------------------------------------------19 search()----------------------------------------------------20 book()------------------------------------------------------21 back()------------------------------------------------------22 save()------------------------------------------------------23 load()------------------------------------------------------24 第三部分心得体会------------------------------------------------25第一部分:源程序#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000typedef struct plane{char ID[10]; /*航班代号*/char BePlace[10];/*飞机起飞地点*/char EnPlace[10];/*飞机降落终点*/char data[15];/*飞机起飞时间*/int max;/*飞机最大乘客人数*/int price;/*飞机票价*/int num;/*飞机已售票数*/}PLANE;PLANE ti[N];int n;/*当前的航班数目*/void menu();void menu1();void input(int i){printf("请输入航班代号:\n");scanf("%s",ti[i].ID);printf("请输入起飞地点:\n");scanf("%s",ti[i].BePlace);printf("请输入降落地点:\n");scanf("%s",ti[i].EnPlace);printf("请输入起飞时间:\n");scanf("%s",ti[i].data);printf("请输入航班的最大载客人数:\n");scanf("%d",&ti[i].max);printf("请输入航班的票价:\n");scanf("%d",&ti[i].price);ti[i].num=0;}void enter(){int i;system( "cls" );printf("请输入航班的数目(0-%d)?:",N);scanf("%d",&n); /*要输入的记录个数*/printf("\n请输入数据\n\n");for(i=0;i<n;i++){printf("\n请输入第%d 航班记录.\n",i+1);input(i); /*调用输入函数*/}getchar();menu();}void printf_one(int i) /*显示一个记录的函数*/{printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace ,ti[i].data,ti[i].price,ti[i].max,ti[i].num);}void browse(){int i;system( "cls" );puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){printf_one(i);printf("\n");}getchar();getchar();menu();}void order() /*排序模块(按平均成绩)*/{int i,j;struct plane s;system( "cls" );for(i=0;i<n;i++) /*冒泡法排序*/{for(j=i+1;j<n;j++)if(strcmp(ti[i].data,ti[j].data)>0){s=ti[i];ti[i]=ti[j];ti[j]=s;}}browse();}void search_time(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the time:");scanf("%s",s.data); /*输入出发的时间*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(s.data,ti[i].data)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void serch_end(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the end Place:");scanf("%s",s.EnPlace); /*输入要到达的地方*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(ti[i].EnPlace,s.EnPlace)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void menu1(){int n,w1;do{system( "cls" ); /*清屏*/puts("\t\t\t\t 飞机售票操作!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.按照时间排序");puts("\t\t\t\t2.按照时间查找航班");puts("\t\t\t\t3.按照地点查找航班");puts("\t\t\t\t4.返回主菜单");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 4,Please input again:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:order();break;case 2:search_time();break;case 3:serch_end();break;case 4:menu();break;}}int search() /*查找模块*/{int i,k;struct plane s;k=-1;system( "cls" );printf("\n\n请输入要订票的起飞地点:");scanf("%s",s.BePlace); /*输入要到达的地方*/printf("\n\n请输入要订票的降落地点:");scanf("%s",s.EnPlace);printf("\n\n请输入要订票的起飞时间:");scanf("%s",s.data); /*输入出发的时间*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.dat a,ti[i].data)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/}}if(k==-1){printf("\n\nNO exist!");return -1;}elsereturn k;}void book(){int i;system( "cls" );printf("欢迎进入售票窗口!\n");i=search();if(i!=-1){if(ti[i].num>=ti[i].max){printf("\n该趟航班票已售完!");}else{ti[i].num++;printf("\n订票成功!\n");}}elseprintf("该航班不存在!\n");getchar();getchar(); /*按任意健*/menu();}void back(){int i,k=-1;struct plane s;system( "cls" );printf("欢迎进入退票窗口!\n");printf("\n\n输入航班代号:");scanf("%s",s.ID); /*输入要到达的地方*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.ID,ti[i].ID)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/}}if(k==-1){printf("\n\nNO exist!");}else{ti[i].num--;printf("\n退票成功!\n");}getchar(); /*按任意健*/getchar(); /*按任意健*/menu();}void save(){int w=1;FILE *fp;int i;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","wt"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/{printf("\nCannot open file\n");return ;}for(i=0;i<n;i++)if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1){printf(" error\n");w=0;}if(w==1){printf(" ok!\n");}fclose(fp);getchar();getchar();menu();}void load(){FILE *fp;int i,w;w=1;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","rt"))==NULL){printf("\nCan not open file\n");w=0;return;}n=0;for(i=0;!feof(fp);i++){fread(&ti[i],sizeof(struct plane),1,fp);n++;}n=n-1;fclose(fp);if(w==1)printf("Load !");getchar();getchar();menu();}void menu(){int n,w1;do{system( "cls" ); /*清屏*/ /*清屏*/puts("\t\t\t\t 飞机售票管理系统!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.输入新航班");puts("\t\t\t\t2.浏览");puts("\t\t\t\t3.航班操作");puts("\t\t\t\t4.订票");puts("\t\t\t\t5.退票");puts("\t\t\t\t6.保存");puts("\t\t\t\t7.载入");puts("\t\t\t\t8.退出");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-8): [ ]\b\b");scanf("%d",&n);if(n<1||n>8) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 8,Please input enter to choice again:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:enter();break; /*输入模块*/case 2:browse();break; /*浏览模块*/case 3:menu1();break; /*查找模块*/case 4:book();break; /*订票模块*/case 5:back();break; /*退票模块*/case 6:save();break; /*保存模块*/case 7:load();break; /*加载模块*/case 8:exit(0);}}void main(){menu();}第二部分:函数流程图(2)enter函数流程图第三部分:心得体会(1)开始对c语言只是一种零散的认识,作为一个c语言的初学者对编程没有明确的概念,只是对语句的格式与编程规定有了一个初步了解。

机票预订系统代码

机票预订系统代码

%<
>%
%<
>%
%<
>dt/<位座余剩>dt< >dt/<:点终>dt< >dt/<:点起>dt< >rt< >"FF0000#"=rolocredrob "espalloc :espalloc-redrob"=elyts "1"=gnicapsllec "%001"=htdiw "1"=redrob elbat< >dt< >rt< >rt/< >dt/<>tnof/<息信线航>"5"=ezis tnof<>"retnec"=ngila dt< >rt< >"000000#"=rolocredrob "espalloc :espalloc-redrob"=elyts "1 "=gnicapsllec "267"=htdiw "1"=redrob elbat< >retnec< >ydob< >daeh/< >eltit/<息信线航>eltit< >"2132bg=tesrahc ;lmth/txet"=tnetnoc "epyT-tnetnoC"=viuqe-ptth atem< >"nc-hz"=tnetnoc "egaugnaL-tnetnoC"=viuqe-ptth atem< >daeh< >lmth< >% )"naiXgnaH morF * tceleS"(etucexE.nnoc=sdr tes sd r m id %< >--"psa.nnoc"=eliF edulcni#-- !< >%639=egaPedoC "tpircSBV"=egaugnaL@ %< 码代线航看查 >lmth/< >retnec/< >ydob/< >elbat/< >rt/< >dt/< >p< >% f i dne %< >mrof/< >p/<>"4B"=eman "置重"=eulav "teser"=epyt tupni<>"3B"=eman "交提"=eulav "timbus"=epyt tupni< >rb<>"02"=ezis ;psbn& 密 "saPA"=eman "drowssap"=epyt tupni< � 码

航空订票系统代码

航空订票系统代码

Airline.h#pragma once#include<string>using std::string;#include<iostream>using std::istream;using std::ostream;#include<string>using std::endl;using std::cout;using std::cin;#include"DataStructure.h"#include"Passenger.h"class AirLine;ostream &operator<<(ostream &output ,const AirLine& line);class AirLine{friend void InitAirLine(AirLine *line);friend ostream &operator<<(ostream &output,const AirLine& line); public:AirLine(void);~AirLine(void);string GetEndPoint();int GetSeatNum(int);int GetSeatRemain(int);void SetSeatRemain(int num,int whickWeek);string GetFlightNum(void);void InsertPassenger(Passenger& temp);bool IsFly(int whichWeek) const;void InsertAwait(Passenger& temp);bool DeletePassenger(Passenger&);int IfAwaitBook(int tiNum, int whichWeek);private:string endPoint;string flightNum;string airNum;bool week[8];int seatNum[8];int seatRemain[8];MyList<Passenger> pList;MyQueue<Passenger> pQueue;};Airline.cpp#include"AirLine.h"AirLine::AirLine(void){for(int i=0;i<8;i++)week[i]=false;}AirLine::~AirLine(void){}string AirLine::GetEndPoint(){return endPoint;}ostream &operator<<(ostream &output,const AirLine &line){output<<"终点站: "<<line.endPoint<<"\n\n"<<"航班号: "<<line.flightNum<<"\n\n"<<"飞机号: "<<line.airNum<<"\n\n"<<"剩余票数:\n";for(int i=1;i<8;i++)if(line.IsFly(i))output<<"周"<<i<<" "<<line.seatRemain[i]<<endl;string weekName[8]={" ","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sund ay"};output<<"飞行日:";for(int i=1;i<8;i++)if(line.week[i])output<<weekName[i]<<"\t";cout<<endl;return output;}int AirLine::GetSeatNum(int whichWeek){return seatNum[whichWeek];}int AirLine::GetSeatRemain(int whichWeek){return seatRemain[whichWeek];}void AirLine::SetSeatRemain(int num,int whichWeek) {seatRemain[whichWeek]-=num;}string AirLine::GetFlightNum(void){return flightNum;}void AirLine::InsertPassenger(Passenger& temp) {pList.InsertNode(temp);}bool AirLine::IsFly(int whichWeek) const{return week[whichWeek];}void AirLine::InsertAwait(Passenger& temp){pQueue.EnQueue(temp);}bool AirLine::DeletePassenger(Passenger& temp) {seatRemain[temp.GetWeek()]+=temp.GetTickets();return pList.DeleteNode(temp);}int AirLine::IfAwaitBook(int tiNum, int whichWeek) {if(pQueue.Empty())return 0;Passenger node,tnode;MyQueue<Passenger> tempQueue;while(!pQueue.Empty()){pQueue.DnQueue(node);if(node.GetTickets()<tiNum&&node.GetWeek()==whichWeek) break;tempQueue.EnQueue(node);}while(!tempQueue.Empty()){tempQueue.DnQueue(tnode);pQueue.EnQueue(tnode);}if(node.GetTickets()<tiNum&&node.GetWeek()==whichWeek) return node.GetTickets();elsereturn 0;}Passenger.h#pragma once#include<string>using std::string;enum TicketGrade{AA,BB,CC};class Passenger{public:~Passenger(void);Passenger(const string &passengerName=" ",int tick=0,int g=1,int w=1);bool operator==(Passenger & d);int GetTickets();int GetWeek();private:string name;int tickets;TicketGrade grade;int flightWeek;};Passenger.cpp#include"Passenger.h"Passenger::~Passenger(void){}Passenger::Passenger(const string &passengerName,int tick,int g,int w) {name=passengerName;tickets=tick;switch(g){case 1:grade=AA;break;case 2:grade=BB;break;case 3:grade=CC;break;default:break;}flightWeek=w;}bool Passenger::operator==(Passenger & d){if(d.tickets!=tickets)return false;if(!=name)return false;if(d.flightWeek!=flightWeek)return false;if(d.grade!=grade)return false;return true;//TODO: insert return statement here }int Passenger::GetTickets(){return tickets;}int Passenger::GetWeek(){return flightWeek;}DataStructure.h#include<cstdlib>//LQNode classtemplate<typename T>class MyList;template<typename T>class MyQueue;template<typename T>class LQNode{friend class MyList<T>;friend class MyQueue<T>;public:LQNode();LQNode(T);~LQNode();private:T data;LQNode<T> *next;};template<typename T> LQNode<T>::LQNode(){//data=T(0);next=NULL;}template<typename T> LQNode<T>::LQNode(T node) {data=node;next=NULL;}template<typename T> LQNode<T>::~LQNode(){}//MyList classtemplate<typename LT> class MyList{public:MyList();~MyList();void InsertNode(LT &);bool DeleteNode(LT &);private:LQNode<LT> *head;};template<typename LT> MyList<LT>::MyList(){head=new LQNode<LT>;head->next=NULL;}template<typename LT>MyList<LT>::~MyList(){}template<typename LT>void MyList<LT>::InsertNode(LT &temp){LQNode<LT> *node=new LQNode<LT>(temp);node->next=head->next;head->next=node;}template<typename LT>bool MyList<LT>::DeleteNode(LT &temp){LQNode<LT> *p,*q;p=head->next;q=head;while(p!=NULL){if(p->data==temp){q->next=p->next;free(p);return true;}q=p;p=p->next;}return false;}//MyQueue classtemplate<typename QT>class MyQueuepublic:MyQueue();~MyQueue();void EnQueue(QT &);void DnQueue(QT &);bool Empty();private:LQNode<QT> *front;LQNode<QT> *rear;};template<typename QT>MyQueue<QT>::MyQueue(){front=rear=new LQNode<QT>;}template<typename QT>MyQueue<QT>::~MyQueue(){}template<typename QT>void MyQueue<QT>::EnQueue(QT &temp){LQNode<QT> *node=new LQNode<QT>(temp);rear->next=node;node->next=NULL;rear=rear->next;}template<typename QT>void MyQueue<QT>::DnQueue(QT &temp){if(Empty())cout<<"对空"<<endl;elsetemp=front->next->data;return;}template<typename QT>bool MyQueue<QT>::Empty()return front->next==NULL;}Main.cpp#include"AirLine.h"#include<iostream>using std::cout;using std::cin;using std::endl;#include<iomanip>using std::setw;using std::setfill;void InitAirLine(AirLine *line);void InquireAirLine(AirLine* line);void BookTicket(AirLine *line);void ReturnTicket(AirLine *line);void IfAwait(AirLine &line,int tiNum,int whichWeek);void TransactBookTicket(AirLine &line,int tiNum,int whichWeek);void IfBookTicket(AirLine *line,string fiNum,int tiNum,int whichWeek); bool IsQuit();const int size=7;const int maxSeatNum=120;int main(){AirLine line[size];int select;InitAirLine(line);bool flag=false;while(!flag){cout<<"-------------------------------------------------------------------"<<endl;cout<<" 航空客运订票系统"<<endl;cout<<" 1 查询航线"<<endl<<" 2 订票业务"<<endl<<" 3 退票业务"<<endl;cout<<"-------------------------------------------------------------------"<<endl;cin>>select;while(cin.fail()||select<1||select>3){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>select;}switch(select){case 1:InquireAirLine(line);break;case 2:BookTicket(line);break;case 3:ReturnTicket(line);break;default:cout<<"error";break;}system("pause");flag=IsQuit();system("cls");}return 0;}bool IsQuit(){char change;cout<<"是否退出该系统Y/y是N/n否"<<endl;while(true){cin>>change;switch(change){case'Y':case'y':return true;break;case'n':case'N':return false;break;default:cout<<"输入错误,重新输入"<<endl;break;}}return true;}void InquireAirLine(AirLine *line){string inquirePoint;cout<<"输入终点名:"<<endl;cin>>inquirePoint;for(int i=0;i<size;i++)if(line[i].GetEndPoint()==inquirePoint){cout<<line[i];return;}cout<<"对不起,没有到达该地的航班"<<endl; }void BookTicket(AirLine *line){int tiNum;int whichWeek;string fiNum;cout<<"输入航班号:"<<endl;cin>>fiNum;for(int i=0;i<size;i++)if(line[i].GetFlightNum()==fiNum){cout<<line[i];cout<<"输入订票额:"<<endl;cin>>tiNum;while(cin.fail()){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>tiNum;}if(tiNum>maxSeatNum){cout<<"对不起,本公司暂时没有这么大的客机,请分开订票"<<endl;return;}cout<<"输入订票时间:"<<endl;cout<<"1星期一、星期二..."<<endl;cin>>whichWeek;while(cin.fail()||whichWeek>8||whichWeek<1||!line[i].IsFly(whichW eek)){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>whichWeek;}if(tiNum>line[i].GetSeatRemain(whichWeek))IfAwait(line[i],tiNum,whichWeek);elseTransactBookTicket(line[i],tiNum,whichWeek);return;}cout<<"对不起,没有到达该地的航班"<<endl;}void ReturnTicket(AirLine *line){cout<<"为您办理退票业务:"<<endl;string fiNum;int whichWeek;int tiNum;int i;string name;cout<<"输入名字"<<endl;cin>>name;cout<<"输入航班号:"<<endl;cin>>fiNum;for(i=0;i<size;i++)if(line[i].GetFlightNum()==fiNum)break;if(i==size){cout<<"无此航班,请核对后输入"<<endl;return;}cout<<"输入订票时间:"<<endl;cout<<"1星期一、星期二..."<<endl;cin>>whichWeek;while(cin.fail()||whichWeek>8||whichWeek<1||!line[i].IsFly(whichW eek)){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>whichWeek;}cout<<"输入订票额:"<<endl;cin>>tiNum;while(cin.fail()){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>tiNum;}Passenger temp(name,tiNum,1,whichWeek);if(line[i].DeletePassenger(temp)==true){cout<<"办理退票完毕,谢谢合作"<<endl;IfBookTicket(line,fiNum,tiNum,whichWeek);}elsecout<<"您没有订票或输入信息错误,请核实后办理"<<endl; }void IfAwait(AirLine &line,int tiNum,int whichWeek){cout<<"空座不够,是否排队候补?Y/y是N/n否"<<endl;char change;bool flags=true;while(flags){cin>>change;switch(change){case'Y':case'y':{flags=false;Passenger temp(" ",tiNum,1,whichWeek);line.InsertAwait(temp);cout<<"已为您登记排队候补,请耐心等候"<<endl;}break;case'n':case'N':flags=false;cout<<"谢谢合作,再见。

机票操作系统代码

机票操作系统代码

操作系统代码1,查询航班:A VH/紧跟输入城市段、日期(数字)、月份(英文)后回车查看。

如果查询指定航空公司月份后加“/”再加航空公司代号。

2,订座:SD后紧跟序号计划预定仓位跟人数后回车。

(如果显示JET代表待定航班)3.人名:NM1后紧跟客人姓名,如果多个个客人,人名雨人名之间用数字1隔开(国际航班必须输入英文,中国人姓在前后加/,外国人名在前)4,联系方式:CT后输入联系电话5,预留时间:TKTL/后跟几点/日期月份BJS…(代码)6,封口:@IK(封口号码为5位数字)7,提记录:RT后紧跟封口号码8,取消订票:XEPNR\9,价格查询:FD:城市段(只使用于国内查询) PA T:A 查国内税和价格10:查询那些航空公司飞:SKPEK紧跟目的地11,查询指定日期直达航班:A V:城市段/日期月份12,查询经停点:IT:航班号/日期月份13,查询航班经停的城市起降时间和机型:FF:航班号/日期月份(没有经停的不显示)14,查税(价格):QTE:/承运人(航空公司)(必须输入完行程封口或达到上面第二步),如果出来很多仓位,在输入XSFSQ后跟代表仓位代码的序号。

(共享的航班不能查税)15, 查询学生机票的税和价格QTE:SD/航空公司16,查询移民机票价:QTE:EM/航空公司17,查询青年机票价格:QTE:ZZ/航空公司18,OPE票的预定指令:SN:承运人---舱位---出发地与目的地19,查询SPA价格的指令:NFAD:城市段/CA (只能用于国航联运协议的航空公司。

国际段的查询)20,查汇率:XS(空格跟FSC后跟币种代码/人民币(可以互换)21,查代码代表城市:CD:跟城市代码22,用姓名查找记录:RT/旅客姓的拼音/航班号/日月年23,SK:城市段/日期查询在特定周期内所有航班的信息,所显示的航班信息时间为指定时间的前后三天一周的时间24,查看是否出票:提记录后,输入PG1回车,有票号证明已经出票完毕。

机票操作系统代码

机票操作系统代码

操作系统代码1,查询航班:AVH/紧跟输入城市段、日期(数字)、月份(英文)后回车查看。

如果查询指定航空公司月份后加“/”再加航空公司代号。

2,订座:SD后紧跟序号计划预定仓位跟人数后回车。

(如果显示JET代表待定航班)3.人名:NM1后紧跟客人姓名,如果多个个客人,人名雨人名之间用数字1隔开(国际航班必须输入英文,中国人姓在前后加/,外国人名在前)4,联系方式:CT后输入联系电话5,预留时间:TKTL/后跟几点/日期月份BJS…(代码)6,封口:@IK(封口号码为5位数字)7,提记录:RT后紧跟封口号码8,取消订票:XEPNR\9,价格查询:FD:xxxx(只使用于国内查询) PAT:Axx国内税和价格10:查询那些航空公司飞:SKPEK紧跟目的地11,查询指定日期直达航班:AV:xxxx/日期月份12,查询经停点:IT:航班号/日期月份13,查询航班经停的城市起降时间和机型:FF:航班号/日期月份(没有经停的不显示)14,查税(价格):QTE:/承运人(航空公司)(必须输入完行程封口或达到上面第二步),如果出来很多仓位,在输入XSFSQ后跟代表仓位代码的序号。

(共享的航班不能查税)15,查询学生机票的税和价格QTE:SD/航空公司16,查询移民机票价:QTE:EM/航空公司17,查询青年机票价格:QTE:ZZ/航空公司18,OPE票的预定指令:SN:承运人---舱位---出发地与目的地19,查询SPA价格的指令:NFAD:城市段/CA(只能用于国航联运协议的航空公司。

国际段的查询)20,查汇率:XS(空格跟FSC后跟币种代码/人民币(可以互换)21,查代码代表xx:CD:跟xx代码22,用姓名查找记录:RT/旅客姓的拼音/航班号/日月年23,SK:城市段/日期查询在特定周期内所有航班的信息,所显示的航班信息时间为指定时间的前后三天一周的时间24,查看是否出票:提记录后,输入PG1回车,有票号证明已经出票完毕。

航空售票ETERM操作指令

航空售票ETERM操作指令

操作手册1.航班信息查询AV:城市对/日期/起飞时间/航空公司代码/经停标志/座位等级“+”表示明天“N”表示经停“D”表示直达2.航班经停点及起降时间的显示 FF:航班号/日期例:FF:1321/19MAY3.票价查询 FD:城市对/航空公司代码例:FD:PEKSHA/CA从已有的AV中查询票价 FD:序号4.订票:(注:请一次性封口)(成人)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算1管理(名字中间用数字1隔开)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)SSR FOID MU HK/NI545123152(身份证)(回车)CT4524545(联系电话)(回车)@或\ F12(输入)(儿童)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算CHD1管理CHD(名字中间用数字1隔开,在名字后面加上CHD标志)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)CT4524545(联系电话)(回车)@或\ F12(输入)(婴儿)与大人在同一个记录,但是婴儿不占座位(回车)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算1管理(名字中间用数字1隔开)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)XN:IN/名字INF(出生月和年)/P1(回车)SSR FOID MU HK/NI545123152(身份证)(回车)CT4524545(联系电话)(回车)@或\ F12(输入)5.订票:(成人)SD1(航段)Y(舱位)/1(人数)(F12)NM1计算1管理(名字中间用数字1隔开)(F12)TKTL(预定时间)/1200/19MAY/SIA000(F12).SSR FOID MU HK/NI545123152(身份证)(F12)CT4524545(联系电话)(F12)@或\ F12(输入)(儿童)SD1(航段)Y(舱位)/1(人数)(F12)NM1计算CHD1管理CHD(名字中间用数字1隔开,在名字后面加上CHD标志)(F12)TKTL(预定时间)/1200/19MAY/SIA000(F12)CT4524545(联系电话)(F12)@或\ F12(输入)(婴儿)与大人在同一个记录,但是婴儿不占座位(F12)SD1(航段)Y(舱位)/1(人数)(F12)NM1计算1管理(名字中间用数字1隔开)(F12)TKTL(预定时间)/1200/19MAY/SIA000(F12)XN:IN/名字INF(出生月和年)/P1(F12)SSR FOID MU HK/NI545123152(身份证)(F12)CT4524545(联系电话)(F12)@或\ F12(输入)6.做假RRRTSKIKS(记录编号)(输入)XE(出票时限项)(回车)TKT/999-0000000000(假票号)(回车)2RR(把航程项做RR) 输入7.PNR取消整个记录:XEPNR@SKSKI(加记录编号)取消记录中的一个人:XEP1(1代表所取消的第几个人)PNR的历史记录.,先提记录,RTU1要往下翻页:RTC|记录|PN如果是记录往下翻只能翻两次:第一次:RT记录|PN 第二次:RT记录|PN|PN8.团队定位(注请一次性封口)例: AV查询航班(输入)SD1(航段)Y(舱位)/25(人数)(回车)GN:25kxun (回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)CT4524545(联系电话)(回车)@或\ F12(输入)生成记录后再输入名单(注在输入名单的时候最多只能输入一行,然后穿入,不能回车接着输入)团队取消:XEG 取消一人 XEGP1(1是指第几个人)RTN团队记录里已入的名单9.团队订票(独占30秒订票,必须在规定时间内完成订票)10.用短信方法通知客人定票信息首先提出记录编号(输入)RMK MP 电话号码(输入)SMS I/记录编号(输入)11航班时刻显示 SK:选择项/城市对/日期/时间/航空公司代码/舱位例:SK PEKCAN/19MAY 指定日期前后三天内航班信息12 0查询三字代码 CNTD:T/BEIJING查询城市名称 CD:PEK13特殊服务信息(OSI/SSR)国航知音卡 SSR FQTV CA HK/NN………/P1特殊餐食的输入法例:SSR SPML CA NN1 LOW SALT/P1例:SSR VGML CA NN1 P1/S2或:SSR SPML CA NN1 PEKSHA CA1501 Y 19MAY LOW SALT/P1 餐食代码:SPML 特殊餐食申请 VGML 素食(不含奶,蛋制食品)AVML 亚洲素食 VLML 素食(专门牛奶,蛋)LSML 低盐餐 MOML 穆斯林餐ORML 东方餐 BBML 婴儿,儿童餐CHML 儿童餐申请定位SSR OTHS MU(航空公司代码)KK,V(舱位)THANKS计算功能CO加数天气预报WF加所查城市例:WFSIA14儿童,婴儿及豁免的外交官免税输入方法FM:FCNY…../SCNY…../C…../TEXEMPTCN15.国际票定座(注请一次性封口)SD1(航段)Y(舱位)/1(人数)(回车)NM1计算1管理(名字中间用数字1隔开)(回车)TKTL(预定时间)/1200/19MAY/SIA000(回车)SSR FOID MU HK/NI545123152(身份证)(回车)CT4524545(联系电话)(回车)@或\ F12(输入)16国际运价RT记录QTE: 输入注:1.QTE指令最多可以计算16个航段的运价,当航程段超过8段时,QTE后,系统不能立即算出其结果,而是给出一个编码,然后再使用XS FSI/编码,找到其结果2.如果使用XS FSI/编码依然没有结果时,2分钟之后再使用XS FSI/编码提取结果QTE指令的实质是XS FSP或XS FSI指令国际运价NFI显示运价附加规则:XS FSG2 2是QTE中票价的序号17.注共享出来的帐号,可以出电子客票!指令:1.RT记录编号 PAT:A F12输入2.TXE(预出票时限前的序号) F12输入3.ETDZ:2(打票机号) F12输入4.航段RR F12输入先出票在做“RR”18.PID共享出来的帐号可以支持纵横中国的票价及其它指令指令:PAT:#YZZS PAT:#3UZZ 儿童价格输入:PAT:*CH TKTV:打票机号独占30秒指令:30LOCK 永久独占指令:MXLOCK 释放独占:UNLOCK F12输入销售日子查询指令:tsl:c/打票机号翻页:PN做假RR后的出票指令rt记录编号|票号序号at/城市对/./bjs001(代号)|etdz: 打票机号PID服务器共享用户,支持虚拟支付账户,通过eterm在线支付出票虚拟帐户余额查询 fare F12 输入虚拟帐户在线出票指令:1.RT记录编号 PAT:A F12输入2.*记录编号支付指令(如果PID共享里有多个航信配置时,*记录编号&指定office号) F12输入19.大记录转换小记录指令:rrt:v/记录/航班号/日期|rrt:ok20.如果PAT:A穿出来没有票价或是需要修改的票价的,PAT:A穿入不能出来新的FN FC FP,得手工输入FN FC FP1:直接pn:fd tsl nfd nfi tktv qt2:限制xe: 在共享帐号的指令限制里选择LXE,该帐号就只能xe本office号的记录。

民航订票的ETERM系统的代码和指令

民航订票的ETERM系统的代码和指令

民航订票的ETERM系统的代码和指令国内常用城市机场三字代码代码城市名称代码城市名称代码城市名称代码城市名称AAT 阿勒泰HAK 海口LUM 德宏芒市WEH 威海AKA 安康HEI 呼和浩特LUZ 庐山WNZ 温州AKU 阿克苏HEK 黑河LXA 拉萨WUH 武汉ALA 阿拉木图HFE 合肥LXI 林西WUS 武夷山AOG 鞍山HGH 杭州LYA 洛阳WXN 万州AQG 安庆HHA 长沙/黄花LYG 连云港XEN 兴城AYN 安阳HLD 海拉尔LYI 临沂XFN 襄樊BAV 包头HLH 乌兰浩特LZD 兰州东XIC 西昌BFU 蚌埠HMI 哈密LZH 柳州XIL 锡林浩特BHY 北海HNY 衡阳LZO 泸州XIN 兴宁BJS 北京HRB 哈尔滨MDG 牡丹江XIY 西安咸阳机场BSD 保山HSN 舟山MIG 绵阳XMN 厦门CAN 广州HTN 和田MXZ 梅县XNN 西宁CCC 潮州HUZ 徽州NAO 南充XUZ 徐州CGD 常德HYN 黄岩NDG 齐齐哈尔YBP 宜宾CGO 郑州HZG 汉中NGB 宁波YCU 运城CGQ 长春INC 银川NKG 南京YIH 宜昌CHG 朝阳IQN 庆阳NNG 南宁YIN 伊宁CHW 酒泉JDZ 景德镇NNY 南阳YIW 义乌CIF 赤峰JGN 嘉峪关NTG 南通YNJ 延吉CIH 长治JHG 西双版纳PEK 北京首都机场YNT 烟台CKG 重庆JIL 吉林PVG 上海浦东ZAT 昭通CNI 长海JIU 九江SHA 上海虹桥ZHA 湛江CSX 长沙JJN 泉州晋江SHE 沈阳ZHD 中甸CTU 成都JMU 佳木斯SHP 秦皇岛ZUH 珠海CZX 常州JNG 济宁SHS 沙市ZYI 遵义DAT 大同JNZ 锦州SIA 西安DAX 达县JUZ 衢州SWA 汕头DDG 丹东KCA 库车SYM 思茅DIG 迪庆香格里拉KHG 喀什SYX 三亚DLC 大连KHN 南昌SZX 深圳DLU 大理KMG 昆明TAO 青岛DNH 敦煌KNC 吉安TEN 铜仁DYG 张家界KOW 赣州TGO 通辽ENH 恩施KRL 库尔勒TNA 济南ENY 延安KRY 克拉玛依TSN 天津FOC 福州KWE 贵阳TXN 黄山FUG 阜阳KWL 桂林TYN 太原FUO 佛山LHW 兰州URC 乌鲁木齐GHN 广汉LIA 梁平UYN 榆林GOQ 格尔木LJG 丽江WEF 潍坊部分航空公司代码表代码中文名称代码中文名称AA 美国航空公司LY 以色列空公司AC 加拿大航空公司MA 匈牙利航空公司AF 法国航空公司MF 厦门航空公司AI 印度航空公司MH 马来西亚航空公司AY 芬兰航空公司MU 中国东方航空公司AZ 意大利航空公司NH 全日空航空公司BA 英国航空公司NW 美国西北航空公司BI 汶莱航空公司NZ 新西兰航空公司BR 长荣航空公司OA 希腊奥林匹克航空公司CA 中国国际航空公司OM 蒙古航空公司CI 中华航空公司OS 毛利航空公司CO 大陆航空公司OZ 韩亚航空公司CX 国泰航空公司PK 巴基斯坦航空公司CZ 中国南方航空公司PR 菲律宾航空公司DL 三角航空公司QF 澳洲航空公司FK 阿联酋航空公司QR 卡塔尔航空公司MS 埃及航空公司RG 巴西航空公司FM 上海航空公司SA 南非航空公司ET 埃塞阿比亚航空公司SC 山东航空公司FI 冰岛航空公司SK 北欧航空公司GA 嘉鲁达印度尼西亚航空公司SQ 新加坡航空公司GE 台湾复兴航空公司TG 泰国航空公司GF 海湾航空公司TK 土耳其航空公司HU 海南航空公司UA 美国联合航空公司IB 西班雅航空公司UM 津巴布韦航空公司JL 日本航空公司UL 斯里兰卡航空公司JS 朝鲜航空公司UX 西班牙欧洲航空公司KA 港龙航空公司VN 越南航空公司KE 大韩航空公司VS 维珍航空公司KL 荷兰航空公司ZH 深圳航空公司KU 科威特航空公司3U 四川航空公司LH 汉莎航空公司6U 乌克兰航空公司LO 波兰航空公司月份和星期缩写JAN 一月FEB 二月MAR 三月APR 四月MAY 五月JUN 六月JUL 七月AUG 八月SEP 九月OCT 十月NOV 十一月DEC 十二月SUN 星期日MON 星期一TUE 星期二WED 星期三THU 星期四FRI 星期五SAT 星期六日常工作流程登录查询信息查询及辅助功能建立PNR特殊服务SSRPNR提取和修改公布运价的查询BSP打票国际运价查询电子客票常用指令Q信箱处理手工输入API信息--------------------------------------------------------------------------------登录1.进入系统>$$OPEN TIPC32.输入工作号>SI:工作号/密码3.查看PID状态>DA4.退出系统>SO5.修改密码>AN:旧密码/新密码6.随时查看SIGN-IN信息>SIIF:7.指令使用帮助>HELP: 指令8.屏幕向上一页>PB9.屏幕向下一页>PN10.清屏指令>CP11.重复显示当前页>PG12.一屏显示所有内容>PN1返回目录--------------------------------------------------------------------------------查询1. 航班座位可利用显示>AV: H/城市对/日期/时间/ 航空公司代码(或GDS代码)2. 最早有座位航班查询>FV: 城市对/日期/起飞时间/座位数/航空公司代码(或GDS代码)/经停标志/ 舱位3. 航班飞行周期的查询>SK: 城市对/日期/时间/航空公司代码/ 舱位4. 航班经停点和起降时间的显示指令>FF: 航班号/日期5. 指定日期的航段上的航班详细信息显示>DSG:C/航班号/座位等级/日期/航段或RT之后,>DSG: 航班序号返回目录--------------------------------------------------------------------------------信息查询及辅助功能一、24小时北京天气预报WF >WF 城市三字代码二、机场转机信息查询DSM >DSM: PEK三、机场、国家、航空公司代码查询CNTD/CD1)查询城市三字代码>CNTD T/BEIJING2)查询城市名称>CD PEK3)查询一个国家所有城市>CNTD A/CN4)查询国家全称>CNTD C/CN5)查询国家两字码>CNTD N/CHINA6)查询航空公司信息>CNTD D/CA7)查询航空公司两字代码>CNTD M/AIR CHINA四、计算CO1)四则运算>CO 100+22)计算北京和巴黎的时差>CO T/PEKCDG3)显示巴黎10月1日0点的GMT标准时间>CO T/CDG/1OCT/00004)英里换算成公里>CO K/英里数5)公里换算成英里>CO M/公里数五、日期查询DATE1)显示当前日期和星期几>DATE2)显示10天,90天后的日期>DATE 10/903)显示2004年1月1日的前2天,及后20天的日期>DATE 1JAN04/-2/20六、时间查询TIME1)显示当前时间>TIME2)北京时间2004年1月1日零点的巴黎时间>TIME 1JAN04/0000/CDG3)纽约时间2004年1月1日零点的北京、巴黎时间>TIMENYC/1JAN/0000/PEK/CDG七、长度、重量、温度换算CV1)100公里换算成英里>CV 100KM2)100英里换算成公里>CV 100MI3)摄氏35度转化为华氏度>CV 35C4)华氏95度转化为摄氏度>CV 95F5)10英镑转化为公斤>CV 10LB6)10公斤转化为英镑-磅>CV 10KG八、查询中文信息YI1)显示所有静态信息的目录>YI2)显示不含副标题的公告>YI标题3)显示有副标题的公告>YI I/某标题九、旅游信息查询TIM1)查询签证信息>TIM TIFV2)查询健康检疫信息>TIM TIFH3)同时查询签证、健康检疫信息>TIM TIFA4)查询与出入境有关的信息>TIM TIDFT/城市/章节/小标题/页码5)显示TIM帮助功能>TIM TIHELP6)显示TIM中有关规则>TIM TIRULES7)显示综合旅游信息新闻>TIM TINEWS8)显示下一页>TIPN9)显示上一页>TIPB返回目录--------------------------------------------------------------------------------建立PNR一、航段预订1)直接建立航段组SS>SS CA1537/Y/1OCT/PEKNKGNN1/1225 14002)间接建立航段组SD>AV PEKCAN>SD 1Y13)OPEN航段的建立SN>SN YY/F/PEKCAN>SN CZ/F/PEKCAN4)ARNK段的建立SA >SA TSNPEK5) 旅客行程提示>SA MU5119Y1OCT SHAPEK HK6)调整航段顺序CS>CS 2/1二、姓名输入NM1)英文姓名的输入>NM 1STEPHEN/HAETTI 1ZHU/QI2)同姓旅客英文名的输入>NM 2ZHANG/JIAN/QIANG3)中文姓名的输入>NM 1杨振振1马永4)无人陪伴儿童姓名输入>NM 1马晓涌(UM4)5)带一个婴儿的成人输入姓名>NM 1马永>XN IN/马晓涌INF(MAR01)P16)建立一个团名为CHANGYOU的12人的团体PNR>GN 12CHANGYOU三、联系方式CT >CT PEK/1234567四、证件信息输入SSR (注意:CA表示相应的航空公司代码)1) 国内旅客>SSR FOID CA HK/证件代码及号码/Pn 证件种类代码:NI-身份证;PP-护照;ID-其他证件2) 国际旅客>SSR PSPT CA HK/护照号码/国籍/旅客生日/旅客姓/旅客名/性别及婴儿标识/持有人标识/Pn注:下划线部分为必输项五、出票时限TKTL >TK:TL/1200/01OCT/BJS123六、手工票号输入TKT>TKT/783-2203752149/P1七、票价信息的简易输入FC/FN 八、选择制定航段进行票价计算或打票SEL>SEL: 指定航段序号九、国内BSP客票自动生成FN/FC/FP项:>PAT:十、国际客票经过QTE/XS FSQ, 自动生成FN/FC项:>DFSQ:十一、付款方式组FP>FP:CASH/ CHECK,CNY十二、签注信息组EI 十三、旅游代码组TC (一般按照航空公司要求输入) 十四、打票预览TKTV>TKTV: 打票机序号十五、票号自动传输STN>STN: 票号/Pn/指定航段序号十六、客票打印DZ打印PNR中所有人的客票>DZ:1仅打印第一个成人所携带的婴儿客票>DZ:1/P1, INF仅打印第一个成人的客票>DZ:1/P1, ADL打印PNR中所有婴儿客票>DZ:1,INF打印PNR中所有成人客票>DZ:1, ADL返回目录--------------------------------------------------------------------------------特殊服务SSR一、查看航班座位图ADM>ADM:航段序号/航段二、进行机上座位预订ASR>ASR: 航段序号/座位号三、里程输入>SSR FQTV承运航空公司代码HK1/发卡航空公司代码卡号/Pn四、其他特殊服务的申请>SSR 特殊服务代码航空公司NN数量/Pn/Sn常用特殊服务代码:机位申请NSSA:无烟靠走廊的座位NSSW:无烟靠窗的座位NSST:无烟座位SMSA:吸烟靠走廊的座位SMSW:吸烟靠窗的座位SMST:吸烟座位特殊餐食AVML:亚洲素食BLML:流食CHML:儿童餐DBML:糖尿病患者餐FPML:水果拼盘SFML:海洋餐HFML:高纤维餐HNML:印度餐BBML:婴儿餐KSML:犹太教餐LCML:低卡路里餐LFML:低胆固醇、低脂肪餐LSML:无盐餐MOML:穆斯林餐VLML:素食(含糖、鸡蛋) VGML:素食(无糖)其他PETC:宠物(需要详细说明) BSCT:摇篮车/吊床/婴儿摇篮BIKE:自行车(须说明数量) SLPR:机舱内床铺(不包括担架) BLND:盲人旅客(如果有导盲犬或其他动物陪伴,须详细说明) BULK:超大行李(须说明数量、重量和尺寸)CBBG:放置机舱行李(购买了额外座位,须说明数量,重量及尺寸)DEAF:聋哑旅客(如果有助听狗或其他动物陪伴,须详细说明) DEPA:被驱逐出境(有人陪伴) DEPU:被驱逐处境(无人陪伴) XBAG:额外行李(须说明数量、重量和尺寸)FRAG:易碎行李(须说明数量、重量和尺寸)MEDA:健康状况(需要旅客医疗状况证明)SPEQ:体育设施(须指明设备类型、数量、重量和尺寸)STCR:担架旅客UMNR:无人陪伴儿童返回目录--------------------------------------------------------------------------------PNR提取和修改一、PNR提取1)记录编号提取PNR >RT 记录编号2)根据旅客名单提取PNR >RT旅客姓名/航班号/日期3)提取完整PNR >RT C/记录编号4)提取PNR的历史部分>RT U5)返回到PNR的现行部分>RT A6)按照航班的旅客名单提取>ML C/CA1301/10DEC >RT 序号7) 提取本部门在该航班的所有订座记录(RR、HK、HN、HL、HX)>ML C/CA1321/7OCT8)提取所有团体PNR记录>ML G/CA1321/7OCT9)提取所有订妥座位的记录>ML B/CA1321/7OCT10)提取所有未证实座位的记录>ML U/CA1321/7OCT11)提取所有非团体PNR记录>ML NG/CA1321/7OCT二、国内航空公司记录的提取和转换>RRT: V/航空公司记录编号/航班号/日期>@OK三、记录分离SP >SP 1/3四、记录修改1)旅客姓名修改>1/1杨振2)删除姓名组以外的内容>XE 序号3)取消PNR>XEPNR@五、记录封口@1)正常封口>@2)以下几种情况可使用@K封口>@Ka)将KK,KL或TK变为HKb)将UU,US或TL变为HLc)将TN变为HNd)将带有NI,UC,UN的项移到PNR的历史部分3)以下情况可使用@I封口>@Ia)航段不连续b)有航班变更标识c)两个连接航段的停留时间小于最小连接时间返回目录--------------------------------------------------------------------------------公布运价的查询一、国内公布运价查询:1).查询城市对间当前可用票价FD>FD:城市对/日期/航空公司代码/查询选项(S排序由低到高;L 最低价)2).运价限制条件信息查询PFN>PFN: 规则号/ 承运人或在FD的基础上>PFN: 运价序号3).查询运价的航线限制PFR在FD基础上有航线限制标识的情况下>PFR: 运价序号二、航空公司净价查询:(需要航空公司授权)1.查询运价总则>NFN:GR00/CA2.按城市对查询票价信息:>NFD:PEKLON/CA3.指定旅行日期查询:>NFD:PEKLON/21MAY04/CA4.查询单程票价>NFD:PEKLON/CA*OW5.查询M舱票价>NFD:PEKLON/CA#M6.查询运价基础为HIT的票价>NFD:PEKLON/CA@HIT7.查询学生票价>NFD:PEKLON/CA*SD8.查询团队票价>NFD:PEKLON/CA*GC9.显示第3条票价的规则限制>NFN:310.显示第3条票价的航线规定>NFR:311.显示第4条票价的签注信息>NFE:412. 修改查询条件,快速重新查询票价:>NFC:13.指定航线查询>NFQ:PEK15MAY04LONPEK/CA14. 按协议查询>NFL:/CA15. 显示第2条协议的内容>NFL:216.显示第2条协议中的所有票价>NFL:2*ALL操作流程示例:某北京旅客要在5月1日去新加坡或吉隆坡,5月7日回北京,希望获得最便宜的往返客票。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <iostream.h>#include <string.h>void FlightInsert(); //增加路线void FlightDelete();//删除路线void FlightLookup();//航班查询void FlightRework();//航班路线修改void FlightBuyticket();//买票void FlightCancelticket();//取消订票void Flightclean();//清空void MainMenu();//主函数void Display();//显示订票信息typedef struct Customer //已定票乘客信息{char Name[10]; //int Amount; //定票数int Level; //舱位等级int SeatNum; //座位号char FlightNum[10]; //所定航班号struct Customer *next;}Customer;typedef struct Replace //侯补乘客信息{char Name[10]; //姓名eint Amount; //定票数int Level; //舱位等级char FlightNum[10]; //所定航班号struct Replace *next;}Replace;typedef struct Flight //航班路线信息{char From[10]; //起点站名char Des[10]; //终点站名char FlightNum[10]; //航班号char PlaneNum[10]; //航班char Week[20]; //飞机周日int Ration; //乘员定额int FreeTicket; //剩余票数float Price[3]; //票价int ReplacePas; //候补乘客数Replace *ReplName; //该航班的候补乘客名单Customer *CustName; //该航班的已定票乘客名单struct Flight *next; //指示下一航班路线结点}Flight,*PFlight;int Ration=0; //乘客总数Flight *head; //建立航班路线头结点Flight *rear; //建立航班路尾结点Customer *Cusrear;Replace *Reprear;void MainMenu(){int i=0;while (i!=8){cout<<endl;cout<<" ***************【欢迎使用航空订票系统】***************"<<endl;cout<<""<<endl;cout<<" ***************【按1】增加航班路线***************"<<endl;cout<<""<<endl;cout<<" ***************【按2】查询航班路线***************"<<endl;cout<<""<<endl;cout<<" ***************【按3】修改航班路线***************"<<endl;cout<<""<<endl;cout<<" ***************【按4】预订飞机票***************"<<endl;cout<<""<<endl;cout<<" ***************【按5】退订飞机票***************"<<endl;cout<<""<<endl;cout<<" ***************【按6】清空系统***************"<<endl;cout<<""<<endl;cout<<" ***************【按7】已订票名单***************"<<endl;cout<<""<<endl;cout<<" ***************【按8】退出系统***************"<<endl;cout<<""<<endl;cout<<" *提示:当前为主菜单"<<endl;cin>>i;switch(i){case 1:FlightInsert();break; //增加航班路线case 2:FlightLookup();break; //查询航班路线case 3:FlightRework();break; //修改航班路线case 4:FlightBuyticket();break; //预订飞机票case 5:FlightCancelticket();break; //退订飞机票case 6:Flightclean();break; //清空系统case 7:Display();break;case 8:;break;default:cout<<"*提示:抱歉,请选择正确的操作!"<<endl;cout<<endl;cout<<endl;break;}}}void FlightInsert() //航班录入{/*int i=2;while(i!=1){*/Flight *p;p=new Flight;cout<<"****正在设定新的路线****"<<endl;cout<<endl;cout<<"1.请设定起点站名:"<<endl;cin>>p->From;cout<<"2.请设定终点站名:"<<endl;cin>>p->Des;cout<<"3.请设定航班号:"<<endl;cin>>p->FlightNum;cout<<"4.请设定飞机号:"<<endl;cin>>p->PlaneNum;cout<<"5.请设定飞行周日:"<<endl;cin>>p->Week;cout<<"6.请设定乘员定额:"<<endl;cin>>p->Ration;p->FreeTicket=p->Ration;cout<<"7.请设定一等舱的价格:"<<endl;cin>>p->Price[0];cout<<"8.请设定二等舱的价格:"<<endl;cin>>p->Price[1];cout<<"9.请设定三等舱的价格:"<<endl;cin>>p->Price[2];p->ReplName=new Replace;p->CustName=new Customer;p->CustName->next=NULL;p->ReplName->next=NULL;p->ReplacePas=0;rear->next=p;rear=p;rear->next=NULL;cout<<"设置成功!"<<endl;cout<<"***********************"<<endl;cout<<endl;/*cout<<"【按1】返回主菜单【按2】继续"<<endl;cin>>i;}*/}void FlightLookup() //查询航班号{Flight *p,*q;char FlightNum[10];p=head;int i=0;while (i!=1){cout<<"请输入需要查询的航班号:"<<endl;cin>>FlightNum;while (p->next && strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班号,请核实您的信息!"<<endl;}else{cout<<"以下是您所查的车次信息:"<<endl;cout<<"************************"<<endl;cout<<"* 1.航班号:"<<q->FlightNum<<endl;cout<<"* 2.飞机号:"<<q->PlaneNum<<endl;cout<<"* 3.起点站:"<<q->From<<endl;cout<<"* 4.目的地:"<<q->Des<<endl;cout<<"* 5.飞机周日:"<<q->Week<<endl;cout<<"* 6.成员定额:"<<q->Ration<<endl;cout<<"* 7.剩余票数:"<<q->FreeTicket<<""<<endl;cout<<"* 8.候补乘客数:"<<q->ReplacePas<<"人"<<endl;cout<<"* 9.一等舱的价格:"<<q->Price[0]<<"元"<<endl;cout<<"* 10.二等舱的价格:"<<q->Price[1]<<"元"<<endl;cout<<"* 11.三等舱的价格:"<<q->Price[2]<<"元"<<endl;cout<<"************************"<<endl;}cout<<"您还需要其他的操作么?"<<endl;cout<<endl;cout<<"【按1】返回主菜单【按2】继续操作"<<endl;cin>>i;cout<<"************************"<<endl;cout<<endl;}}void FlightRework() //修改航班路线信息{int Customer_Number ;Flight *p,*q;char FlightNum[10];int i=0;int a=1;p=head;cout<<"请输入需要修改的航班:"<<endl;cin>>FlightNum;while (p->next&&strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while(a){cout<<" *******【请输入需要修改的数据】*******"<<endl;cout<<" "<<endl;cout<<" 【按1】航班号"<<endl;cout<<" "<<endl;cout<<" 【按2】飞机号"<<endl; cout<<" "<<endl; cout<<" 【按3】起始站"<<endl; cout<<" "<<endl; cout<<" 【按4】目的地"<<endl; cout<<" "<<endl; cout<<" 【按5】每周出站日期"<<endl; cout<<" "<<endl; cout<<" 【按6】成员定额"<<endl; cout<<" "<<endl; cout<<" 【按7】一等舱的价格"<<endl; cout<<" "<<endl; cout<<" 【按8】二等舱的价格"<<endl; cout<<" "<<endl; cout<<" 【按9】三等舱的价格"<<endl; cout<<" "<<endl; cout<<" 【按10】退出"<<endl; cout<<" "<<endl; cout<<" **************************************"<<endl; cin>>i;switch(i){case 1:cout<<"1.请输入航班号:"<<endl;cin>>q->FlightNum;break;case 2:cout<<"2.请输入飞机号:"<<endl;cin>>q->PlaneNum;break;case 3:cout<<"3.请输入起始站:"<<endl;cin>>q->From;break;case 4:cout<<"4.请输入目的地:"<<endl;cin>>q->Des;break;case 5:cout<<"5.请输入飞机周日:"<<endl;cin>>q->Week;break;case 6:cout<<"6.请输入乘员定额:"<<endl;Customer_Number=q->Ration-q->FreeTicket;cin>>q->Ration;q->FreeTicket=q->Ration-Customer_Number;break; case 7:cout<<"7.请输入一等舱的价格:"<<endl;cin>>q->Price[0];break;case 8:cout<<"8.请输入二等舱的价格:"<<endl;cin>>q->Price[1];break;case 9:cout<<"9.请输入三等舱的价格:"<<endl;cin>>q->Price[2];break;case 10:a=0;break;default:cout<<"*提示:对不起,请选择正确的操作!"<<endl;cout<<endl;cout<<endl;break;}}}}void FlightBuyticket() //订票{int Ticket_Amount;void Buyticket(PFlight ,int );void Buyreplace(PFlight ,int ,int );Flight *p,*q;char Des[10];int i=2;while (i!=1){cout<<"请输入目的地:"<<endl;cin>>Des;p=head;while (p->next&&strcmp(p->next->Des,Des)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while(i!=1){cout<<"请输入需要购买的票数:"<<endl;cin>>Ticket_Amount;while(Ticket_Amount==0 && Ticket_Amount<0){cout<<"*提示:对不起,请输入正确的票数!"<<endl;cout<<endl;cout<<"请输入需要够买的票数:"<<endl;cin>>Ticket_Amount;}if (Ticket_Amount<=q->FreeTicket){Buyticket(q,Ticket_Amount);}else{int n;cout<<"*提示:抱歉!剩余票数小于定票数,是否需要列入候补名单?(【按1】是【按2】否)"<<endl;cin>>n;Buyreplace(q,Ticket_Amount,n);}cout<<endl;cout<<"【按1】返回主菜单【按2】继续"<<endl;cin>>i;}}}}void FlightCancelticket() //退票{void Buyticket(PFlight ,int );Flight *p,*q;Customer *h,*j;char FlightNum[6];char Customer_Name[10];int Replace1_Amount; //候补第一个人的定票数int i;cout<<"**********************************"<<endl;while (i!=1){cout<<"请输入需要退定的航班号:"<<endl;cin>>FlightNum;p=head;while (p->next&&strcmp(p->next->FlightNum,FlightNum)){p=p->next;}q=p->next;if (q==NULL){cout<<"*提示:对不起,不存在此航班,请核实您的信息!"<<endl;}else{while (i!=2){cout<<"请输入所查姓名:"<<endl;cin>>Customer_Name;h=q->CustName;while (h->next&&strcmp(h->next->Name,Customer_Name)){h=h->next;}j=h->next;if(j==NULL){cout<<"*提示:对不起,查无此人,请核实您的信息!"<<endl;cout<<endl;}else{if(j->next==NULL){ //当删除最后一个结点Cusrear=h;}h->next=h->next->next;q->FreeTicket+=j->Amount;delete j;cout<<"*提示:退票成功!"<<endl;if(q->ReplName->next!=NULL){Replace1_Amount=q->ReplName->next->Amount;if (Replace1_Amount<=q->FreeTicket){Replace *rep;rep=q->ReplName->next;Customer *Cus2;Cus2=new Customer;Cus2->SeatNum=q->Ration-q->FreeTicket+1;strcpy(Cus2->FlightNum, q->FlightNum );strcpy(Cus2->Name, rep->Name );Cus2->Amount=rep->Amount;Cus2->Level=rep->Level;cout<<"*提示:"<<endl;cout<<endl;cout<<"候补乘客:"<<rep->Name<<"已经成功买票!"<<endl;cout<<endl;cout<<"航班号:"<<Cus2->FlightNum<<endl;cout<<"舱位等级为:"<<rep->Level<<"(1一等舱,2二等舱,3三等舱)"<<endl;cout<<"座位号为:"<<endl;for(int i=1;i<=(rep->Amount);i++){cout<<"No."<<Cus2->SeatNum++<<" ";}cout<<endl;if (q->CustName->next==NULL){Cusrear=q->CustName;Cusrear->next=Cus2;Cusrear=Cus2;Cusrear->next=NULL;}else{Cusrear->next=Cus2;Cusrear=Cus2;Cusrear->next=NULL;}q->FreeTicket-=rep->Amount;q->ReplName->next=q->ReplName->next->next;q->ReplacePas--;delete rep;}}}break;}}cout<<"【按1】返回主菜单,或按任意键返回【继续退票操作】!"<<endl;cout<<endl;cin>>i;}}void Flightclean()//清空{head->next=rear->next;cout<<"*提示:系统已经清空!"<<endl;cout<<endl;}void Buyticket(PFlight q,int Ticket_Amount) //买票{int n=Ticket_Amount;Customer *Cus2;Cus2=new Customer;Cus2->SeatNum=q->Ration-q->FreeTicket+1;strcpy(Cus2->FlightNum, q->FlightNum );Cus2->Amount=Ticket_Amount;cout<<"1.请输入姓名:"<<endl;cin>>Cus2->Name;cout<<"2.请输入购买票的类型:"<<endl;cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<<endl;cin>>Cus2->Level;cout<<"*提示:订票成功!"<<endl;cout<<endl;cout<<"舱位等级:"<<" "<<Cus2->Level<<endl;cout<<"座位号为:"<<endl;for(int i=1;i<=Ticket_Amount;i++){cout<<"No."<<Cus2->SeatNum++<<" ";}cout<<endl;if (q->CustName->next==NULL){Cusrear=q->CustName;Cusrear->next=Cus2;Cusrear=Cus2;Cusrear->next=NULL;}else{Cusrear->next=Cus2;Cusrear=Cus2;Cusrear->next=NULL;}q->FreeTicket-=Ticket_Amount;}void Buyreplace(PFlight q,int Ticket_Amount,int n) //进入候补队列{Replace *Rep2;Rep2=new Replace;if(n==1){q->ReplacePas+=Ticket_Amount;strcpy(Rep2->FlightNum,q->FlightNum);Rep2->Amount=Ticket_Amount;cout<<"1.请输入姓名:"<<endl;cin>>Rep2->Name;cout<<"2.请输入购买票的类型:"<<endl;cout<<"【按1】一等舱,【按2】二等舱,【按3】三等舱"<<endl;cin>>Rep2->Level;if(q->ReplName->next==NULL){Reprear=q->ReplName;Reprear->next=Rep2;Reprear=Rep2;Reprear->next=NULL;}else{Reprear->next=Rep2;Reprear=Rep2;Reprear->next=NULL;}}}void Display()//显示订票信息{cout<<"*提示:抱歉,该项目还在开发!"<<endl;cout<<endl;int i;cout<<"【按1】返回至主菜单"<<endl;cin>>i;while(i=1){break;}/*Customer *h,*j;char Customer_Name[10];int i;while (i!=2){cout<<"请输入所查姓名:"<<endl;cin>>Customer_Name;h=q->CustName;while (h->next&&strcmp(h->next->Name,Customer_Name)){h=h->next;}j=h->next;if(j==NULL){cout<<"*提示:对不起,查无此人,请核实您的信息!"<<endl;cout<<endl;}else{cout<<}*///Customer *p;//cout<<"已买票的乘客有:"<<endl;//cout<<endl;//cout<<":"<<p->Name<<"航班号:"<<p->FlightNum<<"订票数:"<<p->Amount<<endl;//cout<<"舱位等级:"<<p->Level<<"座位号"<<p->SeatNum;//Flight *q;//char FlightNum[10];//cout<<"以下是您所查的车次信息:"<<endl;//cout<<"************************"<<endl;//cout<<"* :"<<q->Name<<endl;//cout<<"* 航班号:"<<q->FlightNum<<endl;//cout<<"* 飞机号:"<<q->PlaneNum<<endl;//cout<<"* 起点站:"<<q->From<<endl;//cout<<"* 目的地:"<<q->Des<<endl;//cout<<"* 飞机周日:"<<q->Week<<endl;//cout<<"* 舱位等级:"<<q->Level<<endl;}******************************************************************************* ***********************#include "AirLineSystem.h" #include<iostream.h>void main() //主程序{Cusrear=new Customer;Reprear=new Replace;head=rear=new Flight;head->next=NULL;MainMenu();}。

相关文档
最新文档