数据结构课程设计
{
char *MenuItem[]={\│ 航空客运订票系统菜单 │\│ │[1]. 航 线 管 理 │ │\
\│ │[2]. 订 票 办 理 │ │\│ │[3]. 退 票 办 理 │ │\│ │[4]. 乘 客 管 理 │ │\ \│ │[5]. 系 统 离 开 │ │\ return ModelMenu(MenuItem,6); }
//---------------是否继续函数--------------- char Continue() {
int i; char answer; while(1) {
cout<<\ for(i=0;i<15;i++) cout<<\─\
cout<<\是否继续(Y/N)?\ cin>>answer;
if(answer=='y'||answer=='Y') return 'y';
else if(answer=='n'||answer=='N') return 'n'; else
16
数据结构课程设计
cout<<\输入错误,请重新输入!\ } }
//---------------操作出错函数--------------- void ErrorMess() {
cout<<\对不起,没有相关菜单项,按任意键继续...\ getch(); }
//-----------------系统退出----------------- int ExitSystem() {
char answer;
cout<<\你确定是否真要离开系统吗(Y/N)?\ cin>>answer;
if(answer=='y'||answer=='Y') return 1; else
return 0; }
//--------------操作提示函数------------- void prefix(char *Item) {
int i; system(\
17
数据结构课程设计
cout<<\当前操作:\ cout<<\ for(i=0;i<15;i++) cout<<\─\ cout< //--------------航线查找函数------------- //Find_Line()为重载函数 int Find_Line(PFlight L,char *key)//引用调用 { int flag=0; //该标志位0表示未找到相关信息,反之即找到,以下标志位同理 Flight *p1; p1=L; //赋航线首地址 if(p1==p2) //首航线不作比较 return flag; while(p1!=p2&&p1!=NULL) //本航班号不纳入比较范围,否则会一直提示航线不唯一 { if(strcmp(p1->Flight_No,key)==0) { flag=1; break; } p1=p1->Next;//指向下一航班结点 18 数据结构课程设计 } return flag; } int Find_Line(PFlight L,char *key,PFlight &p2,int &Flight_No)//引用调用 { int flag=0; //该标志位0表示未找到相关信息,反之即找到 Flight *p1; p1=L; //赋航线首结点 while(p1!=NULL) { if(strcmp(p1->Flight_No,key)==0)//不包括当前航线 { flag=1; p2=p1; break; } p1=p1->Next; //指向下一航班结点 if(p1!=NULL) //遇结束符不作统计范围 Flight_No++; } return flag; } //-----------------航线添加函数------------- void Line_Add() { 19 数据结构课程设计 Flight *p1; //建立临时航线结点 while(1) { if(Head==NULL)//航线为空 { p1=p2=new Flight; //建立首个航线 Head=p2; } else { p1=new Flight; //建立航线结点 p2->Next=p1; //前一航线结点指向当前航班结点 p2=p1; //保留当前航班结点地址 } prefix(\航线增设\ cout<<\请输入终点站名:\ cin>>p2->Des_Name; while(1) //数据合法性检验 { cout<<\请输入航班号(唯一):\ cin>>p2->Flight_No; if(Find_Line(Head,p2->Flight_No)) //存在航班号 cout<<\输入的航班号不唯一!\ else break; 20