基于C语言航班信息查询与检索
本文实例为大家分享了航班信息查询与检索的具体代码,供大家参考,具体内容如下
#include#include #defineMaxSpace100 #definekeylen7 #defineRADIX_n10 #defineRADIX_c26 typedefcharKeyType; typedefstruct{ charstart[7];//起点站 charend[7];//终点站 charsche[12];//航班期 chartime1[5];//起飞时间 chartime2[5];//到达时间 charmode1[3];//机型 intprice;//票价 }InfoType;//航班记录类型 typedefstruct{ KeyTypekeys[keylen];//关键字 InfoTypeothers; intnext; }SLNode;//静态链表结点类型 typedefstruct{ SLNodesl[MaxSpace];//静态链表,s1[0]为头结点 intkeynum;//记录当前关键字字符个数 intlength;//当前表长 }SLList;//静态链表类型 typedefintArrType_n[RADIX_n];//十进制数字指针数组 typedefintArrType_c[RADIX_c];//26个字母指针数组 voidDisplay(SLList,inti);//声明输出函数 /*一趟数字字符分配函数*/ voidDistribute(SLNode*s1,inti,ArrType_nf,ArrType_ne) { intj,p; for(j=0;j =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); } returnL; }//RadixSort /*按指针链重新整理静态链表*/ SLListArrange(SLListL) { intp,q,i; SLNodetemp; p=L.sl[0].next; for(i=1;i<=L.length;i++) { while(p=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){ case1: printf("输入要查询的航班号(字母要大写):"); scanf("%s",key); k=BinSearch(L,key); Display(L,k); break; case2: printf("输入要查询的航班起点站名:"); scanf("%s",key); SeqSearch(L,key,i); break; case3: printf("输入要查询的航班终点站名:"); scanf("%s",key); SeqSearch(L,key,i); break; case4: printf("请输入要查询的航班起飞时间:"); scanf("%s",k1); SeqSearch(L,k1,i); break; case5: printf("输入要查询的航班到达时间:"); scanf("%s",k1); SeqSearch(L,k1,i); break; case0: printf("退出程序,再见!\n"); return; } } } /*输入航班记录函数*/ SLListInputData(SLListL) { inti=++L.length; charyn='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; returnL; } /*主函数*/ intmain(void) { inti; SLListL; 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);//调用查询函数 }
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。