亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

基于C語言航班信息查詢與檢索

2020-01-26 13:48:32
字體:
來源:轉載
供稿:網友

本文實例為大家分享了航班信息查詢與檢索的具體代碼,供大家參考,具體內容如下

#include<stdio.h>#include<string.h>#define MaxSpace 100#define keylen 7#define RADIX_n 10#define RADIX_c 26typedef char KeyType;typedef struct{ char start[7]; //起點站  char end[7]; //終點站  char sche[12]; //航班期  char time1[5]; //起飛時間  char time2[5]; //到達時間  char mode1[3]; //機型  int price;  //票價 }InfoType;  //航班記錄類型 typedef struct{ KeyType keys[keylen];//關鍵字  InfoType others; int next;}SLNode;  //靜態鏈表結點類型typedef struct{ SLNode sl[MaxSpace];//靜態鏈表,s1[0]為頭結點  int keynum;  //記錄當前關鍵字字符個數  int length;  //當前表長 }SLList;  //靜態鏈表類型 typedef int ArrType_n[RADIX_n];  //十進制數字指針數組 typedef int ArrType_c[RADIX_c] ; //26個字母指針數組 void Display(SLList,int i);  //聲明輸出函數 /*一趟數字字符分配函數*/void Distribute(SLNode *s1,int i,ArrType_n f,ArrType_n e) { int j,p; for(j=0 ; j<RADIX_n ; j++) { //各子表置為空表 f[j] =0; e[j]=0; } for(p=s1[0].next;p;p=s1[p].next) { j=s1[p].keys[i]%48; //將數字字符轉換成相對應的數值類型數字 if(!f[j])   f[j]=p; else  s1[e[j]].next=p;  e[j]=p;  //將p指向的結點輸入到第j個字表中  }}/*一趟數字字符收集函數*/void Collect(SLNode *s1,int i,ArrType_n f,ArrType_n e){ int j,t; for(j=0;!f[j];j++);  //找第一個非空子集  s1[0].next=f[j]; //s1[0].next指向第一個非空子表中的一個結點  t=e[j]; while(j<RADIX_n-1) { for(j=j+1;j<RADIX_n-1 && !f[j];j++); //找下一個非空子表  if(f[j]) {  s1[t].next=f[j]; //連接兩個非空子表   t=e[j]; } s1[t].next=0; }}/*一趟字母字符分配函數*/void Distribute_c(SLNode *s1,int i,ArrType_c f,ArrType_c e){ int j,p; for(j=0;j<RADIX_c;j++) { //各子類表置為空 f[j]=0; e[j]=0; } for(p=s1[0].next;p!=0;p=s1[p].next) { j=s1[p].keys[i] % 65; if(!f[j])  f[j]=p; else  s1[e[j]].next=p; e[j]=p; }}/*一趟字母字符收集函數*/void Collect_c(SLNode *s1,int i,ArrType_c f,ArrType_c e){ int j,t; for(j=0;!f[j];j++); s1[0].next=f[j]; t=e[j]; while(j<RADIX_c-1) { for(j=j+1;j<RADIX_c-1 && !f[j];j++)  if(f[j])  {  s1[t].next=f[j];  t=e[j];  } } s1[t].next=0;}/*鏈式基數排序函數*/SLList RadixSort(SLList L){ int i; ArrType_n fn,en; ArrType_c fc,ec; for(i=0;i<L.length;i++) L.sl[i].next=i+1;  //0號單元僅存放指針,不儲存內容  L.sl[L.length].next=0; //將普通的線性表進行改造為靜態鏈表  for(i=L.keynum-1;i>=2;i--) {  //按最低位優先次序對各關鍵字進行分配和收集,先做低4位數字部分  Distribute(L.sl,i,fn,en) ;  Collect(L.sl,i,fn,en); } for(i=1;i>=0;i--) {  //對高位的2位大寫字母進行分配和收集  Distribute_c(L.sl,i,fc,ec) ;  Collect_c(L.sl,i,fc,ec); } return L;}//RadixSort /*按指針鏈重新整理靜態鏈表*/SLList Arrange(SLList L){ int p,q,i; SLNode temp; p=L.sl[0].next; for(i=1;i<=L.length;i++) { while(p<i)   //************此處有問題*************   p=L.sl[p].next;  q=L.sl[p].next;  if(p!=i)  {  temp=L.sl[p]; //交換記錄  L.sl[p]=L.sl[i]; //交換記錄  L.sl[i]=temp; //交換記錄  L.sl[i].next=p;  } p=q; } return L;}/*查找算法的實現*/int BinSearch(SLList L,KeyType key[]) //二分查找函數 { int low,high,mid; low=1; high=L.length-1; while(low<=high) { mid=(low+high)/2; if(strcmp(key,L.sl[mid].keys)<0)  return mid; else  if(strcmp(key,L.sl[mid].keys)<0)  high=mid-1;  else  low=mid+1; } return 0;}//BinSearch/*順序查找函數*/void SeqSearch(SLList L,KeyType key[],int i) { int j,k,m=0; for(j=1;j<L.length;j++) { switch(i){  case 2: k=strcmp(key,L.sl[j].others.start); break;  case 3: k=strcmp(key,L.sl[j].others.end); break;  case 4: k=strcmp(key,L.sl[j].others.time1); break;  case 5: k=strcmp(key,L.sl[j].others.time2); break; } if(k==0){ m=1; Display(L,j); } } if(m==0) printf("無此航班信息,可能是輸入錯誤:/n"); }/*輸入輸出函數*/void Display(SLList L,int i){ if(i==0) printf("無此航班信息,可能是輸入錯誤:/n"); else{ printf("航班號 起點站 終點站 航班期 起飛時間 到達時間 機型 票價/n"); printf("%s,%s,%s,%s,%s,%s,%s,%d/n",L.sl[i].keys, L.sl[i].others.start,L.sl[i].others.end,L.sl[i].others.sche, L.sl[i].others.time1,L.sl[i].others.time2,L.sl[i].others.mode1, L.sl[i].others.price); } }/*查詢檢索菜單控制程序*/void serachcon(SLList L){ int i=1,k; KeyType key[keylen],k1[4]; while(i>=1 && i<=5){ printf("*********************************/n"); printf(""); printf("* 航班信息查詢系統 */n"); printf("*********************************/n"); printf("*  1.航 班 號  */n"); printf("*  2.起 點 站  */n"); printf("*  3.終 點 站  */n"); printf("*  4.起飛時間  */n"); printf("*  5.到達時間  */n"); printf("*  0.退出系統  */n"); printf("*********************************/n"); printf("  請選擇(1-5)  /n"); scanf("%d",&i); switch(i){  case 1:  printf("輸入要查詢的航班號(字母要大寫):");  scanf("%s",key);  k=BinSearch(L,key);  Display(L,k);  break;  case 2:  printf("輸入要查詢的航班起點站名:");  scanf("%s",key);  SeqSearch(L,key,i);  break;  case 3:  printf("輸入要查詢的航班終點站名:");  scanf("%s",key);  SeqSearch(L,key,i);  break;  case 4:  printf("請輸入要查詢的航班起飛時間:");  scanf("%s",k1);  SeqSearch(L,k1,i);  break;  case 5:  printf("輸入要查詢的航班到達時間:");   scanf("%s",k1);  SeqSearch(L,k1,i);  break;  case 0:  printf("退出程序,再見!/n");  return ;  } }}/*輸入航班記錄函數*/SLList InputData(SLList L){ int i=++L.length; char yn='y'; while(yn=='y' || yn=='Y') { printf("航班號 起點站 終點站 航班期 起飛時間 到達時間 機型 票價/n"); scanf("%s %s %s %s %s %s %s %d",L.sl[i].keys, L.sl[i].others.start,L.sl[i].others.end,L.sl[i].others.sche, L.sl[i].others.time1,L.sl[i].others.time2,L.sl[i].others.mode1, &L.sl[i].others.price); ++i; printf("繼續輸入嗎?y/n:"); getchar(); scanf("%c",&yn); } L.length=i-1; return L; }/*主函數*/int main(void){ int i; SLList L; L.keynum=6; L.length=0; for(i=1;i<=L.length;i++) Display(L,i); L=InputData(L);  //輸入航班記錄  L=RadixSort(L);  //基數排序  L=Arrange(L);  serachcon(L);  //調用查詢函數 }

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜国产成人av电影男同| 日韩电影视频免费| 91中文字幕在线| 中文字幕免费精品一区高清| 中文字幕亚洲自拍| 亚洲精品一区二区网址| 中文字幕亚洲综合久久| 欧美日韩亚洲一区二| 狠狠操狠狠色综合网| 亚洲free性xxxx护士hd| 狠狠色狠狠色综合日日五| 欧美性猛交丰臀xxxxx网站| 这里只有精品久久| 欧美亚洲另类视频| 亚洲成人网在线观看| 亚洲欧美制服第一页| 亚洲久久久久久久久久| 国产免费一区视频观看免费| 欧美在线视频一区| 中文字幕日韩欧美精品在线观看| 国产精品最新在线观看| 欧美日韩国产中文字幕| 亚洲欧洲国产一区| 欧洲精品毛片网站| 国产精品久久久久av免费| 久久免费观看视频| 日韩h在线观看| 日韩免费看的电影电视剧大全| 亚洲欧美精品中文字幕在线| 亚洲亚裔videos黑人hd| 91成人天堂久久成人| 欧美大片网站在线观看| 欧美激情欧美激情| 91午夜在线播放| 久热精品视频在线免费观看| 91人人爽人人爽人人精88v| 欧美激情精品久久久| 精品国产视频在线| 亚洲最新av在线| 综合久久五月天| 国产精品亚洲美女av网站| 久久综合国产精品台湾中文娱乐网| 亚洲第一色在线| 欧美高清不卡在线| 国产精品久久久久久久久久久久久| 日韩av在线一区| 日韩专区中文字幕| 欧美性受xxxx黑人猛交| 在线观看日韩www视频免费| 国产精品私拍pans大尺度在线| 精品久久久视频| 国产精品高清免费在线观看| 日韩精品在线电影| 日韩成人在线视频观看| 精品在线小视频| 亚洲人成伊人成综合网久久久| 久久久久久国产精品美女| 欧美美女操人视频| 精品国产欧美一区二区三区成人| 亚洲精品一区中文字幕乱码| 国产成人精品日本亚洲专区61| 国产精品视频资源| 日本精品视频在线观看| 亚州欧美日韩中文视频| 国产一区二区三区18| 亚洲成人av中文字幕| 欧美性猛交xxxx久久久| 久久久在线免费观看| 亚洲欧美中文日韩在线v日本| 国产成人精品优优av| 欧美精品少妇videofree| 日韩黄色高清视频| 69视频在线播放| 亚洲www在线| 日韩欧美视频一区二区三区| 精品久久久久久久久国产字幕| 欧美色道久久88综合亚洲精品| 性欧美在线看片a免费观看| 日韩美女免费视频| 性色av一区二区三区在线观看| 成人在线国产精品| 国产精品入口夜色视频大尺度| 久久久久久久久久久免费| 日韩人在线观看| 欧美激情一级欧美精品| 91国在线精品国内播放| 精品国产自在精品国产浪潮| 日韩日本欧美亚洲| 色综合久久天天综线观看| 亚洲国产精品久久久久秋霞不卡| 国产99视频精品免视看7| 欧美日韩国产精品一区| 欧美另类69精品久久久久9999| 欧美香蕉大胸在线视频观看| 久久久天堂国产精品女人| 国产精品日韩欧美综合| 亚洲成色777777女色窝| 精品久久久久久国产91| 久久久国产一区二区三区| 久久视频中文字幕| 日韩在线视频线视频免费网站| 国产成人免费91av在线| 97精品久久久中文字幕免费| 亚洲xxxx做受欧美| 久久久久中文字幕| 精品久久久精品| 亚洲精品视频中文字幕| 久久久久久97| 国模私拍一区二区三区| 久久久久久久电影一区| 成人午夜小视频| 欧美疯狂xxxx大交乱88av| 欧美最顶级丰满的aⅴ艳星| 成人久久18免费网站图片| 亚洲乱亚洲乱妇无码| 国产精品久久91| 久久免费视频网| 亚洲精品成人久久| 国产精品激情av在线播放| 久久国产一区二区三区| 欧美日韩亚洲系列| 欧美影院成年免费版| 国产精品网站大全| 日韩欧美在线中文字幕| 欧美裸体xxxx极品少妇软件| 国产精品久久不能| 91系列在线观看| 亚洲欧美日韩一区二区在线| 丰满岳妇乱一区二区三区| 欧美精品在线免费观看| 性视频1819p久久| 亚洲美女又黄又爽在线观看| 福利二区91精品bt7086| 亚洲va码欧洲m码| 日韩美女视频中文字幕| 亚洲色在线视频| 国外成人性视频| 亚洲国内精品在线| 欧美日韩国产麻豆| 亚洲欧美国产视频| 亚洲国产精品字幕| 日韩激情视频在线播放| 庆余年2免费日韩剧观看大牛| 国产精品久久久久免费a∨| 欧美乱人伦中文字幕在线| 国产成人精品久久二区二区| 欧美一级视频在线观看| 欧洲亚洲免费视频| 久久久久99精品久久久久| 中文字幕综合一区| 久久免费在线观看| 国产欧美日韩精品丝袜高跟鞋| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲韩国欧洲国产日产av| 久久久久北条麻妃免费看| 国产精品久久久久久久app| 国产成人中文字幕| 日韩专区中文字幕| 欧美午夜丰满在线18影院| 欧美成人黑人xx视频免费观看| 亚洲精品国产拍免费91在线| 久久久久免费视频| 亚洲精品成人久久| 亚洲久久久久久久久久久|