資料結構程式設計回顧(七)航班資訊的查詢與檢索
阿新 • • 發佈:2018-12-31
題目七:航班資訊的查詢與檢索
設計要求:對飛機航班資訊進行排序和查詢。可按航班號、
起點站、終點站、起飛時間及到達時間等資訊進行查詢。
每個航班記錄包括八項:航班號、起點站、終點站、航班期、
起飛時間、到達時間、機型以及票價。
航班資訊查詢系統內容:
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; }