飞机订票系统

来源:互联网 发布:js按钮点击事件 编辑:程序博客网 时间:2024/06/11 15:38

#include<stdio.h> //标准输入、输出头文件
#include<string.h>    //包含字符串函数处理头文件
#include<stdlib.h>     //包含动态存储与释放函数头文件
#include<iostream.h>    //基本输入输出流
#define N 10000
//===========================================储存飞机航班信息的结构体的定义===========================================
struct air         //定义结构体数组
{
int num;                  //航班号
char start[20];           //起始站  
char over[20];            //终点站
char time[20];            //起飞时间
int count;                //飞机票数(可订)
}s[N];

//===================================================================================================================
char z[20]="ldl";              //密码设置
int i;
int m=0;                 //航班信息个数
//=============================================函数声明部分===============================================================
void input();    //输入航班信息
void print();    //输出航班信息
void search();   //查找航班信息
void shanchu(); //删除航班信息
void dingpiao(); //订票信息
void tuipiao(); //退票信息
void xiugai();   //修改信息
//===========================================================================================================================

//====================================================主函数(菜单选择项)===================================================
void main()
{

int j;
cout<<"                       欢迎进入陈军飞机订票系统 "<<endl;
cout<<"================================================================================";
    do
{
cout<<"    1.输入航班信息             "<<endl;
cout<<"    2.浏览航班信息             "<<endl;
cout<<"    3.修改航班信息             "<<endl;
cout<<"    4.查找航班信息             "<<endl;
cout<<"    5.删除航班信息             "<<endl;
cout<<"    6.订票信息                 "<<endl;
cout<<"    7.退票信息                 "<<endl;
cout<<"    0.退出                     "<<endl;
cout<<"================================================================================ "<<endl;
cout<<"请在0-7中选择以回车键结束:";
cin>>j;
if(j==1) input();    //调用输入模块
if(j==2) print();    //调用打印模块
if(j==3) xiugai();   //调用修改模块
if(j==4) search();   //调用查找模块
if(j==5) shanchu();  //调用删除模块
if(j==6) dingpiao(); //调用订票模块
if(j==7) tuipiao();  //调用退票模块
if(j==0) break;
}while(j!='0');     //判断结束
cout<<"谢谢使用,再见! "<<endl;
}//主函数结束 ===========================================================================================================

//=============================================输入模块程序==============================================================

void input()
{
char f[20];   

int y;
cout<<"请输入密码并以回车键结束: ";
cin>>f;           //读取密码
if(strcmp(f,z)==0)
{
  cout<<"请依次输入航班信息: "<<endl;
 
  cout<<"--------------------------------------------------------------------------"<<endl;
  for(i=0;i<N;i++)
  {
   cout<<"请输入航班号: "<<endl;
   cin>>s[i].num;     //读取航班号
   cout<<"请输入起始站: "<<endl;
   cin>>s[i].start;//读取起始站
   cout<<"请输入终点站: "<<endl;
   cin>>s[i].over;//读取终点站
   cout<<"请输入时间: "<<endl;
   cin>>s[i].time;//读取时间
   cout<<"请输入机票数(机票数为0结束输入): "<<endl;
   cin>>s[i].count;//读取机票数
   m++;
   cout<<"第"<<m<<"个信息已经输完是否继续?1继续, 0结束"<<endl;
   cin>>y;
   if(y==0) break;
   else continue;
  }
}
else
cout<<"输入密码错误!请检查您的密码是否正确!谢谢!再见! "<<endl;
}
//=====================================================================================================================

//================================================================输出模块============================
void print()
{
 for(int aa=0;aa<m;aa++)
 {
  cout<<"航班号:/t"<<s[aa].num<<"/t起始站:/t"<<s[aa].start<<"/t终点站:/t"<<s[aa].over<<"/t时间:/t"<<s[aa].time<<"/t机票数:/t"<<s[aa].count<<endl;
 }
}

 

 

 


  
void search()//=====================================================查询模块============================================
{
char name1[20];  //用来读取起始站名
char name2[20];   //用来读取终点站名
char ii[20];
int n,no;     //n用来读取输入信息     no代表航班号
do
{
  cout<<"请选择查找方式: "<<endl;//打印查询方式菜单
  cout<<"1.按航班号查找 "<<endl;
  cout<<"2.按终点站查找 "<<endl;
  cout<<"3.按航线查找 "<<endl;
  cout<<"0.返回 "<<endl;
  cout<<"请在0-3中选择: "<<endl;
  cout<<"按其他键以回车键结束返回主菜单: ";
  cin>>n;//读取查找方式
  if(n==0)
  break;
  switch(n)
  {
   case 1:
   cout<<"请输入航班号: "<<endl;
   cin>>no;//航班号
   break;
   case 2:
   cout<<"请输入终点站名称: "<<endl;
   cin>>name2;//读取终点站
   break;
   case 3:
   cout<<"请输入起始站名称: "<<endl;
   cin>>name1;//读取起始站
   cout<<"请输入终点站名称: "<<endl;
   cin>>name2;//终点站
   break;
  }

   for(i=0;i<m;i++)
   { 
      if(strcmp(s[i].over,name2)==0)//按终点站 判断输出条件
   {
       cout<<" 查找航班信息成功! "<<endl;
       cout<<"航班号/t"<<s[i].num<<"/t起始站:/t"<<s[i].start<<"/t终点站:/t"<<s[i].over<<"/t时间:/t"<<s[i].time<<"/t机票数:/t"<<s[i].count<<endl;
       break;
   }
  
      if(strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)//按终点站  起始站判断输出条件
   {
       cout<<" 查找航班信息成功! "<<endl;
       cout<<"航班号/t"<<s[i].num<<"/t起始站:/t"<<s[i].start<<"/t终点站:/t"<<s[i].over<<"/t时间:/t"<<s[i].time<<"/t机票数:/t"<<s[i].count<<endl;
       break;
   }

      if(s[i].num==no)//按航班号判断输出条件
   {
       cout<<" 查找航班信息成功! "<<endl;
       cout<<"航班号/t"<<s[i].num<<"/t起始站:/t"<<s[i].start<<"/t终点站:/t"<<s[i].over<<"/t时间:/t"<<s[i].time<<"/t机票数:/t"<<s[i].count<<endl;
       break;
   }
 
   }
no=0;//将航班号赋值为0
cout<<"没有您需要的信息或查找完毕: "<<endl;
cout<<"是否继续查找?请键入y或n以回车键结束 "<<endl;
cin>>ii;
}while(strcmp(ii,"y")==0);//判断结束
}

 

 

void shanchu()//=======================================删除模块=============================================#############====
{
char name1[20];
char name2[20];
char ii[20];//读取是否继续信息
char f[20];//设置密码
int no,n;
cout<<"请输入密码并以回车键结束: "<<endl;
cin>>f;//读取密码
if(strcmp(f,z)==0)    //判断密码是否正确
{
do
   {
    cout<<"请选择删除以方式回车键结束: "<<endl;//打印删除方式菜单
    cout<<"*1.按航班号删除 "<<endl;
    cout<<"*2.按航线删除 "<<endl;
    cout<<"*0.返回 "<<endl;
    cout<<"请在0-2中选择以回车键结束: "<<endl;
    cin>>n;//读取删除方式
    if(n==0)
     break;    //跳出循环
 int aa;
    switch(n)
    {
    case 1:
     cout<<"请输入航班号: "<<endl;
     cin>>no;//读取航班号
     for(aa=0;aa<m;aa++)
  {
   if(s[aa].num==no)
   {
    for(int xx=aa;xx<m-1;xx++)
    {s[xx]=s[xx+1];}
    m=m-1;
    break;
   }
  }
     break;//跳出循环
    case 2:
     cout<<"请输入起始站 名称: "<<endl;
     cin>>name1;//读取起始站
     cout<<"请输入终点站名称: "<<endl;
     cin>>name2;//读取终点站
         for(aa=0;aa<m;aa++)
  {
   if(strcmp(s[aa].start,name1)==0&&strcmp(s[aa].over,name2)==0)
   {
    for(int xx=aa;xx<m-1;xx++)
    {s[xx]=s[xx+1];}
    m=m-1;
    break;
   }
  }

     break;//跳出循环
    }
       
    cout<<"是否继续删除 "<<endl;    
    cout<<"请键入y或n以回车键结束 "<<endl;
    cin>>ii;//读取是否继续信息
   
    if(!strcmp(ii,"y")) //判断是否继续删除   
     cout<<"请按任意键以回车键结束返回上层菜单: "<<endl;
    break;
   }while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); //判断结束
}
else
cout<<"对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见! "<<endl;
}

 

 

 


void dingpiao()//==================================================订票模块==================================================
{
int n;
char b[10];

search();//调用查询模块
do
{
cout<<"请输入您要订的机票数以回车键结束: "<<endl;
cin>>n;//读取所订机票数
if(n<0)
{
   cout<<"请输入有效的机票数! "<<endl;//判断机票数是否出错
   break;
}
   if(s[i].count!=0&&s[i].count>=n)//判断是否出错
{
   s[i].count=s[i].count-n;
  
   cout<<"订票成功! "<<endl;
   break;
}
if(s[i].count<n)//判断是否出错
{
   cout<<"请输入有效的机票数: "<<endl;
      break;
}
cout<<"是否继续? 请输入y或n以回车键结束: "<<endl;//判断是否继续订票
cin>>b;
}while(!strcmp(b,"y"));//判断结束

}

 

void tuipiao()//=====================================================退票模块==============================
{
int n;
char a[10];

search();//调用查询模块
do
{
cout<<"请输入您要退的机票数目: "<<endl;
cin>>n;//输入所退票数
if(n<0) //判断票数是否有效
   cout<<"请输入有效的机票数! "<<endl;
s[i].count=s[i].count+n;

cout<<"退票成功! "<<endl;
cout<<"是否继续? 请键入y或n以回车键结束: "<<endl;//判断是否继续退票
cin>>a;
}while(!strcmp(a,"y"));//判断并跳出循环
getchar();
}

 


void xiugai()   //================================================修改模块================================
{
struct xiu    //定义结构体
{
int no;
char name1[20];
char name2[20];
char time[20];
int count;
}x[1];
char j[10];
char f[10];//设置密码
int n;
cout<<"请输入密码并以回车键结束: "<<endl;
cin>>f;//读取密码
if(strcmp(f,z)==0)//判断是否出错
{

do
{
   cout<<"请选择修改方式: "<<endl;
   cout<<"*1,按航班号修改: "<<endl;
   cout<<"*2,按航线修改: "<<endl;
   cout<<"请在1---2中修改以回车键结束: "<<endl;
   cin>>n;//读取修改方式
   switch(n)
   {
   case 1:cout<<"请输入航班号: "<<endl;
    cin>>x[0].no;//读取航班号
    break;
   case 2:cout<<"请输入起始站: "<<endl;
    cin>>x[0].name1;//读取起始站
    cout<<"请输入终点站: ";
    cin>>x[0].name2;//读取终点站
    break;
   }
   for(i=0;i<m;i++)
   {   
    if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0)//判断输出条件
    {
     cout<<"航班号/t"<<s[i].num<<"/t起始站:/t"<<s[i].start<<"/t终点站:/t"<<s[i].over<<"/t时间:/t"<<s[i].time<<"/t机票数:/t"<<s[i].count<<endl;
     break;
    }
       if(s[i].num==x[0].no)//判断输出条件
    {
     cout<<"航班号/t"<<s[i].num<<"/t起始站:/t"<<s[i].start<<"/t终点站:/t"<<s[i].over<<"/t时间:/t"<<s[i].time<<"/t机票数:/t"<<s[i].count<<endl;
     break;
    }
   }
   x[0].no=0;            //将结构体中的号为零
   cout<<"请输入新航班号 、起始站 、终点站 、时间、机票数: "<<endl;
   cin>>x[0].no>>x[0].name1>>x[0].name2>>x[0].time>>x[0].count;//定义输入格式
      s[i].num=x[0].no;//替换航班号
      strcpy(s[i].start,x[0].name1);//替换其始站
            strcpy(s[i].over,x[0].name2);//替换终点站
            strcpy(s[i].time,x[0].time);//替换时间
      s[i].count=x[0].count;//替换机票数
  
      cout<<"是否继续?请键入y或n以回车键结束: "<<endl;
      cin>>j;
}while(strcmp(j,"y")==0); //判断结束
}
else
cout<<"对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见! "<<endl;
}

原创粉丝点击