花了一周的时间搞数据结构课程设计,现在想起来也不咋样。

                   航班信息检索与查询系统源代码
在”StdAfx.h”文件中:#if !defined(AFX_STDAFX_H__5D4863DA_370E_4BF2_ACA1_DEF9B55C465C__INCLUDED_)
#define AFX_STDAFX_H__5D4863DA_370E_4BF2_ACA1_DEF9B55C465C__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif
#define WIN32_LEAN_AND_MEAN     #include <stdio.h>
#include <string.h>
#include"stdlib.h"
#include"cctype"#endif 在”StdAfx.cpp”文件中:#include "stdafx.h"在” 航班信息检索与查询.h”文件中:
void Menu();
void Menu2();
void Save();
int Bsearch(int l,int r);
void Read_Inf();
void Search_Inf(int f);
void Add_Inf();
void Del_Inf();
void Dis_Inf(int k,int f);
bool Choice(char *s);
void Get_Tiket();
void Exit();#define Max 100005
#define Maxn 36
#define N 20typedef struct Plan{char ID[10];char start[N];char end[N];int money;int space;char Tdate[N];char Tstart[N];char Tend[N];char name[N];
}PlanNode;typedef struct Node{char key[10];PlanNode inf;int next;
}SLNode;typedef struct{SLNode s[Max];int keyCnt;int PCnt;
}SList;void Radix_Sort(SList &L);在” 航班信息检索与查询.cpp”文件中:#include "stdafx.h"
#include"航班信息检索与查询.h"int x[Maxn],y[Maxn];
const int form[]={8,8,7,8,9,9,7,5,4};SList L;int main(int argc, char* argv[])
{system("color 6");L.PCnt=0;L.keyCnt=6;Read_Inf();Menu();return 0;
}void Menu()
{char ch[]="                         ";printf("%s┍┅┅┅┅┅┅┅┅┅┅┅┅┒\n",ch);printf("%s│   航班信息检索与查询   │\n",ch);printf("%s┕┅┅┅┅┅┅┅┅┅┅┅┅┘\n",ch);printf("%s┍┅┅┅┅┅┅┅┅┅┅┅┅┒\n",ch);printf("%s│    1.查询航班信息      │\n",ch);printf("%s│    2.显示全部航班信息  │\n",ch);printf("%s│    3.添加航班信息      │\n",ch);printf("%s│    4.订票              │\n",ch);printf("%s│    5.退出              │\n",ch);printf("%s┕┅┅┅┅┅┅┅┅┅┅┅┅┘\n",ch);printf("请选择相应的功能:");scanf("%s",ch);while(Choice(ch)==0){printf("输入不合法,请重新输入:");scanf("%s",ch);}switch(ch[0]){case'1':Menu2();break;case'2':Dis_Inf(0,2);break;case'3':Add_Inf();break;case'4':Get_Tiket();break;case'5':Exit();break;default:printf("没有该选项!\n");break;}system("pause");system("cls");Menu();
}void Menu2()
{char ch[]="                         ";printf("%s┍┅┅┅┅┅┅┅┅┅┅┅┅┒\n",ch);printf("%s│    1.按航班号查询      │\n",ch);printf("%s│    2.按起点查询        │\n",ch);printf("%s│    3.按终点查询        │\n",ch);printf("%s│    4.按起飞时间查询    │\n",ch);printf("%s│    5.按到达时间查询    │\n",ch);printf("%s│    6.退出              │\n",ch);printf("%s┕┅┅┅┅┅┅┅┅┅┅┅┅┘\n",ch);printf("请选择相应的查询要求:");scanf("%s",ch);while(Choice(ch)==0){printf("输入不合法,请重新输入:");scanf("%s",ch);}switch(ch[0]){case'1':Bsearch(1,L.PCnt+1);break;case'2':Search_Inf(2);break;case'3':Search_Inf(3);break;case'4':Search_Inf(4);break;case'5':Search_Inf(5);break;case'6':goto loop;default:printf("没有该选项!\n");break;}printf("是否继续(y/n):");scanf("%s",ch);if(ch[0]=='y'||ch[0]=='Y') Menu2();loop:return;}void print(char *s,int d)
{int k=form[d];int len=strlen(s);printf("%s",s);for(int i=0;i<k-len;i++) printf(" ");printf(" ");
}void print1(int s,int d)
{int k=form[d];int len=0;printf("%d",s);while(s) s=s/10,len++;for(int i=0;i<k-len;i++) printf(" ");
}void Read_Inf()
{FILE *fp; if((fp=fopen("Plan_Inf.txt","rb"))!=NULL){for(L.PCnt=1;fread(&L.s[L.PCnt].inf,sizeof(PlanNode),1,fp);L.PCnt++){strcpy(L.s[L.PCnt].key,L.s[L.PCnt].inf.ID);}fclose(fp);L.PCnt--;}else{printf("尚还没有可用数据!\n");}
}void Save()
{FILE *fp;if((fp=fopen("Plan_Inf.txt","wb"))==NULL){printf("文件打开失败\n");}for(int i=1;i<=L.PCnt;i++){if((fwrite(&L.s[i].inf,sizeof(PlanNode),1,fp))==0) printf("保存数据出错\n");}
}bool Choice(char *s)
{int len=strlen(s);if(len==1&&s[0]>='1'&&s[0]<'10') return 1;return 0;
}void Exit()
{Save();printf("谢谢使用!\n");exit(0);
}void Distr_Radix(SLNode *s,int i)
{int j;memset(x,0,sizeof(x));for(int k=s[0].next;k;k=s[k].next){if(L.s[k].key[i]>'=A'&&L.s[k].key[i]<='Z') j=L.s[k].key[i]-'A'+10;else j=L.s[k].key[i]-'0';if(!x[j]) x[j]=k;else s[y[j]].next=k;y[j]=k;}
}void Coll_Radix(SLNode *s)
{for(int j=0;x[j]==0;j++); s[0].next=x[j];int tmp=y[j];while(j<Maxn-1){for(j=j+1;j<Maxn-1&&!x[j];j++);if(y[j]){s[tmp].next=x[j];tmp=y[j];}}s[tmp].next=0;
}void Get_Sql(SList &L)
{int k,k1,i;SLNode tmp;k=L.s[0].next;for(i=1;i<=L.PCnt;i++){while(k<i) k=L.s[k].next;k1=L.s[k].next;if(k!=i){tmp=L.s[k];L.s[k]=L.s[i];L.s[i]=tmp;L.s[i].next=k;}k=k1;}
}void Radix_Sort(SList &L)
{for(int i=0;i<L.PCnt;i++) L.s[i].next=i+1;L.s[L.PCnt].next=0;for(i=L.keyCnt-1;i>=0;--i){Distr_Radix(L.s,i);Coll_Radix(L.s);}Get_Sql(L);
}void Dis_Inf(int k,int flag=2)
{if(flag==1) {printf(" ┌────────────────────────────────────┐\n");printf(" │航班号│  班期  │ 起点 │ 终点 │起飞时间│到达时间│ 机型 │票价│票数│\n");printf("   ");   print(L.s[k].inf.ID,0);print(L.s[k].inf.Tdate,1);print(L.s[k].inf.start,2);print(L.s[k].inf.end,3);print(L.s[k].inf.Tstart,4);print(L.s[k].inf.Tend,5);print(L.s[k].inf.name,6);print1(L.s[k].inf.money,7);print1(L.s[k].inf.space,8);printf("\n");printf(" ┕────────────────────────────────────┘\n");}else{printf("┌────────────────────────────────────┐\n");printf("│航班号│  班期  │ 起点 │ 终点 │起飞时间│到达时间│ 机型 │票价│票数│\n");for(int i=1;i<=L.PCnt;i++){  printf("  ");print(L.s[i].inf.ID,0);print(L.s[i].inf.Tdate,1);print(L.s[i].inf.start,2);print(L.s[i].inf.end,3);print(L.s[i].inf.Tstart,4);print(L.s[i].inf.Tend,5);print(L.s[i].inf.name,6);print1(L.s[i].inf.money,7);print1(L.s[i].inf.space,8);   printf("\n");}printf("┕────────────────────────────────────┘\n");}
}void Search_Inf(int f)
{bool flag=0;int k;char st[N];if(f==2){printf("请输入起点站:");scanf("%s",st);}else if(f==3){printf("请输入终点站:");scanf("%s",st);}else if(f==4){printf("请输入起飞时间:");scanf("%s",st);}else {printf("请输入到达时间:");scanf("%s",st);}for(int i=1;i<=L.PCnt;i++){k=0;if(f==2&&strcmp(st,L.s[i].inf.start)==0) k=i;else if(f==3&&strcmp(st,L.s[i].inf.end)==0) k=i;else if(f==4&&strcmp(st,L.s[i].inf.Tstart)==0) k=i;else if(f==5&&strcmp(st,L.s[i].inf.Tend)==0) k=i;if(k){Dis_Inf(i,1);flag=1;}}if(!flag){printf("没有该数据\n");}
}int Bsearch(int l,int r)
{int i=l,j=r;char st[20];printf("请输入航班编号(字母大写):");scanf("%s",st);while(i<=j){int mid=(i+j)>>1;if(strcmp(L.s[mid].key,st)==0){Dis_Inf(mid,1);return mid;}else if(strcmp(L.s[mid].key,st)>0) j=mid-1;else i=mid+1;}printf("没有符合条件的航班编号\n");return 0;
}void Add_Inf()
{int n;int e=++L.PCnt;printf("请输入添加数据的个数:");scanf("%d",&n);if(n==0) return;printf("航班号  班期   起点  终点   起飞时间  到达时间  机型  票价  票数\n");while(n--){scanf("%s %s",L.s[e].inf.ID,L.s[e].inf.Tdate); scanf("%s %s",L.s[e].inf.start,L.s[e].inf.end);scanf("%s %s %s",L.s[e].inf.Tstart,L.s[e].inf.Tend,L.s[e].inf.name);scanf("%d %d",&L.s[e].inf.money,&L.s[e].inf.space);strcpy(L.s[e].key,L.s[e].inf.ID);e++;L.PCnt=e;}L.PCnt--;Radix_Sort(L);Save();
}void Get_Tiket()
{int t,n;if(L.PCnt==0){printf("还没有数据\n");return;}t=Bsearch(1,L.PCnt);if(t){printf("请输入订票的个数:");scanf("%d",&n);if(n>L.s[t].inf.space){printf("票额不足:");}else{printf("订票成功\n");L.s[t].inf.space-=n;}}else printf("没有该编号\n");
}

航班信息检索与查询(基数排序)相关推荐

  1. 航班信息的查询与检索Java,航班信息查询与检索

    第 2 章 设计要求与分析 2.1 设计要求 该设计要求对飞机航班信息进行排序和查找.可按航班的航班号.起点站.到达站.起 飞时间以及到达时间等信息进行查询. ...... 课程设计报告课程设计名称: ...

  2. C/C++航班信息的查询系统[2023-02-05]

    C/C++航班信息的查询系统[2023-02-05] 选题十七:航班信息的查询系统 [问题描述] 该设计要求对飞机航班信息进行排序和查找.可按航班的航班号.起点站.到达站.起飞时间以及到达时间等信息进 ...

  3. 基于C语言的航班信息的查询与检索,航班信息的查询和检索.

    题目:航班信息的查询与检索 设计一个实用的航班信息查询和检索系统,要求能对飞机航班信息进行排序和查询.可按航班的航班号.起点站.到达站.起飞时间以及到达时间等信息进行查询. 一. 模型分析 当今乘飞机 ...

  4. 航班数据实时查询技术整理与剖析

    所谓航班数据实时查询,是指连接到民航主机以获取的数据,包括航班座位可利用情况.航班号.起飞落地时间.机型.航站楼.舱位折扣.票价.燃油税.机场建设税.公里数.经停点.餐食等. 一.前言 国内目前机票在 ...

  5. 数据结构编程回顾(七)航班信息的查询与检索

    题目七:航班信息的查询与检索 设计要求:对飞机航班信息进行排序和查找.可按航班号. 起点站.终点站.起飞时间及到达时间等信息进行查询. 每个航班记录包括八项:航班号.起点站.终点站.航班期. 起飞时间 ...

  6. 航班实时起降查询调用代码实现

    航班实时起降查询代码实现功能: 当日航班,含国际 orgCity dstCity 通过始发城市查询航班 | flightNo 通过航班号查询航班. 接口名称:航班实时起降查询 接口平台:聚合数据 接口 ...

  7. 航班信息的查询与检索Java,航班信息查询与检索(java)

    大二上时用C语言写过一个关于航班信息查询与检索的课程设计,当时是自己抄代码,然后再让学长帮改的,前天晚上在"抄"代码时,突然想用java把那个课设题再写一次,于是昨天晚上就开始了, ...

  8. 算法与数据结构——航班信息的查询与检索

    一.概要设计 构建一个结构体,用于存放单个航班信息表,其中存储航班号.起点站.终点站.起飞时间.到达时间.飞机型号和票价:再在外部嵌套一个结构体,内含一个数组,用于存放总航班信息表. 初始化函数利用循 ...

  9. 航班起降动态api 航班起降时间查询代码

    航班经停地及起降时间查询,航班起降动态api代码实现功能:本航班的航班编号.停留地数量.起飞日期(年月日).机型.航班编号.起飞时间.起飞时间-- 接口名称:航班起降动态api 接口平台:聚合数据 接 ...

最新文章

  1. Java学习总结:57(Properties子类)
  2. CentOS系列启动流程详解
  3. 【软件工程】CMMI 能力成熟度模型集成 ( 简介 | 相关术语 | CMMI 等级评估次序 )
  4. 大数据实训记录(一)
  5. 浅谈群集与分布式基础知识
  6. java报错怎么看_IGV 哐当就不能用了,除了换台电脑还能怎么办?
  7. poj2154Color polya定理+欧拉函数优化
  8. mysql全局变量 error_记录——node-mysql连接池遇到的全局变量问题
  9. isnull mysql_mysql isnull用法讲解
  10. PostgreSQL11 data数据库目录迁移
  11. python list保存至csv文件
  12. mysql中的dump,从mysql中dump数据到本地
  13. java输入年月输出日历_java输入年份打印该年份的年历
  14. 一维数组转化为二维数组(java)
  15. 编写函数实现有序数组的二分查找
  16. Flink的容错机制
  17. WOW 最简单的插件入门,适合不知道怎么创建XML/自己写的插件始终不生效的
  18. HOOK SSDT 实现内核级的进程保护
  19. [POJ 1625] Censored! (AC自动机+DP+高精度)
  20. 实测:华为鸿蒙系统比 Android 系统快 60%!

热门文章

  1. 微信公众号之接入微信公众号服务器开发(一)
  2. Graham-Scan算法计算凸包的Python代码实现
  3. mySQL的备份及导入
  4. 全国大学生“高教杯“成图大赛:关于齿轮的快速建模研究
  5. 区块链技术入门,涉及哪些编程语言?
  6. Principal branch
  7. 人工智能教你识别口红色号
  8. 主播必备超萌代打猫咪,超人气全键盘版资源下载~
  9. 用python一键生成你的微信好友头像墙
  10. C语言初阶:进制,计算机的美丽语言