航班查询系统Word文档格式.docx
- 文档编号:4973351
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:21
- 大小:109.57KB
航班查询系统Word文档格式.docx
《航班查询系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《航班查询系统Word文档格式.docx(21页珍藏版)》请在冰点文库上搜索。
以链式基数排序为主线,用到二分查找和顺序查找等知识,还有建立静态链表等相关概念。
2.系统模块分析:
(1)航班排序对输入系统内的航班首先要进行排序,我们采用的基数排序,从低位到高位依次对关键字进行分配和收集,分两段实现其算法流程图。
(2)时间查找根据航班的起飞时间(到达时间)查找航班的信息。
(3)二分法查找功能
(4)显示功能显示功能是将所求单词的所有行列信息依次显示在屏幕上。
程序源代码:
#include<
stdio.h>
#include<
stdlib.h>
ctype.h>
#include<
string.h>
process.h>
conio.h>
#defineNull0
structflight
{
charfltNum[15];
charStartingPoint[20];
charTerminal[20];
charDepartureTime[8];
charArrivalTime[8];
charAircraftType[10];
intprice;
structflight*next;
};
voidprint()
printf("
**************欢迎光临航班查询系统******************\n"
);
|--------------------------------------------------|\n"
|请输入选项编号(0-8)|\n"
|1--录入航班信息|\n"
|2--添加新航班信息|\n"
|3--删除航班信息|\n"
|4--排序航班信息|\n"
|5--浏览所有航班信息|\n"
|6--查询航班信息|\n"
|7--退出航班查询系统|\n"
}
structflight*init(intn)
inti;
structflight*head,*p,*s;
for(i=1;
i<
=n;
i++)
{
printf("
航班号起点站终点站起飞时间到达时间机型价格\n"
if(i==1)
{
p=(structflight*)malloc(sizeof(structflight));
scanf("
%s"
&
p->
fltNum);
StartingPoint);
Terminal);
DepartureTime);
ArrivalTime);
AircraftType);
scanf("
%d"
price);
head=p;
getchar();
}
else
s=(structflight*)malloc(sizeof(structflight));
s->
p->
next=s;
p=s;
}
s->
next=Null;
if(head!
=NULL)
录入信息成功!
\n"
returnhead;
voidinsert(structflight*head)
structflight*p,*pi;
pi=(structflight*)malloc(sizeof(structflight));
p=head;
pi->
if(head==Null)
head=pi;
pi->
}
else
while(p->
next!
=Null)
p=p->
next;
if(p->
pi->
next=p->
next=pi;
structflight*delet(structflight*head,charfltNum[15])
structflight*p,*q,*s;
没有航班信息要删除。
returnhead;
if(strcmp(p->
fltNum,fltNum)==0&
&
p==head)
head=p->
删除成功!
while(p!
if(strcmp(p->
next->
fltNum,fltNum)==0)
s=p;
q=p->
next=q->
free(q);
p=p->
if(s==Null)
找不到相应的航班信息。
structflight*bubblesort(structflight*head)
{
structflight*p,*q,*tail,*s;
tail=NULL;
while(head->
=tail)
p=head;
while(q->
if(strcmp(p->
fltNum,q->
fltNum)<
0)
{
s=q->
p->
q->
next=q;
q=s;
}
q=q->
tail=q;
structflight*browse(structflight*head)
structflight*p;
%-8s"
p->
%-10s"
%-12s"
%-5d"
structflight*fltNumSearch(structflight*head,charfltNum[15])
structflight*p,*q;
q=p;
printf("
if(q==NULL)
找不到航班信息!
structflight*DepartureTimeSearch(structflight*head,charDepartureTime[15])
DepartureTime,DepartureTime)==0)
structflight*ArrivalTimeSearc(structflight*head,charArrivalTime[15])
ArrivalTime,ArrivalTime)==0)
q=p;
p=p->
structflight*StartingPointSearch(structflight*head,charStartingPoint[20])
StartingPoint,StartingPoint)==0)
"
structflight*TerminalSearch(structflight*head,charTerminal[15])
Terminal,Terminal)==0)
voidClear()
system("
pause"
cls"
voidmenu()
请选择:
***1--按航班号查询***\n"
***2--按起飞时间查询***\n"
***3--按到达时间查询***\n"
***4--按起点站查询***\n"
***5--按终点站查询***\n"
***0--返回上一级***\n"
voidmain()
charch;
intn=0;
structflight*head;
print();
while((ch=tolower(getchar()))!
='
7'
)
switch(ch)
case'
1'
:
{
printf("
请问有多少个航班的资料需要输入?
scanf("
n);
system("
print();
head=init(n);
break;
case'
2'
请输入航班信息:
insert(head);
插入成功!
3'
charfltNum[15];
请输入要删除航班的航班号:
head=delet(head,fltNum);
4'
排序结果如下:
head=bubblesort(head);
head=browse(head);
5'
head=browse(head);
6'
charinfo[20];
intm;
menu();
while
(1)
{
scanf("
m);
if(m==0)
{
system("
print();
break;
}
switch(m)
case1:
{
printf("
请输入按航班号:
scanf("
info);
system("
menu();
head=fltNumSearch(head,info);
break;
}
case2:
请输入飞机起飞时间:
head=DepartureTimeSearch(head,info);
}
case3:
请输入飞机降落时间:
case4:
printf("
请输入起点站:
head=StartingPointSearch(head,info);
}
case5:
请输入终点站:
head=TerminalSearch(head,info);
}
default:
break;
if((ch=tolower(getchar()))='
安全退出系统!
运行结果截图:
三.总结
在本次课程设计中,我深刻认识到了自己还有太多的基本思想没有真正的理解。
在以后的学习过程中,要认真进行上机实验,在实践中锻炼自己。
写程序的过程中要严谨,有耐心,慢慢加深对数据结构的理解与掌握。
在课余时间要多写程序,熟练掌握在调试程序过程中所遇到的常见错误,以后尽量避免出现这样的错误。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航班 查询 系统