毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++航空客运订票系统 第6页

更新时间:2008-6-22:  来源:毕业论文

C++航空客运订票系统 第6页

  cout<<"\n\t\t\t      "<<p2->Name<<endl;

                cout<<"\n\t\t\t  号:"<<p1->Flight_No<<endl;

                cout<<"\n\t\t\t  号:"<<p1->Plane_No<<endl;

                cout<<"\n\t\t\t  量:"<<p2->Amount<<endl;

                cout<<"\n\t\t\t  站:"<<p1->Des_Name<<endl;

                cout<<"\n\t\t\t  舱位等级:"<<p2->Rank<<endl;

          if(p2->Amount>1)

            cout<<setw(5)<<"多票"<<" "<<endl;

          else

            cout<<setw(5)<<"无座"<<" "<<endl;

          p2=p2->Next;

          if(p2!=NULL||p1->Next!=NULL) cout<<"\t "<<endl;

        }

    }

    p1=p1->Next;

  }  

  cout<<"\t "<<endl;

  cout<<"\n\t\t\t   按任意键返回子菜单..."<<endl;

  getch();

}

void Sub3Menu()//退票办理函数

{

  int Flight_No=0,flag=0;     //记录满足条件的航线的定票结点

  Flight *p1;           //记下满足条件的航线结点地址

  Customer *p2,*p4;         //临时性定票乘员结点

  Replace *p3,*p5;         //临时性候补乘员结点

  char answer[7],name[7];     //用户输入的航班数据

  int tag=0;            //若第二乘客满足条件,则它的首地址会发生冲突,注意此处

  int Seat_No;           //记录座位号

  if(Empty_Flight())         //航班线为空

    return;

  prefix("退票办理");

  if(IsEmpty)

  {

    cout<<"\n\n\t\t   对不起,系统中暂时无定票乘客..."<<endl;

    getch();

    return;

  }

  while(1)

  {

    flag=0;

    tag=0;

    Flight_No=0;

    prefix("退票办理");

    cout<<"\n\t\t\t   请输入航班号:";

    cin>>answer;

    if(Find_Line(Head,answer,p1,Flight_No))     //航线存在

    {

        p2=p1->CustName;     //指向该航线的乘客名单的首地址

        cout<<"\n\t\t\t   请输入您的姓名:";

        cin>>name;

        if(p2==NULL)     //该航线无定票乘客

        {

          cout<<"\n\t\t   很抱歉,该航线暂时无人定票,无法进行退票操作."<<endl;

          if(Continue()=='n')//是否继续操作

            return;

          else

            continue;   //提前结束本次循环,重新进行退票处理

        }

        else    

          while(p2!=NULL)//查找有无此乘客名

          {

            if(strcmp(p2->Name,name)==0)//此外括号不能省略,否则功能会转变

            {

                if(p2==p1->CustName)   //若为首位乘客满足  

                {

                  prior=p1->CustName; //记录指针

                  Seat_No=p2->Seat_No;

                  flag=1;

                  break;

                }

            }

         else if(p2->Next!=NULL)//记录满足航线的的前结点地址

            {

                if(strcmp(p2->Next->Name,name)==0)

                {

                  tag=1;         //特别注意此处

                  prior=p2;     //记录满足定乘客的前一地址,以作删除操作

                  Seat_No=p2->Next->Seat_No;

                  flag=1;

                  break;

                }

            }

            p2=p2->Next; //指向下一乘客结点

          }//while  

          if(!flag)

            cout<<"\n\t\t   很抱歉,该航线无此乘客,请查证后再操作..."<<endl;

    }//存在该航线

    else

        cout<<"\n\t\t   对不起,没有该次航班,按任意继续操作."<<endl;   //没有该次航线

    if(flag)

    {

        if(prior==p1->CustName&&!tag)   //首结点满足条件且一个乘客,则该航线定票乘客置空

        {

          if(prior->Next==NULL)     //仅一乘客,头指针置空

          {

            p1->Free_Amount+=prior->Amount;

            p1->CustName=NULL;

          }

          else  

          {

            p1->Free_Amount+=prior->Next->Amount;

            p1->CustName=prior->Next; //指向下一乘客结点

          }

        }

        else

        {

          p1->Free_Amount+=prior->Next->Amount;

        if(Customer_Count==0)

          IsEmpty=1;

    }

    if(flag)//存在退票操作

    {

       p3=p1->ReplName;

       while(p3!=NULL)

       {

        if(p3->Amount<=p1->Free_Amount)//候补乘客的定票数小于或等于剩余票数

        {

          cout<<"\n\t\t   候补乘员"<<p3->Name<<"已经列入定票乘客名单中...\n"<<endl;

          p4=Custp1[Flight_No]->Next=new Customer;

            IsReplace=1;

          if(p1->ReplName==p3)

          {

              if(p1->ReplName->Next==NULL)

                p1->ReplName=NULL;    //删除

              else

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

C++航空客运订票系统 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。