题目七:航班信息的查询与检索
设计要求:对飞机航班信息进行排序和查找。可按航班号、
起点站、终点站、起飞时间及到达时间等信息进行查询。
每个航班记录包括八项:航班号、起点站、终点站、航班期、
起飞时间、到达时间、机型以及票价。
航班信息查询系统内容:
1. 航班号
2. 起点站
3. 终点站
4. 起飞时间
5. 到达时间
6. 退出系统
和之前的颇为类似,直接贴代码了,然后回顾就到一段落了,我们有缘再见。
完整代码:
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
struct fly{
char flight_num[10];
char start[10];
char endp[10];
char dats[10];
int takeoff;
int landtime;
char type[10];
int price;
}a[10];
typedef fly Fly;
void display(){
int i;
for(i=0;i<6;i++){
//cout<<a[i].takeoff<<endl;
printf("%s %s %s %s %.2d:%.2d %.2d:%.2d %s %d\n",a[i].flight_num,a[i].start,a[i].endp,a[i].dats,a[i].takeoff/100,a[i].takeoff%100,a[i].landtime/100,a[i].landtime%100,a[i].type,a[i].price);
}
}
void flytime(){
int i,j;
for(i=0;i<5;i++){
for(j=0;j<5-i;j++){
if(a[j].takeoff>a[j+1].takeoff){
Fly temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
display();
}
void pricedown(){
int i,j;
for(i=0;i<5;i++){
for(j=0;j<5-i;j++){
if(a[j].price>a[j+1].price){
Fly temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
display();
}
void offtime(){
int i,j;
for(i=0;i<5;i++){
for(j=0;j<5-i;j++){
if(a[j].landtime>a[j+1].landtime){
Fly temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
display();}
void find_num(){
cout<<"请输入要查询的航班号(输入0则排序,输入航空公司代码则罗列该公司所有航班)"<<endl;
char input[10];
cin>>input;
int v=0;
int len=strlen(input);
if(len==0){
}
else if(len==2){
for(int i=0;i<6;i++){
if(input[0]==a[i].flight_num[0]&&input[1]==a[i].flight_num[1]){
printf("%s %s %s %s %.2d:%.2d %.2d:%.2d %s %d\n",a[i].flight_num,a[i].start,a[i].endp,a[i].dats,a[i].takeoff/100,a[i].takeoff%100,a[i].landtime/100,a[i].landtime%100,a[i].type,a[i].price);
v=1;
}
}
if(v==0){
cout<<"未查找到该航空公司"<<endl;
}
}
else{
for(int i=0;i<6;i++){
if(strcmp(a[i].flight_num,input)==0){
printf("%s %s %s %s %.2d:%.2d %.2d:%.2d %s %d\n",a[i].flight_num,a[i].start,a[i].endp,a[i].dats,a[i].takeoff/100,a[i].takeoff%100,a[i].landtime/100,a[i].landtime%100,a[i].type,a[i].price);
return ;
}
}
cout<<"未查找到该航班"<<endl;
}
}
void init(){
//航班一号
strcpy(a[0].flight_num,"SC7425");
strcpy(a[0].start,"青岛");
strcpy(a[0].endp,"海口");
strcpy(a[0].dats,"1 3 6");
a[0].takeoff=1920;
a[0].landtime=2120;
strcpy(a[0].type,"DH4");
a[0].price=1630;
// 航班二号
strcpy(a[1].flight_num,"MU5341");
strcpy(a[1].start,"上海");
strcpy(a[1].endp,"广州");
strcpy(a[1].dats,"每天");
a[1].takeoff=1420;
a[1].landtime=1615;
strcpy(a[1].type,"M90");
a[1].price=1280;
//航班三号
strcpy(a[2].flight_num,"CA984");
strcpy(a[2].start,"北京");
strcpy(a[2].endp,"深圳");
strcpy(a[2].dats,"2 4 6");
a[2].takeoff=755;
a[2].landtime=1125;
strcpy(a[2].type,"777");
a[2].price=2080;
//航班四号
strcpy(a[3].flight_num,"CZ6434");
strcpy(a[3].start,"成都");
strcpy(a[3].endp,"西安");
strcpy(a[3].dats,"每天");
a[3].takeoff=1325;
a[3].landtime=1455;
strcpy(a[3].type,"A321");
a[3].price=810;
//航班五号
strcpy(a[4].flight_num,"JD5346");
strcpy(a[4].start,"大连");
strcpy(a[4].endp,"杭州");
strcpy(a[4].dats,"5 6 7");
a[4].takeoff=2055;
a[4].landtime=2310;
strcpy(a[4].type,"A320");
a[4].price=960;
//航班六号
strcpy(a[5].flight_num,"SC8112");
strcpy(a[5].start,"南京");
strcpy(a[5].endp,"厦门");
strcpy(a[5].dats,"2 5 7");
a[5].takeoff=2110;
a[5].landtime=2255;
strcpy(a[5].type,"737");
a[5].price=540;
}
void find_sta(){
cout<<"请输入要查询的城市:(可以使用缩写或拼音)"<<endl;
char input[100];
cin>>input;
int v=0;
if(input[0]>=65&&input[0]<=122){
cout<<"暂未开放,敬请期待!"<<endl;
return ;
}
else{
int i;
for(i=0;i<6;i++){
if(!strcmp(input,a[i].start)){
printf("%s %s %s %s %.2d:%.2d %.2d:%.2d %s %d\n",a[i].flight_num,a[i].start,a[i].endp,a[i].dats,a[i].takeoff/100,a[i].takeoff%100,a[i].landtime/100,a[i].landtime%100,a[i].type,a[i].price);
v=1;
}
}
if(v==0)
cout<<"暂未查到该城市有效信息."<<endl;
}
}
void find_endp(){
cout<<"请输入要查询的城市:(可以使用缩写或拼音)"<<endl;
char input[100];
cin>>input;
int v=0;
if(input[0]>=65&&input[0]<=122){
cout<<"暂未开放,敬请期待!"<<endl;
return ;
}
else{
int i;
for(i=0;i<6;i++){
if(!strcmp(input,a[i].endp)){
printf("%s %s %s %s %.2d:%.2d %.2d:%.2d %s %d\n",a[i].flight_num,a[i].start,a[i].endp,a[i].dats,a[i].takeoff/100,a[i].takeoff%100,a[i].landtime/100,a[i].landtime%100,a[i].type,a[i].price);
v=1;
}
}
if(v==0)
cout<<"暂未查到该城市有效信息."<<endl;
}
}
int main()
{ init();
int n;
while(1){
cout<<"1.航班号 2.起点站 2.终点站 4.起飞时间 5.到达时间 6.价格 0.退出系统 "<<endl;
cin>>n;
switch(n){
case 1:
find_num();
break;
case 2:
find_sta();
break;
case 3:
find_endp();
break;
case 4:
flytime();
break;
case 5:
offtime();
break;
case 6:
pricedown();
break;
case 0:
return 0;
}
}
return 0;
}