航班信息查询与检索系统Word文档下载推荐.docx

上传人:b****4 文档编号:7952339 上传时间:2023-05-09 格式:DOCX 页数:22 大小:320.56KB
下载 相关 举报
航班信息查询与检索系统Word文档下载推荐.docx_第1页
第1页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第2页
第2页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第3页
第3页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第4页
第4页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第5页
第5页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第6页
第6页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第7页
第7页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第8页
第8页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第9页
第9页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第10页
第10页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第11页
第11页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第12页
第12页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第13页
第13页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第14页
第14页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第15页
第15页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第16页
第16页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第17页
第17页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第18页
第18页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第19页
第19页 / 共22页
航班信息查询与检索系统Word文档下载推荐.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

航班信息查询与检索系统Word文档下载推荐.docx

《航班信息查询与检索系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《航班信息查询与检索系统Word文档下载推荐.docx(22页珍藏版)》请在冰点文库上搜索。

航班信息查询与检索系统Word文档下载推荐.docx

课设内容和要求:

对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间

和到达时间等信息进行查询。

要求:

1.设计数据结构

2.选择合适的排序和查找算法

3.设计软件的功能结构

4.采用模块化编程

5.给出现实方法和算法

6.按课程设计规范撰写课程设计报告

参考资料:

[1]严蔚敏、陈文博,数据结构及应用算法教程[M].北京:

清华大学出版社,

[2]张小莉、王苗、罗文劼,数据结构与算法[M].北京:

机械工业出版社,

教研室审核意见:

教研室主任签字:

指导教师(签名)

学生(签名)

课程设计总结:

本设计的重点和难点是在于对航班数据的排序和查找,以链式基数排序为主线,用到了二分查找和顺序查找等知识,还有建立静态链表等。

通过这次课程设计,使我对C语言编程有了新的认识。

以前编程只是注重如何编写函数能够完成所需要的功能,只是凭单纯的意识和简单的语句来堆砌出一段程序。

但现在编程感觉完全不同了。

在编写一个程序之前,自己能够综合考虑各种因素,选取自己需要的数据结构,在编写每一个函数之前,可以仔细斟酌比对,挑选出最适合当前状况的算法。

这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。

这样无形中就提高了自己编写的程序的质量。

另外,我还体会到深刻理解数据结构的重要性。

只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。

了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。

1、题目介绍

设计一个航班信息查询与检索系统。

可按航班的航班号、起点站、终点站、起飞时间以及到达时间等信息进行查询。

2、课程设计要求

1、每个航班记录包括八项:

航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。

如下表所示:

航班号

起点站

终点站

班期

起飞时间

到达时间

机型

票价

CA1544

合肥

北京

上海

广州

每日

1420

1615

M90

1280

CZ3869

重庆

深圳

、对航班信息进行排序与查找。

3、概要设计

、设计思路

根据题目所要求,程序必须实现航班信息的录入和查询。

程序首先定义了一个储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。

在查询设计中,使用折半查找法对排好序的航班号数据实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。

、流程图

数据输入、排序

接受查找条件、查找关键字

定义数据类型

显示输出

4、算法实现

.定义数据类型

根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数据类型:

typedefstruct{

charstart[6];

函数描述

voiddistribute(slnode*sl,inti,arrtype_nf,arrtype_ne)

{

intj,p;

for(j=0;

j<

10;

j++)

f[j]=e[j]=0;

}

for(p=sl[0].next;

p;

p=sl[p].next)

j=sl[p].keys[i]%48;

ext=p;

e[j]=p;

ext=f[j];

t=e[j];

while(j<

10-1)

for(j=j+1;

10-1&

&

!

f[j];

j++);

}ext=0;

链式基数排序算法

voidradixsort(sllist&

l)

inti;

arrtype_nfn,en;

arrtype_cfc,ec;

for(i=0;

i<

;

i++)

[i].next=i+1;

[].next=0;

ext;

for(i=1;

while(p<

i)

p=[p].next;

q=[p].next;

if(p!

=i)

temp=[p];

[p]=[i];

[i]=temp;

p=q;

折半查找函数定义

intbinsearch(sllistl,charkey[])

intlow,high,mid;

low=1;

high=;

while(low<

=high)

mid=(low+high)/2;

if(strcmp(key,[mid].keys)==0)

returnmid;

elseif(strcmp(key,[mid].keys)<

0)

high=mid-1;

else

low=mid+1;

return0;

5、测试数据

编译后运行,显示:

录入信息^_^

航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票价

录入:

CA1544合肥北京 1055 1240 733 960

显示:

是否继续y/n:

y

航班号起点站终点站班期 起飞时间 到达时间 机型 票价

MU5341 上海广州每日 1420 1615 M90 1280

航班号起点站 终点站 班期 起飞时间 到达时间 机型 票价

CZ3869重庆深圳085510357331010

n

录入航班信息后,屏幕显示:

-------------------------------

*航班信息查询系统*

*1.航班号*

*2.起点站*

*3.终点站*

*4.起飞时间*

*5.到达时间*

*0.退出*

-----------------------------

(0-5)号服务项目:

输入要查询的航班号(字母要大写):

航班号 起点站 终点站班期 起飞时间 到达时间 机型 票价

CA1544合肥北京 1055 1240 733 960

2

输入要查询的航班起点站:

附录

源程序:

#include<

>

#definemax100

#definekeylen7

typedefstruct

charstart[6];

charend[6];

charsche[10];

chartime1[5];

chartime2[5];

charmodel[4];

intprice;

}info;

typedefstruct

charkeys[keylen];

infoothers;

intnext;

}slnode;

slnodesl[max];

intkeynum;

intlength;

}sllist;

typedefintarrtype_n[10];

typedefintarrtype_c[26];

voiddistribute(slnode*sl,inti,arrtype_nf,arrtype_ne)

intj,p;

for(j=0;

{

f[j]=e[j]=0;

}

for(p=sl[0].next;

j=sl[p].keys[i]%48;

if(!

f[j])

f[j]=p;

else

sl[e[j]].next=p;

e[j]=p;

voidcollect(slnode*sl,inti,arrtype_nf,arrtype_ne)

intj,t;

sl[0].next=f[j];

t=e[j];

while(j<

for(j=j+1;

if(f[j])

{

sl[t].next=f[j];

t=e[j];

}

sl[t].next=0;

voiddistribute_c(slnode*sl,inti,arrtype_cf,arrtype_ce)

26;

j=sl[p].keys[i]%65;

else

voidcollect_c(slnode*sl,inti,arrtype_cf,arrtype_ce)

26-1)

26-1&

voidradixsort(sllist&

inti;

arrtype_nfn,en;

arrtype_cfc,ec;

for(i=0;

[i].next=i+1;

[].next=0;

for(i=;

i>

=2;

i--)

distribute,i,fn,en);

collect,i,fn,en);

for(i=1;

=0;

distribute_c,i,fc,ec);

collect_c,i,fc,ec);

voidarrange(sllist&

l)

intp,q,i;

slnodetemp;

p=[0].next;

while(p<

p=[p].next;

q=[p].next;

if(p!

{

temp=[p];

[p]=[i];

[i]=temp;

[i].next=p;

p=q;

intlow,high,mid;

low=1;

high=;

while(low<

mid=(low+high)/2;

if(strcmp(key,[mid].keys)==0)

returnmid;

elseif(strcmp(key,[mid].keys)<

high=mid-1;

low=mid+1;

return0;

voidseqsearch(sllistl,charkey[],inti)

intj,k,m=0;

printf("

------------------------------------------------------------\n"

);

航班号起点站终点站班期起飞时间到达时间机型票价\n"

for(j=1;

=;

switch(i)

case2:

k=strcmp(key,[j].;

break;

case3:

case4:

case5:

}

if(k==0)

m=1;

printf("

%-8s%-7s%-7s%-11s%-6s%-6s%5s%4d\n"

[j].keys,[j].,[j].,[j].,[j].,[j].,[j].,[j].;

if(m==0)

无此航班信息,可能是输入错误!

\n"

-------------------------------------------------------\n"

voidsearchcon(sllistl)

charkey[keylen];

inti=1,k;

while(i>

=1&

=5)

printf("

----------------------\n"

*航班信息查询系统*\n"

*1.航班号*\n"

*2.起点站*\n"

*3.终点站*\n"

*4.起飞时间*\n"

*5.到达时间*\n"

*0.退出*\n"

----------------------\n"

(0-5)号服务项目:

"

scanf("

%d"

&

i);

\n"

case1:

printf("

scanf("

%s"

key);

k=binsearch(l,key);

printf("

--------------------------------------------------------------\n"

if(k==0)

printf("

else

{

printf("

%-8s%-7s%-7s%-11s%-6s%-6s%-5s%4d\n"

[k].keys,[k].,[k].,[k].,[k].,[k].,[k].,[k].;

}

break;

case2:

scanf("

seqsearch(l,key,i);

break;

case3:

输入要查询的航班终点站:

case4:

输入要查询的航班起飞时间:

case5:

输入要查询的航班到达时间:

case0:

\n\n宝宝走了\n\n"

voidinputdata(sllist&

inti=++;

charyn='

y'

while(yn=='

||yn=='

Y'

信息录入^_^\n\n"

航班号起点站终点站班期起飞时间到达时间机型票价\n"

%s%s%s%s%s%s%s%d"

[i].keys,[i].,[i].,[i].,[i].,[i].,[i].,&

[i].;

++i;

getchar();

radixsort(l);

arrange(l);

是否继续\ny/n:

%c"

yn);

=i-1;

voidmain()

sllistl;

=6;

=0;

inputdata(l);

searchcon(l);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2