航空订票系统代码
课程设航空订票系统完整源代码及详解
#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语言代码及流程图)
目录第一部分源程序---------------------------------------------------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操作指令
操作手册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系统的代码和指令国内常用城市机场三字代码代码城市名称代码城市名称代码城市名称代码城市名称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日回北京,希望获得最便宜的往返客票。
订票代码
最新航班舱位代码表小常识:飞机舱位分为3类,F舱为头等舱;C为公务舱;Y为经济舱。
以上折扣舱位是经济舱位的一种,只是航空公司为划分价格而划分的舱位,与一般经济舱位一样。
一ETERM进入1 工作好进入 SI:工作号/密码2 工作号退出 SO:3 修改密码AM:旧密码/新密码SO: SI:二查询指令(昨天- 今天·明天+)1 指定日期航班AVH/城市对/日期/航空公司2 只要直飞AVH/城市对/日期/D/航空公司3 查询经停点FF:航班号/日期4 返程查询AV/RA/日期5 航班一周情况SK:(城市对)6 国内公布票价FD:城市对/日期/航空公司7 查询特价N FD:城市对/日期/航空公司8 提取历史纪录RT编码RTU19 地方运输航段SA:城市对10 不定期航段SN:航空公司/舱位/城市对三订座记录1 姓名①中国成人:名字1名字②外籍成人:NM1姓/名(不能超过26个字母)③中国成人票:姓/名(拼音)④儿童:名字CHD⑤婴儿:XN:IN/名字INF(出生月年)/跟随大人序号2 航段①直接订座SS:航空公司航班号仓位日期城市对座位数②间接订座AVH/城市对/日期/航空公司SD/序号/仓位/人数3 联系组①T:电话②OSI YY CTCT电话4 时限组TKTL/时间/日期/办公号5证件SSR FOID YY HK/NI证件号/P对应的序号6 备注RMK签注:EI签注内容7 PNR生效①或I 正常情况下封口②I在两地断开,转移时间段,同一城市不同一场③@K行动代码有变化的情况下④I或IG放弃操作⑤\KI强行口四提取记录1 查询已有订单号 RT:PNR2 查询姓名所属单号 TR:名字/航班号/日期3 查询指定日期航班的ML:C/航班号/日期4 AB/起飞日期/城市对5 提取历史文件 RT:C/PNR6 大编码转换小编码 RRT V/PNR/0000/日期五ETDZ 出票1 RT:PNR2 航段序号RR3 XE时限组4 ①PAT:A(成人)②PAT:A*CH(儿童)③PAT:A*IN(婴儿)5 ETDZ 打印机号6 票价计算①FC:起飞城市承运人到达城市票价仓位CNY 票面总价END②FP:CASH,CNY(婴儿IN/CASH,CNY③FN:FNCY票面价、SCNY销售价/C代理费/TCNY机场建设费CN/TCNY燃油YQ7 电脑错误情况下重出票(出票未成功)①XE 以出票标记②补充缺少项③ETRY(冲出票指令)六查询编码与计算1 根据城市查三字代码 CNTD:T/城市(拼音)2 根据城市代码查城市名字CD:三字代3根据国家代码查国家名字CNTD:C/二字代码4 计算公式 CO:5 时差 CO:T城市对6 天数计算 DATE:日期/天数7 天气查询 WF:三字代码8 长度、重量、温度换算 CV:①千米KM ②英里MI ③摄氏C ④华氏F ⑤英镑LB ⑥公斤KG七修改PNR记录1删除①出姓名以外的其他内容XE序号②删除姓名 XEP序号③删除记录 XEPNR\工作号2 调整航班 CS:序号/序号(相邻两段)3 添加航段 ES:(在后补的状态下有位子)4 分离 SP:序号(分离的人)八团退记录(10人以上成团对)1团名CN:人数团名(其余和散客订座一样,可以先不输入名字)2 团队提取①只显示名字填写总数、不现实具体名字RT团队/航班/日期②现实具体名字 TR:N/PNR3 团队分离①已输入旅客姓名SP:序号②未输入旅客姓名SP:G座位数③两者同事分离SP:G座位数/P序号九通过电脑给手机发短信1 RTPNR2 RMK MP 手机号\3 RTPNR4 SMS:I编码\十电子客票(ET)1查询授权信息DDI:2 打票机状太DI:打票机号3 打票机设置①建立打票机控制EC打票机号TI打票机号②退出打票机控制XC打票机号4 输入票号①查询票号 TOL:②上票号 TN:打票机号X/起始票号——结束票号后五位数十一提取票号信息1 DETR:TN/票号2 DETR:NI/证件号3 DETR:NM/名字4 DETR:CN/大编码(如果人数多不一定能显示)5 显示全部旅客信息 DETR:CN/大编码,C6 只提取这个旅客的证件号DETR:票号,F7 提取这张票的历史 DETR:票号,H8 提取出票信息 DETR:票号,S9 提取这个票号的所有订票记录 DETR:CN/PNR,F十二改签(不引起票面变化、不变更航空公司)1 提记录 RT:PNR2 做新航段 AVH/城市对/日期/航空公司3 XE票价组4 XE旧航段5 封口(\I)6 新航段做RR7 SSR TKNE YY HK1 城市对航班号仓位日期票号/1/P对应人的序号十三改证件1 XE 旧证件号2 SSR FOID YY HK/NI证件号十四废票1 查看客票出票时间(当天出的、票号OPEN、进控)2 VT:打印机号/起始票号——结束票号后五位/PNR(小编码)十五退票1 自动退票①查看票号状态(票号OPEN状态)②TRFD:L/票号/AM/打印机号/D③在左下角输入E确定①②④TRFD:H/打印机号/D/退票单号2 手工退票①TRFD:AM/打印机号/D手续费票面价票号①CN 机场建设费燃油费总和代理费(3.00) 0改成1 ②十六挂起与解挂1 挂起TSS:TN/票号/S TSS:CN/大编码/S2 挂起TSS:TN/票号/B TSS:CN/大编码/B十七销售报表1 正常出票TSL:C/打票机号/工作号2 出票总数TSL:F/打票机号/工作号3 退票TSL:R/打票机号/工作号4 废票TSL:V/打票机号/工作号十八客票状太与机票状态1 客票状态①OPRN FOR USE 开放使用②USED/FLOWN 已使用③CHECK IN 已办理登记手续④REFOUND 已退票⑤SUSPENDED 客票被挂起,无法使用⑥FIM EXCH 被换开中断仓单⑦PRINT EXCH 被换开纸票⑧VOID 已作废2 机票状态①HK或DK是座位预定成功②RR是已出票③NN.NO.DW.NW是没有预定成功④NO是位子被航空公司取消⑤HK或DK是座位预定成功⑥RR是已出票或者说是座位已经订死状态⑦NN.DW.NW.HL.HN.SS是没有预定成功8 NO是位子被航空公司取消9 KK、KL控制室给K予的位置十九恢复退票1 TSL:R/打票机号/工作号2 TRFD:M/打票机号/D/退票单号3 U改成X4 ETRF:航段序号/票号/PRNT/打票机号/OPEN出现**ET.REFUND CANELED**十二其他指令1 手工退票TRFD:AM/打票机号/D2 手工输价PAT:3 换编码出(在RT基础上)CYY4 时限项出现假票号时限项WC/./PEK01 XE时限项5 海航A舱输入 OSI HU CKIN SSAC/SI6 积分卡号 SSR:FQTV YY HK/YY卡号7 Q箱QSSC Q/V Q/VEEterm出现英文输入CVOF二十一婴儿票1 RT:PNR(大人)2 XN:IN/中文名字INF(月年)/P13 SSR INFT YY NN1 城市对航班号仓位日期姓/名出生日月年/P14 时限组序号T/票号5 \I6 XE实现组7 PAT:A*IN8 ETDZ 3,INF二十二月份和星期缩写JAN 一月FEB 二月 MAR 三月 APR 四月MAY 五月JUN 六月 JUL 七月 AUG 八月SEP 九月OCT 十月 NOV 十一月 DEC 十二月SUN 星期日MON 星期一TUE 星期二WED 星期三THU 星期四FRI 星期五 SAT 星期六。
民航订座系统指令集
订座系统指令集整理(1)进入系统:〉SI:11111/123A/41(2)用AN指令进行修改:〉AN:123A/888F(3)退出系统:〉SO(4)重新进入系统:SI:11111/888F/41二、航班信息查询指令(一)航班时刻显示SK:查询一城市对在特定周期内所有航班的信息,包括航班号、出发到达时间、舱位、机型、周期和有效期限。
格式:SK 城市对三字代码/ 日期/ 航空公司二字代码/ 舱位例1:查询15OCT前后三天的一周时间内上海到深圳的航班时刻〉SK:SHASZX/15OCT(航空公司二字代码和舱位可省略,表示查询所有信息)12OCT(MON)/18OCT(SUN)SHASZX2 FM373 SHASZX 0830 1035 757 0 M 31MAR26OCT FAYIHKLMTEVUQGW 以上显示信息中,分别为序号、航班号、航程、出发到达时间、机型、经停点、餐食、期限和舱位。
例2:显示以今天为中心前后三天之内北京到上海的航班信息〉SK:PEKSHA例3:显示14OCT前后三天从北京至长沙的MU的F舱的航班〉SK:PEKCSX/14OCT/MU/F例4:显示10OCT前后三天北京到巴黎的直达航班〉SK:PEKCDG/10OCT/D(二)座位可利用情况显示AV——查询航班座位可利用情况,及其相关航班信息,如航班号、舱位、起飞到达时间、经停点等。
格式:AV城市对三字代码/ 日期/ 航空公司二字代码/ 舱位/ 座位数例1:显示10OCT的PEK到SHA航班座位可利用情况〉AV:PEKSHA/10OCT(航空公司二字代码和舱位等可省略,表示查询所有信息)10OCT00(TUE)PEKSHA7+ FM106 PEKSHA 1815 2050 757 0 M DS# FA AS Y6 IS HS*以上显示信息中,分别为序号、航班号、航程、出发到达时间、机型、经停点、餐食、存取级别标识、舱位和座位可利用情况标识。
eterm指令
民航订票操作系统(eterm)指令大全目录一、登录 (2)二、查询 (2)三、信息查询及辅助功能 (2)四、建立pnr (3)五、特殊服务ssr (4)六、pnr提取和修改 (5)七、公布运价的查询 (6)八、bsp打票 (7)九、国际运价查询 (8)十、电子客票常用指令 (9)十一、q信箱处理 (10)十二、手工输入api信息 (10)一、登录1.进入系统 >$$open tipc32.输入工作号 >si:工作号/密码3.查看pid状态 >da4.退出系统 >so5.修改密码 >an:旧密码/新密码6.随时查看sign-in信息 >siif:7.指令使用帮助 >help: 指令8.屏幕向上一页 >pb9.屏幕向下一页 >pn10.清屏指令 >cp11.重复显示当前页 >pg12.一屏显示所有内容 >pq1二、查询1. 航班座位可利用显示 >av: h/城市对/日期/时间/ 航空公司代码(或gds 代码)2. 最早有座位航班查询 >fv: 城市对/日期/起飞时间/座位数/航空公司代码(或gds代码)/经停标志 / 舱位3. 航班飞行周期的查询 >sk: 城市对/日期/时间/航空公司代码/ 舱位4. 航班经停点和起降时间的显示指令 >ff: 航班号/日期5. 指定日期的航段上的航班详细信息显示 >dsg:c/航班号/座位等级/日期/航段或 rt之后, >dsg: 航班序号三、信息查询及辅助功能1、24小时北京天气预报 wf >wf 城市三字代码2、机场转机信息查询 dsm >dsm: pek3、机场、国家、航空公司代码查询 cntd/cd1)查询城市三字代码>cntd t/beijing2)查询城市名称>cd pek3)查询一个国家所有城市>cntd a/cn4)查询国家全称>cntd c/cn5)查询国家两字码>cntd n/china6)查询航空公司信息>cntd d/ca7)查询航空公司两字代码>cntd m/air china4、计算co1)四则运算>co 100+22)计算北京和巴黎的时差>co t/pekcdg3)显示巴黎10月1日0点的gmt标准时间>co t/cdg/1oct/00004)英里换算成公里>co k/英里数5)公里换算成英里>co m/公里数5、日期查询date1)显示当前日期和星期几>date2)显示10天,90天后的日期>date 10/903)显示2004年1月1日的前2天,及后20天的日期>date 1jan04/-2/206、时间查询time1)显示当前时间>time2)北京时间2004年1月1日零点的巴黎时间>time 1jan04/0000/cdg3)纽约时间2004年1月1日零点的北京、巴黎时间>time nyc/1jan/0000/pek/cdg7、长度、重量、温度换算 cv1)100公里换算成英里>cv 100km2)100英里换算成公里>cv 100mi3)摄氏35度转化为华氏度>cv 35c4)华氏95度转化为摄氏度>cv 95f5)10英镑转化为公斤>cv 10lb6)10公斤转化为英镑-磅>cv 10kg8、查询中文信息yi1)显示所有静态信息的目录>yi2)显示不含副标题的公告>yi标题3)显示有副标题的公告>yi i/某标题9、旅游信息查询tim1)查询签证信息>tim tifv2)查询健康检疫信息>tim tifh3)同时查询签证、健康检疫信息 >tim tifa4)查询与出入境有关的信息>tim tidft/城市/章节/小标题/页码5)显示tim帮助功能>tim tihelp6)显示tim中有关规则>tim tirules7)显示综合旅游信息新闻>tim tinews8)显示下一页>tipn9)显示上一页>tipb四、建立pnr1、航段预订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/12、姓名输入 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 12changyou3、联系方式 ct >ct pek/12345674、证件信息输入 ssr (注意:ca表示相应的航空公司代码)1) 国内旅客 >ssr foid ca hk/证件代码及号码/pn 证件种类代码:ni-身份证; pp-护照; id-其他证件2) 国际旅客>ssr pspt ca hk/护照号码/国籍/旅客生日/旅客姓/旅客名/性别及婴儿标识/持有人标识/pn注:下划线部分为必输项5、出票时限 tktl>tk tl/1200/01oct/bjs1236、手工票号输入 tkt>tkt/783-2203752149/p17、票价信息的简易输入 fc/fn 八、选择制定航段进行票价计算或打票sel>sel: 指定航段序号8、国内bsp客票自动生成fn/fc/fp项:>pat:9、国际客票经过qte/xs fsq, 自动生成fn/fc项: >dfsq:10、付款方式组 fp>fp:cash/ check,cny11、签注信息组 ei12、旅游代码组 tc (一般按照航空公司要求输入)13、打票预览 tktv>tktv: 打票机序号14、票号自动传输 stn>stn: 票号/pn/指定航段序号15、客票打印 dz打印pnr中所有人的客票>dz:1仅打印第一个成人所携带的婴儿客票>dz:1/p1, inf仅打印第一个成人的客票>dz:1/p1, adl打印pnr中所有婴儿客票>dz:1,inf打印pnr中所有成人客票>dz:1, adl五、特殊服务ssr1、查看航班座位图adm>adm:航段序号/航段2、进行机上座位预订 asr>asr: 航段序号/座位号3、里程输入 >ssr fqtv承运航空公司代码hk1/发卡航空公司代码卡号/pn4、其他特殊服务的申请>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提取和修改1、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/7oct2、国内航空公司记录的提取和转换>rrt: v/航空公司记录编号/航班号/日期>@ok3、记录分离sp >sp 1/34、记录修改1)旅客姓名修改>1/1杨振2)删除姓名组以外的内容>xe 序号3)取消pnr>xepnr@5、记录封口 @1)正常封口>@2)以下几种情况可使用@k封口>@ka)将kk,kl或tk变为hkb)将uu,us或tl变为hlc)将tn变为hnd)将带有ni,uc,un的项移到pnr的历史部分3)以下情况可使用@i封口>@ia)航段不连续b)有航班变更标识c)两个连接航段的停留时间小于最小连接时间七、公布运价的查询1、国内公布运价查询:1).查询城市对间当前可用票价fd>fd:城市对/日期/航空公司代码/查询选项(s排序由低到高;l最低价)2).运价限制条件信息查询pfn>pfn: 规则号/ 承运人或在fd的基础上 >pfn: 运价序号3).查询运价的航线限制 pfr在fd基础上有航线限制标识的情况下 >pfr: 运价序号2、航空公司净价查询:(需要航空公司授权)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日回北京,希望获得最便宜的往返客票。
航空客运订票系统源代码
航空客运订票系统源代码#include <windows.h>//dos控制命令头文件#include <iostream>//输入输出头文件#include <iomanip>//控制格式头文件#include <conio.h>//getchar()用到#include <string>//字符串函数using namespace std;//标准命名空间#define OK 1//函数结果状态码#define ERROR 0//函数结果状态码#define TRUE 1//函数结果状态码#define FALSE 0//函数结果状态码typedef int status;//函数结果状态码static int cusnum=1;//顾客数(全局变量)static int airnum=1;//航线数(全局变量)//顾客结构体struct customer{char name[9];// 顾客名char line_num[8];// 航班号int piaonum;// 座位号struct customer *next;// 下一个结点};typedef customer *Linkcustomer;//候补顾客结构体typedef struct houbuNode{//候补顾客结构体char name[9];//姓名char end_place[10];//终点站int pnum;//票数struct houbuNode *next;//指针域}* houbucustomer;struct LinkQueue{houbucustomer front,rear;//队头队尾指针};//航线结构体struct airline{char line_num[8];// 航班号char plane_num[8];// 飞机号char end_place[20];// 目的的char fly_data[20];// 飞行周日int total;// 座位总数int left;// 剩余座位Linkcustomer custom;// 订票顾客指针LinkQueue houbucus;// 候补顾客指针struct airline *next;// 下一个结点};typedef airline *Linkairline;//初始化航线链表void init_airline(Linkairline &l){l=new airline[sizeof(airline)];//产生头结点,并始l指向此头结点if(!l){//存储分配失败exit(0);//退出}l->next=NULL;//头结点的指针域为空}//初始化顾客链表(同初始化航线链表)void init_customer(Linkcustomer &l){l=new customer[sizeof(customer)];if(!l){exit(0);}l->next=NULL;}//初始化候补顾客队列链表(同初始化航线链表)void init_houbucustomer(LinkQueue &Q){Q.front=Q.rear=new houbuNode[sizeof(houbuNode)];//if(!Q.front){exit(0);}Q.front->next=NULL;}//判断airline链表是否为空status airLineEmpty(Linkairline L){if(L->next)//非空return FALSE;elsereturn TRUE;}// airline链表插入操作status insert_airline(Linkairline L,int i,char *line_num,char *plane_num,char *end_place, char *fly_data,int total,int left,Linkcustomer custom,LinkQueue houbucus){int j=0;//计数器Linkairline s,p=L;//p指向头结点while(p&&j<i-1)//寻找第i-1个结点{j++;p=p->next;}if(!p||j>i-1)//i小于1或大于表长return ERROR;//插入失败s=new airline[sizeof(airline)];//生成新结点strcpy(s->line_num , line_num);//给新结点赋值strcpy(s->plane_num , plane_num);strcpy(s->end_place , end_place);strcpy(s->fly_data , fly_data);s->total =total;s->left =left;s->custom=custom;s->houbucus=houbucus;s->next=p->next;//新结点指向原第i个结点p->next=s;//原第i-1个结点指向新结点return OK;//插入成功}// customer链表插入操作(同airline链表插入操作)status insert_customer(Linkcustomer L,int i,char *name,char *line_num,int piaonum){ int j=0;Linkcustomer s,p=L;while(p&&j<i-1){j++;p=p->next;}if(!p||j>i-1)return ERROR;s=new customer[sizeof(customer)];strcpy(s->name , name);strcpy(s->line_num , line_num);s->piaonum=piaonum;s->next=p->next;p->next=s;return OK;}// houbucustomer入队操作void insert_houbucustomer(LinkQueue &Q,char *name,char *end_place,int pnum){ houbucustomer p;p=new houbuNode[sizeof(houbuNode)];strcpy(p->name , name);strcpy(p->end_place , end_place);p->pnum=pnum;p->next=NULL;Q.rear->next=p;Q.rear=p;}// houbucustomer出队操作status del_houbucustomer(LinkQueue &Q,houbuNode &hbnode){houbucustomer p;p=Q.front->next;strcpy(,p->name);strcpy(hbnode.end_place,p->end_place);hbnode.pnum=p->pnum;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;delete p;return OK;}//houbucustomer输出操作void print_houbucustomer(LinkQueue Q){houbucustomer p=Q.front->next;cout<<"候补顾客为:"<<endl;cout<<"姓名终点站票数"<<endl;while(p){cout<<p->name<<" "<<p->end_place<<" "<<p->pnum;p=p->next;}cout<<endl;}// 打印航线信息status print_airline(Linkairline l){cout<<endl<<"航班号飞机号目的地飞行周日总票数余票数订票客户替补客户"<<endl;Linkairline p=l->next ;for(;p!=NULL;p=p->next ){cout<<setiosflags(ios::left)<<setw(9);cout<<p->line_num<<setw(10)<<p->plane_num<<setw(9)<<p->end_place<<setw(12)<<p->fly_data<<setw(10)<<p->total<<setw(8)<<p->left<<setw(12)<<&(p->houbucus)<<setw(10)<<&(p->custom)<<endl;}return OK;}// 打印航线信息(print_airline重载)status print_airline(Linkairline l,string name,int N){string info;bool flag=true;Linkairline p=l->next;for(;p!=NULL;p=p->next ){if(N==1)info=p->end_place;elseinfo=p->line_num;if(info==name){flag=false;cout<<endl<<"航班号飞机号目的地飞行周日总票数余票数订票客户替补客户"<<endl;cout<<setiosflags(ios::left)<<setw(9);//输出格式控制cout<<p->line_num<<setw(10)<<p->plane_num<<setw(9)<<p->end_place<<setw(12)<<p->fly_data<<setw(10)<<p->total<<setw(8)<<p->left<<setw(12)<<&(p->custom)<<setw(10)<<&(p->houbucus)<<endl;break;}}if(flag){if(N==1)cout<<"对不起,没有终点站为"<<name<<"的航班"<<endl;elsecout<<"对不起,没有航班号为"<<name<<"的航班"<<endl;}return OK;}// 打印顾客信息status print_customer(Linkcustomer l){Linkcustomer p=l->next ;for(;p!=NULL;p=p->next ){cout<<setiosflags(ios::left);//输出格式控制cout<<setw(10)<<p->name<<setw(12)<<p->line_num<<p->piaonum<<endl;}return OK;}//航班信息录入status addmoreairline(Linkairline l,Linkcustomer custom,LinkQueue houbucus){char line_num1[8],plane_num1[8],fly_data1[8],end_place1[8];int total1=100,left1=80;cout<<"请输入以下信息:"<<endl<<endl;cout<<"航班号:";cin>>line_num1;cout<<"飞机号:";cin>>plane_num1;cout<<"目的地:";cin>>end_place1;cout<<"飞行周日:";cin>>fly_data1;cout<<"总票数:";cin>>total1;cout<<"余票数:";cin>>left1;insert_airline(l,airnum,line_num1,plane_num1,end_place1,fly_data1,total1,left1,custom,ho ubucus);airnum++;cout<<"添加成功!"<<endl;print_airline(l);return OK;}// 修改airline链表中的数据status modefy_airline(Linkairline l,char *line_num){Linkairline p=l->next;for(;p!=NULL;p=p->next ){if(strcmp(line_num,p->line_num )==0){p->left++;return OK;}}cout<<"没有这个航班,无法完成修改任务!"<<endl;return ERROR;}//订票status book(Linkairline l,char *end_place,Linkcustomer c,char *name,int num,LinkQueue houbu){Linkairline p=l->next;//p指向第一个结点Linkcustomer q=c->next;//q指向第一个结点for(;p!=NULL;p=p->next)//查找{if(strcmp(end_place,p->end_place )==0){if(p->left-num >=0)//剩余票数大于订票数{cout<<"订票成功!"<<endl;insert_customer(c,cusnum,name,p->line_num,num);//向顾客链表插入记录p->left-=num;//订票成功,剩余票数减少cusnum++;//顾客数加一return OK;}else//剩余票数小于订票数{char pd;cout<<"对不起,余票不足!"<<endl;cout<<"是否需要排队候补(Y/N):";cin>>pd;if(pd=='Y'||pd=='y')//需要排队候补{insert_houbucustomer(houbu,name,end_place,num);//向候补队列插入记录cout<<"候补登记成功!"<<endl;print_houbucustomer(houbu);}else{}}return 0;}}cout<<"对不起,没有终点站为"<<end_place<<"的航班!"<<endl;return ERROR;}//退票status delete_cus(Linkcustomer h,Linkairline l,char *name,LinkQueue houbu){Linkcustomer p=h->next,pr=h;//p指向顾客链表首结点char line_num[8];houbuNode hbnode;while(p!=NULL)//循环查找退票顾客{if(strcmp(name,p->name )==0){strcpy(line_num,p->line_num );for(int i=0;i<p->piaonum;i++)//更改该航线的剩余票数modefy_airline(l,line_num);pr->next =p->next ;cout<<"顾客"<<p->name<<"退票成功!"<<endl;cusnum--;//顾客数减一if(houbu.front->next==NULL){}else{del_houbucustomer(houbu,hbnode);//候补顾客出队if(l->next->left>=hbnode.pnum)//剩余票数多于排在第一位的客户订的票数{//为排在第一位的客户办理订票业务book(l,hbnode.end_place,h,,hbnode.pnum,houbu);cout<<"候补顾客"<<<<"订票成功!"<<endl;}else//剩余票数少于排在第一位的客户订的票数{cout<<"票数仍然不足!";}}return OK;}pr=pr->next ;p=pr->next ;}cout<<"无此顾客,无法退票!"<<endl;//未查到顾客信息return ERROR;}//打开进度条,程序信息简介void open(){cout<<"\n\n\n\n 课程设计\n";cout<<"\n ╔-------------------------------╗";cout<<"\n ││";cout<<"\n │名称: 航空订票系统│";cout<<"\n ││";cout<<"\n │作者: 乐升平│";cout<<"\n ││";cout<<"\n │学号: 201210510216 │";cout<<"\n ││";cout<<"\n │班级:12计科(2)班│";cout<<"\n ││";cout<<"\n │工具: VC++6.0 C++语言│";cout<<"\n ││";cout<<"\n ╚-------------------------------╝\n";system("pause");system("cls");cout<<"\n\n\n\n\n\n ****************欢迎使用航空订票系统**************\n\n\n";const int M=25;int k;cout<<"\n 〓程序加载中>>>> ";for (k=1;k<=M;k++){cout<<"■";Sleep(100);}system("cls");cout<<endl<<"【载入完成】\a"<<endl<<endl;cout<<" 前言"<<endl<<endl;cout<<" 欢迎使用『航空订票系统』,本程序实现了以下功能:\n\n";cout<<" ①录入功能:可以录入航班情况\n\n";cout<<" ②查询功能:根据客户提供的终点站名或航班号进行查询。
民航订票的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日回北京,希望获得最便宜的往返客票。
航空客运订票系统源代码
航空客运订票系统源代码#include <windows.h>//dos控制命令头文件#include <iostream>//输入输出头文件#include <iomanip>//控制格式头文件#include <conio.h>//getchar()用到#include <string>//字符串函数using namespace std;//标准命名空间#define OK 1//函数结果状态码#define ERROR 0//函数结果状态码#define TRUE 1//函数结果状态码#define FALSE 0//函数结果状态码typedef int status;//函数结果状态码static int cusnum=1;//顾客数(全局变量)static int airnum=1;//航线数(全局变量)//顾客结构体struct customer{char name[9];// 顾客名char line_num[8];// 航班号int piaonum;// 座位号struct customer *next;// 下一个结点};typedef customer *Linkcustomer;//候补顾客结构体typedef struct houbuNode{//候补顾客结构体char name[9];//姓名char end_place[10];//终点站int pnum;//票数struct houbuNode *next;//指针域}* houbucustomer;struct LinkQueue{houbucustomer front,rear;//队头队尾指针};//航线结构体struct airline{char line_num[8];// 航班号char plane_num[8];// 飞机号char end_place[20];// 目的的char fly_data[20];// 飞行周日int total;// 座位总数int left;// 剩余座位Linkcustomer custom;// 订票顾客指针LinkQueue houbucus;// 候补顾客指针struct airline *next;// 下一个结点};typedef airline *Linkairline;//初始化航线链表void init_airline(Linkairline &l){l=new airline[sizeof(airline)];//产生头结点,并始l指向此头结点if(!l){//存储分配失败exit(0);//退出}l->next=NULL;//头结点的指针域为空}//初始化顾客链表(同初始化航线链表)void init_customer(Linkcustomer &l){l=new customer[sizeof(customer)];if(!l){exit(0);}l->next=NULL;}//初始化候补顾客队列链表(同初始化航线链表)void init_houbucustomer(LinkQueue &Q){Q.front=Q.rear=new houbuNode[sizeof(houbuNode)];//if(!Q.front){exit(0);}Q.front->next=NULL;}//判断airline链表是否为空status airLineEmpty(Linkairline L){if(L->next)//非空return FALSE;elsereturn TRUE;}// airline链表插入操作status insert_airline(Linkairline L,int i,char *line_num,char *plane_num,char *end_place, char *fly_data,int total,int left,Linkcustomer custom,LinkQueue houbucus){int j=0;//计数器Linkairline s,p=L;//p指向头结点while(p&&j<i-1)//寻找第i-1个结点{j++;p=p->next;}if(!p||j>i-1)//i小于1或大于表长return ERROR;//插入失败s=new airline[sizeof(airline)];//生成新结点strcpy(s->line_num , line_num);//给新结点赋值strcpy(s->plane_num , plane_num);strcpy(s->end_place , end_place);strcpy(s->fly_data , fly_data);s->total =total;s->left =left;s->custom=custom;s->houbucus=houbucus;s->next=p->next;//新结点指向原第i个结点p->next=s;//原第i-1个结点指向新结点return OK;//插入成功}// customer链表插入操作(同airline链表插入操作)status insert_customer(Linkcustomer L,int i,char *name,char *line_num,int piaonum){ int j=0;Linkcustomer s,p=L;while(p&&j<i-1){j++;p=p->next;}if(!p||j>i-1)return ERROR;s=new customer[sizeof(customer)];strcpy(s->name , name);strcpy(s->line_num , line_num);s->piaonum=piaonum;s->next=p->next;p->next=s;return OK;}// houbucustomer入队操作void insert_houbucustomer(LinkQueue &Q,char *name,char *end_place,int pnum){ houbucustomer p;p=new houbuNode[sizeof(houbuNode)];strcpy(p->name , name);strcpy(p->end_place , end_place);p->pnum=pnum;p->next=NULL;Q.rear->next=p;Q.rear=p;}// houbucustomer出队操作status del_houbucustomer(LinkQueue &Q,houbuNode &hbnode){houbucustomer p;p=Q.front->next;strcpy(,p->name);strcpy(hbnode.end_place,p->end_place);hbnode.pnum=p->pnum;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;delete p;return OK;}//houbucustomer输出操作void print_houbucustomer(LinkQueue Q){houbucustomer p=Q.front->next;cout<<"候补顾客为:"<<endl;cout<<"姓名终点站票数"<<endl;while(p){cout<<p->name<<" "<<p->end_place<<" "<<p->pnum;p=p->next;}cout<<endl;}// 打印航线信息status print_airline(Linkairline l){cout<<endl<<"航班号飞机号目的地飞行周日总票数余票数订票客户替补客户"<<endl;Linkairline p=l->next ;for(;p!=NULL;p=p->next ){cout<<setiosflags(ios::left)<<setw(9);cout<<p->line_num<<setw(10)<<p->plane_num<<setw(9)<<p->end_place<<setw(12)<<p->fly_data<<setw(10)<<p->total<<setw(8)<<p->left<<setw(12)<<&(p->houbucus)<<setw(10)<<&(p->custom)<<endl;}return OK;}// 打印航线信息(print_airline重载)status print_airline(Linkairline l,string name,int N){string info;bool flag=true;Linkairline p=l->next;for(;p!=NULL;p=p->next ){if(N==1)info=p->end_place;elseinfo=p->line_num;if(info==name){flag=false;cout<<endl<<"航班号飞机号目的地飞行周日总票数余票数订票客户替补客户"<<endl;cout<<setiosflags(ios::left)<<setw(9);//输出格式控制cout<<p->line_num<<setw(10)<<p->plane_num<<setw(9)<<p->end_place<<setw(12)<<p->fly_data<<setw(10)<<p->total<<setw(8)<<p->left<<setw(12)<<&(p->custom)<<setw(10)<<&(p->houbucus)<<endl;break;}}if(flag){if(N==1)cout<<"对不起,没有终点站为"<<name<<"的航班"<<endl;elsecout<<"对不起,没有航班号为"<<name<<"的航班"<<endl;}return OK;}// 打印顾客信息status print_customer(Linkcustomer l){Linkcustomer p=l->next ;for(;p!=NULL;p=p->next ){cout<<setiosflags(ios::left);//输出格式控制cout<<setw(10)<<p->name<<setw(12)<<p->line_num<<p->piaonum<<endl;}return OK;}//航班信息录入status addmoreairline(Linkairline l,Linkcustomer custom,LinkQueue houbucus){char line_num1[8],plane_num1[8],fly_data1[8],end_place1[8];int total1=100,left1=80;cout<<"请输入以下信息:"<<endl<<endl;cout<<"航班号:";cin>>line_num1;cout<<"飞机号:";cin>>plane_num1;cout<<"目的地:";cin>>end_place1;cout<<"飞行周日:";cin>>fly_data1;cout<<"总票数:";cin>>total1;cout<<"余票数:";cin>>left1;insert_airline(l,airnum,line_num1,plane_num1,end_place1,fly_data1,total1,left1,custom,ho ubucus);airnum++;cout<<"添加成功!"<<endl;print_airline(l);return OK;}// 修改airline链表中的数据status modefy_airline(Linkairline l,char *line_num){Linkairline p=l->next;for(;p!=NULL;p=p->next ){if(strcmp(line_num,p->line_num )==0){p->left++;return OK;}}cout<<"没有这个航班,无法完成修改任务!"<<endl;return ERROR;}//订票status book(Linkairline l,char *end_place,Linkcustomer c,char *name,int num,LinkQueue houbu){Linkairline p=l->next;//p指向第一个结点Linkcustomer q=c->next;//q指向第一个结点for(;p!=NULL;p=p->next)//查找{if(strcmp(end_place,p->end_place )==0){if(p->left-num >=0)//剩余票数大于订票数{cout<<"订票成功!"<<endl;insert_customer(c,cusnum,name,p->line_num,num);//向顾客链表插入记录p->left-=num;//订票成功,剩余票数减少cusnum++;//顾客数加一return OK;}else//剩余票数小于订票数{char pd;cout<<"对不起,余票不足!"<<endl;cout<<"是否需要排队候补(Y/N):";cin>>pd;if(pd=='Y'||pd=='y')//需要排队候补{insert_houbucustomer(houbu,name,end_place,num);//向候补队列插入记录cout<<"候补登记成功!"<<endl;print_houbucustomer(houbu);}else{}}return 0;}}cout<<"对不起,没有终点站为"<<end_place<<"的航班!"<<endl;return ERROR;}//退票status delete_cus(Linkcustomer h,Linkairline l,char *name,LinkQueue houbu){Linkcustomer p=h->next,pr=h;//p指向顾客链表首结点char line_num[8];houbuNode hbnode;while(p!=NULL)//循环查找退票顾客{if(strcmp(name,p->name )==0){strcpy(line_num,p->line_num );for(int i=0;i<p->piaonum;i++)//更改该航线的剩余票数modefy_airline(l,line_num);pr->next =p->next ;cout<<"顾客"<<p->name<<"退票成功!"<<endl;cusnum--;//顾客数减一if(houbu.front->next==NULL){}else{del_houbucustomer(houbu,hbnode);//候补顾客出队if(l->next->left>=hbnode.pnum)//剩余票数多于排在第一位的客户订的票数{//为排在第一位的客户办理订票业务book(l,hbnode.end_place,h,,hbnode.pnum,houbu);cout<<"候补顾客"<<<<"订票成功!"<<endl;}else//剩余票数少于排在第一位的客户订的票数{cout<<"票数仍然不足!";}}return OK;}pr=pr->next ;p=pr->next ;}cout<<"无此顾客,无法退票!"<<endl;//未查到顾客信息return ERROR;}//打开进度条,程序信息简介void open(){cout<<"\n\n\n\n 课程设计\n";cout<<"\n ╔-------------------------------╗";cout<<"\n ││";cout<<"\n │名称: 航空订票系统│";cout<<"\n ││";cout<<"\n │作者: 乐升平│";cout<<"\n ││";cout<<"\n │学号: 6 │";cout<<"\n ││";cout<<"\n │班级:12计科(2)班│";cout<<"\n ││";cout<<"\n │工具: VC++6.0 C++语言│";cout<<"\n ││";cout<<"\n ╚-------------------------------╝\n";system("pause");system("cls");cout<<"\n\n\n\n\n\n ****************欢迎使用航空订票系统**************\n\n\n";const int M=25;int k;cout<<"\n 〓程序加载中>>>> ";for (k=1;k<=M;k++){cout<<"■";Sleep(100);}system("cls");cout<<endl<<"【载入完成】\a"<<endl<<endl;cout<<" 前言"<<endl<<endl;cout<<" 欢迎使用『航空订票系统』,本程序实现了以下功能:\n\n";cout<<" ①录入功能:可以录入航班情况\n\n";cout<<" ②查询功能:根据客户提供的终点站名或航班号进行查询。
C语言实现-航空订票系统(飞机订票系统)
C语⾔实现-航空订票系统(飞机订票系统)开发环境:CodeBlocks开发语⾔:C实现功能:登录,订票,退票数据存储:⽂本读写涉及⽂件:相关⽂件下载:码云: GitHub:相关图⽚(仅供参考):程序是没有涉及旅⾏社的ER图:数据库:类图:⽤例图:订票顺序图:订票状态图:登录活动图:以上图⽚仅供参考,请⾃⾏斟酌程序主界⾯:源码如下:1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #include <stdbool.h>5//#include "getch.h"6 #include <conio.h>7#define MAX_Flight 508#define MAX_Passenger 209#define MAX_Order 501011 typedef struct Flight12{13char fid[20]; //航班号14char fname[20]; //航班名称15char start[10]; //起点16char end[10]; //终点17int fnum; //票数18}Flight;1920 typedef struct Passenger21{22char pid[20]; //⾝份证23char pname[10]; //姓名24char password[20]; //密码25char tell[20]; //电话26}Passenger;2728 typedef struct Order29{30char pid[20]; //⾝份证31char fid[20]; //航班号32int num; //票数33}Order;3435 Flight *FLI;36 Passenger *PAS;37 Order *ORD;3839char start[10]; //起点40char end[10]; //终点41char search_fid[50][20]; //符合条件的航班号42int search_fnum[50]; //符合条件的航班票数43int online = 0; //是否登录的变量44char online_pid[20]; //在线⽤户的⾝份证45int search_num = 0; //符合条件的航班数4647void init_sys(void); // 系统初始化48void show_flight(void); // 显⽰航班表49void start_sys(void); // 系统开始运⾏50void exit_sys(void); // 退出系统51void menu(void); // ⽣成主菜单52void login(void); // 登录53void logout(void); //⽤户登出54void passenger_info(void); //查询旅客信息55bool change_pas_info(void); //修改旅客信息56void search_start(void); // ⽣成查询页⾯57bool search(void); // 查询航班58void order_list(void); // ⽣成订单表59void del_order(void); // 退票60void clear_stdin(void); // 清除输⼊缓冲区61char* get_str(char* str,size_t len); // 获取字符串62char get_cmd(char start,char end); // 获取cmd命令 6364int main()65{66 init_sys();67 start_sys();68 exit_sys();69return0;70}7172// 系统初始化73void init_sys(void)74{75// 申请堆内存、加载数据76 FLI = calloc(MAX_Flight,sizeof(Flight));77 PAS = calloc(MAX_Passenger,sizeof(Passenger));78 ORD = calloc(MAX_Order,sizeof(Order));79 printf("system_init...\n");8081 FILE* ofrp = fopen("order.txt","r");82int i=0;83for(i=0; i<MAX_Order; i++) //读取⽂本中的数据到内存84 { int num = 0;85 num = fscanf(ofrp,"%s %s %d\n",ORD[i].pid,ORD[i].fid,&ORD[i].num);86 }8788 FILE* ffrp = fopen("flight.txt","r");89for(i=0; i<MAX_Flight; i++)90 {91int num = 0;92 num = fscanf(ffrp,"%s %s %s %s %d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,&FLI[i].fnum);93 }9495 FILE* pfrp = fopen("passenger.txt","r");96for(i=0; i<MAX_Passenger; i++)97 {98int num = 0;99 num = fscanf(pfrp,"%s %s %s %s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell);100 }101}102103// 显⽰航班表104void show_flight(void)105{106int i = 0;107for(i=0; i<MAX_Flight; i++)108 {109if(strlen(FLI[i].fid) != 0)110 {111 printf("id:%s name:%s start:%s end:%s fnum:%d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,FLI[i].fnum); 112 }113 }114}115116// 系统开始运⾏117void start_sys(void)118{119// 进⼊系统的业务流程控制120//printf("系统开始运⾏...\n");121//show_flight();122while(true)123 {124 menu();125switch(get_cmd('0','7'))126 {127case'1': search_start(); break;128case'2': order_list(); break;129case'3': del_order(); break;130case'4': passenger_info(); break;131case'5': change_pas_info(); break;132case'6': login(); break;133case'7': logout(); break;134case'0': return;135 }136 }137}138139// 系统结束140void exit_sys(void)141{142 printf("data insert...\n");143 FILE* ofwp = fopen("order.txt","w");144 printf("ready insert order.txt\n");145int i= 0;146for(i=0; i<MAX_Order; i++) //数据存储回本地147 {148int num = 0;149if(strlen(ORD[i].pid) != 0)150 {151 num = fprintf(ofwp,"%s %s %d\n",ORD[i].pid,ORD[i].fid,ORD[i].num);152//printf("insert order.txt success\n");153 }154 }155156 FILE* ffwp = fopen("flight.txt","w");157 printf("insert flight.txt\n");158for(i=0; i<MAX_Flight; i++)159 {160int num = 0;161if(strlen(FLI[i].fid) != 0)162 {163 num = fprintf(ffwp,"%s %s %s %s %d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,FLI[i].fnum); 164//printf("insert flight.txt success\n");165 }166 }167168 FILE* pfwp = fopen("passenger.txt","w");169 printf("insert passenger.txt\n");170for(i=0; i<MAX_Passenger; i++)171 {172int num = 0;173if(strlen(PAS[i].pid) != 0)174 {175 num = fprintf(pfwp,"%s %s %s %s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 176//printf("insert passenger.txt success\n");177 }178 }179// 释放内存、保存数据180free(FLI);181free(PAS);182free(ORD);183 printf("exit...\n");184}185186// ⽣成主菜单187void menu(void)188{189 printf("\n");190 printf("********************************\n");191 printf("| |\n");192 printf("| flight order system |\n");193 printf("* 1.search_flight *\n"); //查询航班194 printf("| 2.order_list |\n"); //查询订票信息195 printf("* 3.del_order *\n"); //退订196 printf("| 4.passenger_info |\n"); //查询旅客信息197 printf("* 5.change_pas_info *\n"); //修改旅客信息198 printf("| 6.login |\n"); //⽤户登录199 printf("* 7.logout *\n"); //⽤户登出200 printf("| 0.exit_sys |\n"); //退出系统201 printf("| |\n");202 printf("********************************\n");203//printf("\n");204}205206// 登录207void login(void)208{209if(online == 0) //如果没有登录210 {211int i=0;212int time = 0;213while(time<3)215char entry_pid[20]; //临时变量⾝份证216char entry_pw[20]; //临时变量密码217 printf("please login!\n");218 printf("please entry pid:");219 get_str(entry_pid,20);220 printf("please entry password:");221 get_str(entry_pw,20);222for(i=0; i<MAX_Passenger; i++)223 {224if(strlen(entry_pid)==0 || strlen(entry_pw)==0)225 {226 printf("pid or password can't be empty\n");227 time++;228break;229 }230else if(strcmp(PAS[i].pid,entry_pid) == 0 && strcmp(PAS[i].password,entry_pw) == 0) 231 {232 printf("login success!\n");233 strcpy(online_pid,entry_pid);234 online = 1;235return;236 }237else if(i==MAX_Passenger-1)238 {239 printf("pid or password error\n");240 time++;241 }242 }243 }244 online = -1;245 printf("you have been locked,you can use this system now\n");246 }247else if(online ==1)248 {249 printf("you have been login\n");250 }251else252 {253 printf("you have been locked,you can use this system now\n");254 }255256}257258// ⽤户登出259void logout(void)260{261if(online == 1) //如果已经登录262 {263 online = 0;264 printf("logout success\n");265 }266else if(online == -1)267 {268 printf("you have been locked,you can use this system now\n");269 }270else271 {272 printf("you have not login\n");273 }274}275276// 查询旅客信息277void passenger_info(void)278{279if(online == 1) //如果已经登录280 {281//printf("online_pid:");282//puts(online_pid);283int i = 0;284for(i=0; i<MAX_Passenger; i++)286if(strcmp(online_pid,PAS[i].pid)==0)287 {288 printf("pid:%s, pname:%s, password:%s, tell:%s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 289break;290 }291 }292 }293else if(online == -1)294 {295 printf("you have been locked,you can use this system now\n");296 }297else298 {299 printf("you have not login\n");300 }301}302303//修改旅客信息304bool change_pas_info(void)305{306if(online == 1) //如果已经登录307 {308 printf("your old info:\n");309int i = 0;310for(i=0; i<MAX_Passenger; i++)311 {312if(strcmp(online_pid,ORD[i].pid)==0)313 {314 printf("pid:%s, pname:%s\npassword:%s, tell:%s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 315break;316 }317 }318char new_pid[20];319char new_pname[10];320char new_password[20];321char new_tell[20];322 printf("please entry new pid:");323 get_str(new_pid,20);324 printf("please entry new pname:");325 get_str(new_pname,10);326 printf("please entry new password:");327 get_str(new_password,20);328 printf("please entry new tell:");329 get_str(new_tell,20);330 strcpy(PAS[i].pid,new_pid);331 strcpy(PAS[i].pname,new_pname);332 strcpy(PAS[i].password,new_password);333 strcpy(PAS[i].tell,new_tell);334 printf("change success\n");335 }336else if(online == -1)337 {338 printf("you have been locked,you can use this system now\n");339 }340else341 {342 printf("you have not login\n");343 }344}345346// 开始查询航班347void search_start(void)348{349if(search())350 {351 printf("1.order\n");352 printf("0.back\n");353char cmd = get_cmd('0','1');354if(cmd == '0')355 {356return;357//start_sys();358 }359else360 {361char fid[20]; // 选择的航班号362if(online == 1) // 如果已经登录363 {364 printf("please entry fid:");365 get_str(fid,20);366if(0 == strlen(fid))367 {368 printf("fid is empty\n");369 }370int i = 0;371for(i=0; i<search_num; i++)372 {373//printf("fid:%s s_fid:%s num:%d\n",fid,search_fid[i],search_fnum[i]); 374if(strcmp(fid,search_fid[i])==0 && search_fnum[i]>0) //查询到对应航班375 {376 printf("order success\n");377int j=0;378for(j=0; j<MAX_Flight; j++) // 遍历航班表379 {380if(strcmp(fid,FLI[j].fid)==0)381 {382 FLI[j].fnum--; //票数减1383break;384 }385 }386int k=0;387for(k=0; k<MAX_Order; k++) // 遍历订票表388 {389//printf("ready insert...\n");390if(strlen(ORD[k].pid) == 0) // 在空位置插⼊数据391 {392 strcpy(ORD[k].pid,online_pid); // 插⼊当前⽤户⾝份证393 strcpy(ORD[k].fid,search_fid[i]); // 插⼊当前选择的航班号394 ORD[k].num = 1;395 printf("insert_to_order success\n");396break;397 }398 }399return;400 }401else if(strcmp(fid,search_fid[i])==0 && search_fnum[i] == 0)402 {403 printf("no ticket\n");404 search_start();405 }406else if(i==MAX_Flight-1)407 {408 printf("don't have this fid\n");409 search_start();410 }411 }412 }413else if(online == -1)414 {415 printf("you have been locked,you can use this system now\n");416 }417else418 {419 login();420 }421 }422 }423}424425// 查询航班426bool search(void)427{428 printf("start: \n");429 get_str(start,10);430 printf("end: \n");431 get_str(end,10);432int i=0;433 search_num = 0;434for(i=0; i<MAX_Flight; i++)435 {436if(strlen(start) == 0 || strlen(end) == 0)437 {438 printf("start or end can't be empty\n");439return false;440 }441if(strcmp(FLI[i].start,start)==0 && strcmp(FLI[i].end,end)==0)442 {443 printf("fid:%s, ticket_num:%d\n",FLI[i].fid,FLI[i].fnum);444 strcpy(search_fid[search_num],FLI[i].fid);445 search_fnum[search_num] = FLI[i].fnum;446//printf("search_fid[%d]:%s, search_fun[%d]:%d\n",search_num,search_fid[search_num],search_num,search_fnum[search_num]); 447 ++search_num;448 }449if(0 == search_num && i == MAX_Flight-1)450 {451 printf("no flight\n");452return false;453 }454if(search_num > 0 && i == MAX_Flight-1)455 {456//show_flight();457return true;458 }459 }460}461462// 输出订单信息463void order_list(void)464{465if(online == 1)466 {467int i=0;468for(i=0; i<MAX_Order; i++)469 {470if(strcmp(online_pid,ORD[i].pid)==0)471 {472//printf("online_pid:%s\n",online_pid);473 printf("fid:%s, pid:%s, ticket:%d\n",ORD[i].fid,ORD[i].pid,ORD[i].num);474 }475 }476 }477else if(online == -1)478 {479 printf("you have been locked,you can use this system now\n");480 }481else482 {483 login();484 }485}486487// 删除订单488void del_order(void)489{490if(online == 1)491 {492char fid[20];493 printf("order_list:\n");494 order_list();495 printf("please entry del_order fid:");496 get_str(fid,20);497int i=0;498for(i=0; i<MAX_Order; i++)499 {500if(strlen(fid)==0) //判空501 {502 printf("del_order fid can't be empty\n");503return;504 }505if(strcmp(fid,ORD[i].fid)==0)506 {507 memset(ORD[i].pid,'\0',sizeof(ORD[i].pid));508int j=0;509for(j=0; j<MAX_Flight; j++)510 {511if(strcmp(fid,FLI[j].fid)==0)512 {513 FLI[j].fnum++; // 返还飞机票514break;515 }516 }517 printf("delete success\n");518return;519 }520 }521 }522else if(online == -1)523 {524 printf("you have been locked,you can use this system now\n"); 525 }526else527 {528 login();529 }530531}532533// 清理输⼊缓冲区534/*void clear_stdin(void)535{536 stdin->_IO_read_ptr = stdin->_IO_read_end;//清理输⼊缓冲区537}538*/539540// 读取输⼊字符串541char* get_str(char* str,size_t len)542{543if(NULL == str)544 {545 puts("empty ptr!");546return NULL;547 }548549char *in=fgets(str,len,stdin);550551 size_t cnt = strlen(str);552if('\n' == str[cnt-1])553 {554 str[cnt-1] = '\0';555 }556else557 {558 scanf("%*[^\n]");559 scanf("%*c");560 }561562//clear_stdin();563564return str;565}566567// 获取cmd命令568char get_cmd(char start,char end)569{570//clear_stdin();571572 printf("please entry cmd:"); 573while(true)574 {575char val = getch();576if(val >= start && val <= end) 577 {578 printf("%c\n",val);579return val;580 }581 }582 }。
航空订票系统代码
cin> >p->Priee[0];
eout<<"8.请设定二等舱的价格:"<<endl;
cin> >p->Price[1];
eout<<"9.请设定三等舱的价格:"<<endl;
cin> >p->Price[2]; p->ReplName=new Replace; p->CustName=new Customer; p->CustName-> next=NULL; p->ReplName-> next=NULL; p->ReplaeePas=0;
cout<<e ndl;
cout<<e ndl;
break;
}
}
}
}
void FlightBuyticket() <<Cus2->SeatNum++<<"";
/}\
cout<<e ndl;
if (q->CustName-> next==NULL)
/{\
Cusrear=q->CustName;
Cusrear- >n ext=Cus2;
#in elude<>
#in elude <> void Flightl nsert();设定起点站名:"<<e ndl;
cin> >p_>From;
航空售票系统+C++课程设计源代码教学文稿
航空售票系统+C++课程设计源代码#include <string.h>#include <iostream.h>#define M 5//每种飞机票的总数目#define N 3//飞机票的总数目class Plane{private:char name[40];//终点站名int number;//航班号int Number;//飞机号int week;//星期几飞行int day;//日期int left;//余票额int n;//与数组flag一起确定客户订票状态public:int flag[20];//订票状态数组,-1为预订票,1为已定票,0为初始化状态Plane()//构造函数{name[0]='\0';number=0;Number=0;week=0;day=0;left=M;n=0;//数组从0开始计数for(int i=0;i<20;i++)flag[i]=0;}void init()//初始化每种飞机票{cout<<"请输入终点站名:";cin>>name;cout<<"请输入航班号:";cin>>number;cout<<"请输入飞机号:";cin>>Number;cout<<"请输入星期几飞行:";cin>>week;cout<<"请输入航班的日期:";cin>>day;}~Plane(){};//析构函数char *getname(){return name;}//获得终点站名int getnumber(){return number;}//获得航班号int getNumber(){return Number;}//获得飞机号int getweek(){return week;}//获得星期几飞行int getday(){return day;}//获得日期int getleft(){return left;}//获得余票额int getn(){return n;}//获得旅客数目void inleft(int n){left=left+n;}//余票额增加函数void deleft(int n){left=left-n;}//余票额减少函数void inn(){n++;}//旅客数目增加函数};Plane pl[N];int showmenu();//菜单函数void start();//初始化函数void query();//查询函数void make();//订票函数void back();//退票函数int main(){cout<<"这是民航售票处的计算机系统程序"<<endl;start();while(1){int choice;choice=showmenu();switch(choice){case 1:query();break;case 2:make();break;case 3:back();break;case 0:return 0;default:cout<<"你敲错了!\n";}}return 0;}int showmenu(){int ch;cout<<endl;cout<<"请选择你要执行的功能"<<endl;cout<<"1:查询航线"<<endl;cout<<"2:承办订票业务"<<endl;cout<<"3:承办退票业务"<<endl;cout<<"0:退出程序的运行"<<endl;cin>>ch;return ch;}void start(){for(int i=0;i<N;i++){pl[i].init();cout<<endl;}}void query(){int i,num=0;char name[40];cout<<endl;cout<<"请输入终点站名:";cin>>name;for(i=0;i<=N;i++)if(strcmp(name,pl[i].getname())==0){num++;cout<<"航班号:"<<pl[i].getnumber()<<endl;cout<<"飞机号:"<<pl[i].getNumber()<<endl;cout<<"星期:"<<pl[i].getweek()<<"飞行"<<endl;cout<<"航班日期:"<<pl[i].getday()<<endl;cout<<"余票额:"<<pl[i].getleft()<<endl;break;}if(num==0)cout<<"没有此航班"<<endl;}void make(){int number,n,sitnumber,nu,ch,num=0;cout<<"请输入航班号:";cin>>number;cout<<"请输入订票数额:";cin>>n;for(int i=0;i<N;i++)if(number==pl[i].getnumber()){num++;if(n<=pl[i].getleft()){cout<<"此航班有票"<<endl;pl[i].deleft(n);pl[i].inn();pl[i].flag[pl[i].getn()]=1;for(i=0;i<n;i++){cout<<"座位号";cin>>sitnumber;}}else{cout<<"余票额少于订票额,请重新输入订票数额,"<<"订票数额应该少于或等于"<<pl[i].getleft();cin>>nu;if(nu<=pl[i].getleft()){cout<<"此航班有票"<<endl;pl[i].deleft(nu);pl[i].inn();pl[i].flag[pl[i].getn()]=1;for(i=0;i<N;i++){cout<<"座位号";cin>>sitnumber;}}else{cout<<"是否需要预约"<<endl;cout<<"是(1) 否(2)"<<endl;cin>>ch;switch(ch){case 1:pl[i].inn();pl[i].flag[pl[i].getn()]=-1;break;case 2:break;default:cout<<"你敲错了!"<<endl;}}}}if(num==0)cout<<"没有此航班"<<endl;}void back(){int number,day,n,nu,sitnumber,num=0;//航班号,日期,退票数目,订票数目,座位号,标志量cout<<"请输入日期:";cin>>day;cout<<"请输入航班:";cin>>number;for(int i=0;i<N;i++)if((day==pl[i].getday())&&(number==pl[i].getnumber()))//日期与航班是否满足{num++;//日期与航班满足cout<<"输入退票数目";cin>>n;cout<<"退票成功"<<endl;pl[i].inleft(n);//该种飞机票增加,即已退票for(int j=0;j<=pl[i].getn();j++)//顺序查询客户订票状态{if(pl[i].flag[j]==-1)//客户是否为预定状态{cout<<"有预约订票,请输入订票数额:";cin>>nu;if(nu<=pl[i].getleft())//余票额是否满足要求{cout<<"此航班有票"<<endl;pl[i].flag[j]=1;cout<<"订票成功"<<endl;pl[i].deleft(nu);for(int k=0;k<nu;k++){cout<<"座位号"<<" ";cin>>sitnumber;}cout<<"余票额为"<<pl[i].getleft()<<endl;}}elsecout<<"没有预约订票!"<<"余票额为"<<pl[i].getleft()<<endl;}}if(num==0)cout<<"没有此票"<<endl;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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();}。