⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flight.cpp

📁 航空客运订票系统航线管理 订票办理 退票办理 乘客管理
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include "head.h"

//-------启动画面函数----------
void Cover()   
{   
  char line[]={"程序读取中 请耐心等待..."};
  char bar[]={"...."};
  int i,j,k=0,x=0,y=0;   
  for(i=1;i<=strlen(line)/2;)
  {
    system("cls");
    for(j=0;j<9;j++)   //改变行坐标
        cout<<endl;
    for(j=0;j<(75-strlen(line))/2;j++) //改变列坐标
        cout<<" ";
    for(j=1;j<=i;j++)         //进度显示器
        cout<<"■";
    for(x=strlen(line)/2;x>i;x--)
        cout<<"□";
    if(k==4)
        i++;
    cout<<endl;   
    for(j=0;j<(75-strlen(line))/2;j++)   //行坐标定位
        cout<<" ";
    cout<<line;         //输出线条
    cout<<endl;
    for(j=0;j<(65-strlen(bar))/2;j++)
        cout<<" ";
    cout<<(i-1)*10<<"% Loading";
    cout.write(bar,k);
    cout<<endl;
    for(j=0;j<10;j++)
        cout<<endl;
    for(j=0;j<24;j++)
        cout<<" ";
    cout<<"程序设计:05计本一班曾鸣 李展 赖梁琳"<<endl;
    for(j=0;j<24;j++)
        cout<<" ";
    for(j=0;j<=18;j++)
        cout<<"─";
    cout<<endl;
    for(j=0;j<10000000;j++);//延时效果
    k++;
    if(k>4)
        k=0;
  }
}
//---------------菜单模板函数---------------
char ModelMenu(char *s[],int Itemcount)
{
    int i;
    char answer;
    system("cls");
    cout<<"\n\n";
    cout<<"\t\t\t┌──────────────┐"<<endl;
    cout<<"\t\t\t"<<s[0]<<endl;
    cout<<"\t\t\t├──────────────┤"<<endl;
    cout<<"\t\t\t│              │"<<endl;
    cout<<"\t\t\t│ ┌──────────┐ │"<<endl;
    for(i=1;i<Itemcount;i++)
    {
        cout<<"\t\t\t"<<s[i]<<endl;
        if(i+1!=Itemcount)
    cout<<"\t\t\t│ ├──────────┤ │"<<endl;
    }
    cout<<"\t\t\t│ └──────────┘ │"<<endl;
    cout<<"\t\t\t└──────────────┘"<<endl;   
    cout<<"\t\t\t 请输入菜单项前的操作代码:";
    cin>>answer;
    return answer;
}
//---------------主菜单函数---------------
char MainMenu()
{
  char *MenuItem[]={"│  航空客运订票系统菜单  │","│ │[1]. 航 线 管 理    │ │",\
    "│ │[2]. 订 票 办 理    │ │","│ │[3]. 退 票 办 理    │ │","│ │[4]. 乘 客 管 理    │ │",\
  "│ │[5]. 系 统 离 开    │ │"};
  return ModelMenu(MenuItem,6);
}
//---------------是否继续函数---------------
char Continue() 
{
  int i;
  char answer;
  while(1)
  {   
    cout<<"\n\t\t   ";
    for(i=0;i<15;i++)
        cout<<"─";
    cout<<"\n\t\t\t   是否继续(Y/N)?";
    cin>>answer;
    if(answer=='y'||answer=='Y')
        return 'y';
    else if(answer=='n'||answer=='N')
        return 'n';
    else
          cout<<"\t\t\t 输入错误,请重新输入!"<<endl;
  }
}
//---------------操作出错函数---------------
void ErrorMess()
{
  cout<<"\n\t\t\t对不起,没有相关菜单项,按任意键继续..."<<endl;
  getch();
}
//-----------------系统退出-----------------
int ExitSystem()
{
  char answer;
  cout<<"\n\t\t\t 你确定是否真要离开系统吗(Y/N)?";
  cin>>answer;
  if(answer=='y'||answer=='Y')
  {
	  char line[]={"友情提示 不要熬夜 请注意休息..."};
	  char bar[]={"...."};
	  int i,j,k=0,x=0,y=0;   
	  for(i=1;i<=strlen(line)/2;)
	  {
		  system("cls");
		  for(j=0;j<9;j++)   //改变行坐标
			  cout<<endl;
		  for(j=0;j<(75-strlen(line))/2;j++) //改变列坐标
			  cout<<" ";
		  for(j=1;j<=i;j++)         //进度显示器
			  cout<<"■";
		  for(x=strlen(line)/2;x>i;x--)
			  cout<<"□";
		  if(k==4)
			  i++;
		  cout<<endl;   
		  for(j=0;j<(75-strlen(line))/2;j++)   //行坐标定位
			  cout<<" ";
		  cout<<line;         //输出线条
		  cout<<endl;
		  for(j=0;j<(65-strlen(bar))/2;j++)
			  cout<<" ";
		  cout<<(i-1)*10<<"% Loading";
		  cout.write(bar,k);
		  cout<<endl;
		  for(j=0;j<10;j++)
			  cout<<endl;
		  for(j=0;j<24;j++)
			  cout<<" ";
		  cout<<"曾鸣 赖梁琳 李展 感谢你的使用"<<endl;
		  for(j=0;j<24;j++)
			  cout<<" ";
		  for(j=0;j<=16;j++)
			  cout<<"─";
		  cout<<endl;
		  for(j=0;j<10000000;j++);//延时效果
		  k++;
		  if(k>4)
			  k=0;
	  }
	  
	  return 1;}
    //return 1;
  else

  
	  return 0;
}
//--------------操作提示函数-------------
void prefix(char *Item)
{
  int i;   
  system("cls");
  cout<<"\n\n\t\t\t 当前操作:"<<Item<<endl;
  cout<<"\n\t\t   ";
  for(i=0;i<15;i++)
    cout<<"─";
  cout<<endl;
}


void save()//保存航班信息
{ 
	FILE *fp,*fp1;//定义文件指针
	if((fp=fopen("flight.text","wb"))==NULL)//打开文件并判断是否出错 
	{
		printf("创建文件失败!\n\n");//打印出错提示
		getchar();
		return;
	}
	
	if((fp1=fopen("m.text","wb"))==NULL)//打开文件并判断是否出错 
	{
		printf("创建文件失败!\n\n");//打印出错提示
		getchar();
		return;
	}
	
	for(i=0;i<m;i++)
		if(fwrite(&f[i],sizeof(struct Flight),1,fp)==0)//向文件写入数据,并判断是否出错
			printf("向文件输入数据失败!\n\n");
	  //if(add_m)  m=Flight_Count;
		fprintf(fp1,"%d",m);
		fclose(fp);//关闭文件
		fclose(fp1);//关闭文件
		
		
}


//从文件读取航班信息模块
void read()
{
	FILE *fp,*fp1;//定义文件指针
	if((fp=fopen("flight.text","rb"))==NULL)//打开文件,并判断是否出错
	{
		printf("出错,请检查文件是否存在 ");//打印出错提示
		getchar();
	}
	if((fp1=fopen("m.text","rb"))==NULL)//打开文件并判断是否出错 
	{
		printf(" 创建文件失败 按任意键返回住菜单\n\n");//打印出错提示
		getchar();
		return;
	}
	fscanf(fp1,"%d",&m);
	fclose(fp1);//关闭文件
	for(i=0;i<m;i++) 
	{
		fread(&f[i],sizeof(struct Flight),1,fp);//从文件中读取信息
	}
	fclose(fp);//关闭文件
}

//客户信息保存模块程序
void save2()
{ 
	FILE *fp3,*fp4;//定义文件指针
	if((fp3=fopen("customer.text","wb"))==NULL)//打开文件并判断是否出错 
	{
		printf("创建文件失败!\n\n");//打印出错提示
		getchar();
		return;
	}
	
	if((fp4=fopen("n.text","wb"))==NULL)//打开文件并判断是否出错 
	{
		printf("创建文件失败!\n\n");//打印出错提示
		getchar();
		return;
	}
	
	    for(j=0;j<n;j++)
		if(fwrite(&c[j],sizeof(struct Customer),1,fp3)==0)//向文件写入数据,并判断是否出错
			printf("向文件输入数据失败!\n\n");
		
		fprintf(fp4,"%d",n);
		fclose(fp3);//关闭文件
		fclose(fp4);//关闭文件
		
		
}


//从文件读取客户信息模块
void read2()
{
	FILE *fp3,*fp4;//定义文件指针
	if((fp3=fopen("customer.text","rb"))==NULL)//打开文件,并判断是否出错
	{
		printf("出错,请检查文件是否存在 ");//打印出错提示
		getchar();
	}
	if((fp4=fopen("n.text","rb"))==NULL)//打开文件并判断是否出错 
	{
		printf(" 打开文件失败 按任意键返回住菜单\n\n");//打印出错提示
		getchar();
		return;
	}
	fscanf(fp4,"%d",&n);
	fclose(fp4);//关闭文件
	for(j=0;j<n;j++) 
	{
		fread(&c[j],sizeof(struct Customer),1,fp3);//从文件中读取信息
	}
	fclose(fp3);//关闭文件
}



//-----------------航线添加函数-------------
void Line_Add()
{   
	int add_m=1;
	int mm;
	prefix("总航线情况");
	cout<<"\t\t\t请输入要添加的航班总数:";

	cin>>mm;
read();
Flight_Count=m;
for(i=Flight_Count;i<(Flight_Count+mm);i++)

{
	cout<<endl;
	cout<<"\t\t----------------------------------"<<endl;
		cout<<"\t\t\t   请输入终点站名:";
        cin>>f[i].Des_Name; 
	cout<<"\n\t\t\t   请输入航班号(唯一):";
        cin>>f[i].Flight_No;
     cout<<"\n\t\t\t   请输入飞机号:";
    cin>>f[i].Plane_No;
    while(1)
    {
        cout<<"\n\t\t\t   请输入飞行周日(1-7):";
        cin>>f[i].Week_Day; 
        if(f[i].Week_Day<'1'||f[i].Week_Day>'7')
        {   
          cout<<"\n\t\t   数据输入错误,按任意键继续输入."<<endl;
          getch();
        }
        else
          break;
    }
    cout<<"\n\t\t\t   请输入乘员定额:";
    cin>>f[i].Customer_Amount;
    cout<<"\n\t\t\t   请输入头等舱票价:";
    cin>>f[i].Price[0];
    cout<<"\n\t\t\t   请输入普通舱票价:";
    cin>>f[i].Price[1];
    cout<<"\n\t\t\t   请输入经济舱票价:";
    cin>>f[i].Price[2];
    f[i].Free_Amount=f[i].Customer_Amount;     //剩余票数与乘员定额相同
	
	}
Flight_Count+=mm;
m+=mm;
save();

 if(Continue()=='n')
    return ;
                      
  
}




//------------航线是否为空函数-------------
int Empty_Flight()
{ read();
  if(m==0)
  {cout<<endl;
    system("cls");
    cout<<"\n\n\n\n\n\n\n\n\t\t   对不起,没有相关航线。按任意键返回..."<<endl;
    getch();
    return 1;
  }
  else
    return 0;
}





//------------航线查看函数-----------------
void Line_See()
{

     
	if(Empty_Flight())   //航班线为空
    return;
  prefix("航班查看");
  cout<<" ┌────┬───┬───┬────┬────┬────┬────────┐"<<endl;
  cout<<" │        │      │      │        │        │        │   票   价    │"<<endl;
  cout<<" │终点站名│航班号│飞机号│飞行周日│乘员定额│剩余票数├──┬──┬──┤"<<endl;
  cout<<" │    │   │   │    │    │    │头舱│普舱│经舱│"<<endl;
  cout<<" ├────┼───┼───┼────┼────┼────┼──┼──┼──┤"<<endl;
   
     for(i=0;i<m;i++)
	 {cout<<" │"<<setiosflags(ios::left)<<setw(8)<<f[i].Des_Name<<"│"<<setw(6)<<f[i].Flight_No<<\
    "│"<<setw(6)<<f[i].Plane_No<<   "│"<<setw(7)<<"星期"<<f[i].Week_Day<<   "│   "<<setw(5)<<f[i].Customer_Amount<<\
    "│   "<<setw(5)<<f[i].Free_Amount<<"│"<<setw(4)<<f[i].Price[0]<<"│"<<setw(4)<<f[i].Price[1]<<"│"<<setw(4)<<f[i].Price[2]<<"│"<<endl;
    
    
          cout<<" ├────┼───┼───┼────┼────┼────┼──┼──┼──┤"<<endl;
	 }
  cout<<" └────┴───┴───┴────┴────┴────┴──┴──┴──┘"<<endl;
  	  
  cout<<"\n\t\t\t   按任意键返回子菜单..."<<endl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -