- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、设计题目
设计一个航班信息查询与检索系统。
二、基本要求
1、每个航班记录包括八项:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。
2、要有输入模块
3、对航班信息进行排序与查找。
三、运行环境
CPU:奔腾3;操作系统:Windows 98;编程工具:TC2.0。
四、算法设计思想
1、设计思路
根据题目所要求,程序必须实现航班信息的录入和查询。程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。
2、流程图
定义数据类型
定义数据类型
数据输入、排序
数据输入、排序
接受查找条件、查找关键字
接受查找条件、查找关键字
输出查找结果
输出查找结果
3、各函数说明
(1)、一趟数字字符分配函数
void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e)
(2)、一趟数字字符收集函数
void collect(slnode *sl,int i,arrtype_n f,arrtype_n e)
(3)、一趟字母字符分配函数
void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e)
(4)、一趟字母字符收集函数
void collect_c(slnode *sl,int i,arrtype_c f,arrtype_c e)
(5)、链式基数排序函数
void radixsort(sllist l)
(6)、按指针链重新整理静态链表
void arrange(sllist l)//重新整理
(7)、二分查找函数
int binsearch(sllist l,keytype key[])
(8)、顺序查找函数
void seqsearch(sllist l,keytype key[],int i)
(9)、查询检索菜单控制程序
void searchcon(sllist l)
(10)、录入航班数据函数
void inputdata(sllist l)
(11)、主函数
void main()
五、源代码
#include stdafx.h
#include stdio.h
#include string.h
#define maxspace 100
#define keylen 7
#define radix_n 10
#define radix_c 26
typedef char keytype;
typedef struct
{
char start[6];
char end[6];
char sche[10];
char time1[5];
char time2[5];
char model[4];
int price;
}infotype;
typedef struct
{
keytype keys[keylen];
infotype others;
int next;
}slnode;
typedef struct
{
slnode sl[maxspace];
int keynum;
int length;
}sllist;
typedef int arrtype_n[radix_n];
typedef int arrtype_c[radix_c];
void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e)
{
int j,p;
for(j=0;jradix_n;j++)
{
f[j]=e[j]=0;
}
for(p=sl[0].next;p;p=sl[p].next)
{
j=sl[p].keys[i]%48;
if(!f[j])
f[j]=p;
else
sl[e[j]].next=p;
e[j]=p;
}
}
void collect(slnode *sl,int i,arrtype_n f,arrtype_n e)
{
int j,t;
for(j=0;!f[j];j++);
sl[0].next=f[j];
t=e[j];
while(jradix_n-1)
{
for(j=j+1;jradix_n-1!f[j];j++);
if(f[j])
{
sl[t].next=f[j];
t=e[j];
}
}
sl[t].next=0;
}
void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e)
{
int j,p;
for(j=0;jradix_c;j++)
您可能关注的文档
- 心理健康对大学生学习的意义.docx
- 2022防治结核病工作计划模板.docx
- A4纸排版打印一寸二寸五寸照片模板.doc
- 甘州区选拔学校校长理论考试试题.docx
- 医院管理系统方案.doc
- 急性心肌梗死护理常规.docx
- 最新北师大版二下第4单元《测量》单元教材解读.docx
- JJF 2193-2025呕吐毒素快速检测仪校准规范.pdf
- 《JJF 2193-2025呕吐毒素快速检测仪校准规范》.pdf
- 计量规程规范 JJF 2193-2025呕吐毒素快速检测仪校准规范.pdf
- JJG 878-2025熔体流动速率仪检定规程.pdf
- 《JJG 878-2025熔体流动速率仪检定规程》.pdf
- JJF 2203-2025水质毒性分析仪校准规范.pdf
- 计量规程规范 JJF 2203-2025水质毒性分析仪校准规范.pdf
- 《JJF 2203-2025水质毒性分析仪校准规范》.pdf
- JJF 2189-2025铂电阻温度计用精密测温仪校准规范.pdf
- 计量规程规范 JJF 2189-2025铂电阻温度计用精密测温仪校准规范.pdf
- 《JJF 2189-2025铂电阻温度计用精密测温仪校准规范》.pdf
- JJF 2207-2025医用空气系统校准规范.pdf
- 计量规程规范 JJF 2207-2025医用空气系统校准规范.pdf
文档评论(0)