本文主要是介绍某航空公司客机信息管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>typedef struct _Plane
{char no[20];//客机编号char style[20];//客机型号char buy_time[20];//购买时间char use_time[20];//服役时间char fly[20];//已飞总里程char more[20];//备注信息int num1;//经济舱int num2;//公务int num3;//头等舱
}Plane;//输入客机信息
void Input(Plane plane[],int* n)
{system("cls");printf("请输入客机编号:");scanf("%s",plane[*n].no);printf("请输入客机型号:");scanf("%s",plane[*n].style);printf("请输入客机购买时间:");scanf("%s",plane[*n].buy_time);printf("请输入客机服役时间:");scanf("%s",plane[*n].use_time);printf("请输入客机已飞行总里数:");scanf("%s",plane[*n].fly);printf("请输入客机经济舱座位数:");scanf("%d",&plane[*n].num1);printf("请输入客机公务舱座位数:");scanf("%d",&plane[*n].num2);printf("请输入客机头等舱座位数:");scanf("%d",&plane[*n].num3);printf("请输入客机备注信息:");scanf("%s",plane[*n].more);printf("录入成功!\n");system("pause");(*n)++;//客机的数量增加1
}//显示客机信息
void Display(Plane plane[],int n)
{int i;printf("%-10s%-10s","编号","型号");printf("%-10s%-10s","购买时间","服役时间");printf("%-10s%-15s","已飞行","经济舱座位");printf("%-15s%-15s","公务舱座位","头等舱座位");printf("%-20s\n","备注");for(i=0;i<n;i++)//遍历结构体数组 输出信息{printf("%-10s%-10s",plane[i].no,plane[i].style);printf("%-10s%-10s",plane[i].buy_time,plane[i].use_time);printf("%-10s%-15d",plane[i].fly,plane[i].num1);printf("%-15d%-15d",plane[i].num2,plane[i].num3);printf("%-20s\n",plane[i].more);}
}//根据编号查找
void Search_By_Num(Plane plane[],int m)
{int i;int flag=0;char temp[20];system("cls");printf("请输入要查询的客机编号:");scanf("%s",temp);for(i=0;i<m;i++)//遍历结构体数组{if(!strcmp(temp,plane[i].no))//如果找到{Display(&plane[i],1);//显示该图书flag=1;//说明已经找到}}if(flag==0)//还是等于0说明没找到{printf("无该编号!\n");}system("pause");
}//根据型号查找
void Search_By_Style(Plane plane[],int m)
{int i;int flag=0;char temp[20];system("cls");printf("请输入要查询的客机型号:");scanf("%s",temp);for(i=0;i<m;i++){if(!strcmp(temp,plane[i].style))//如果相同{Display(&plane[i],1);//显示该信息flag=1;//说明已经找到}}if(flag==0){printf("无该书名!\n");}system("pause");
}//删除客机信息
void Del(Plane plane[],int* n)
{int i,m=*n,j;int flag=0;char temp[20];system("cls");printf("请输入要删除的客机编号:");scanf("%s",temp);for(i=0;i<m;i++){if(!strcmp(temp,plane[i].no))//如果号相同{flag=1;//说明已经找到break;}}if(flag==0){printf("无该编号!\n");system("pause");return ;}Display(&plane[i],1);//显示该信息printf("是否删除?(Y/N)");scanf("%s",temp);if(!strcmp(temp,"Y")||!strcmp(temp,"y")){for(j=i;j<m;j++)//结构体数组前移{plane[j]=plane[j+1];//用后一个数据覆盖前一个 达到删除效果}printf("删除成功!\n");(*n)--;//删除成功 结构体数组长度减一}else{printf("已取消删除!\n");}system("pause");
}void Modify(Plane plane[],int m)
{int i;int flag=0;char temp[20];Plane swap;system("cls");printf("请输入要修改的客机编号:");scanf("%s",temp);for(i=0;i<m;i++){if(!strcmp(temp,plane[i].no))//如果号相同{flag=1;//说明已经找到break;}}if(flag==0){printf("无该编号!\n");system("pause");return ;}Display(&plane[i],1);//显示该信息printf("请输入客机型号:");scanf("%s",swap.style);printf("请输入客机购买时间:");scanf("%s",swap.buy_time);printf("请输入客机服役时间:");scanf("%s",swap.use_time);printf("请输入客机已飞行总里数:");scanf("%s",swap.fly);printf("请输入客机经济舱座位数:");scanf("%d",&swap.num1);printf("请输入客机公务舱座位数:");scanf("%d",&swap.num2);printf("请输入客机头等舱座位数:");scanf("%d",&swap.num3);printf("请输入客机备注信息:");scanf("%s",swap.more);strcpy(swap.no,temp);printf("是否修改?(Y/N)");scanf("%s",temp);if(!strcmp(temp,"Y")||!strcmp(temp,"y")){plane[i]=swap;printf("已成功修改!\n");}else{printf("已取消修改!\n");}system("pause");
}int Menu()
{int i;system("cls");printf("1:录入客机信息\n");printf("2:显示客机信息\n");printf("3:根据编号查询\n");printf("4:修改客机信息\n");printf("5:删除客机信息\n");printf("6:根据型号查询\n");printf("7:按编号显示\n");printf("8:统计各舱座位\n");printf("0:退出系统\n");printf("请输入选择:");scanf("%d",&i);while(i<0||i>9)//判断输入的是不是0-9范围内{printf("请重新选择:");scanf("%d",&i);}return i;
}void Save(Plane arr[],int n)//保存信息到文件
{int i;FILE* fp;fp= fopen("plane_info.txt","w+");//打开文件if(fp==NULL)//打开失败则退出{return;}for(i=0;i<n;i++)//循环写入到文件{fwrite(&arr[i],1,sizeof(Plane),fp);}fclose(fp);
}int Read(Plane arr[])//读取文件
{int i=0;FILE* fp;fp= fopen("plane_info.txt","r+");if(fp==NULL){return 0;}while(fread(&arr[i++],1,sizeof(Plane),fp));//当文件不为空 一直读取fclose(fp);if(i>=1)//把读取的回车去掉{return i-1;}return 0;
}void Sort(Plane arr[],int n)
{int i,j;Plane swap;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(strcmp(arr[i].no,arr[j].no)>0){swap=arr[i];arr[i]=arr[j];arr[j]=swap;}}}
}void Total(Plane arr[],int n)
{int sum[3]={0};int i;system("cls");for(i=0;i<n;i++){sum[0]+=arr[i].num1;sum[1]+=arr[i].num2;sum[2]+=arr[i].num3;}printf("总客机数:%d\n",n);printf("总座位数量:%d\n",sum[0]+sum[1]+sum[2]);printf("总经济舱数量:%d\n",sum[0]);printf("总公务舱数量:%d\n",sum[1]);printf("总头等舱数量:%d\n",sum[2]);system("pause");
}int main()
{int choice;Plane plane[100];//记录信息int n=Read(plane);//数量system("mode con: cols=120 lines=30");//设置屏幕大小while(1){choice=Menu();//获取用户选择switch(choice)//根据选择进入相应功能{case 0:Save(plane,n);exit(0);break;case 1:Input(plane,&n);break;case 2:system("cls");Display(plane,n);system("pause");break;case 3:Search_By_Num(plane,n);break;case 4:Modify(plane,n);break;case 5:Del(plane,&n);break;case 6:Search_By_Style(plane,n);break;case 7:Sort(plane,n);system("cls");Display(plane,n);system("pause");break;case 8:Total(plane,n);break;}}return 0;
}
这篇关于某航空公司客机信息管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!