航班查询系统.docx
《航班查询系统.docx》由会员分享,可在线阅读,更多相关《航班查询系统.docx(18页珍藏版)》请在冰豆网上搜索。
![航班查询系统.docx](https://file1.bdocx.com/fileroot1/2023-3/30/97a7b117-c704-47e6-919b-b509117bfb76/97a7b117-c704-47e6-919b-b509117bfb761.gif)
航班查询系统
航班查询系统(代码+截图)
程序源代码:
#include
#include
#include
#include
#include
#include
#defineNull0
structflight
{
charfltNum[15];
charStartingPoint[20];
charTerminal[20];
charDepartureTime[8];
charArrivalTime[8];
charAircraftType[10];
intprice;
structflight*next;
};
voidprint()
{
printf("**************欢迎光临航班查询系统******************\n");
printf("|--------------------------------------------------|\n");
printf("|请输入选项编号(0-8)|\n");
printf("|--------------------------------------------------|\n");
printf("|1--录入航班信息|\n");
printf("|2--添加新航班信息|\n");
printf("|3--删除航班信息|\n");
printf("|4--排序航班信息|\n");
printf("|5--浏览所有航班信息|\n");
printf("|6--查询航班信息|\n");
printf("|7--退出航班查询系统|\n");
printf("|--------------------------------------------------|\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);
scanf("%s",&p->StartingPoint);
scanf("%s",&p->Terminal);
scanf("%s",&p->DepartureTime);
scanf("%s",&p->ArrivalTime);
scanf("%s",&p->AircraftType);
scanf("%d",&p->price);
head=p;
getchar();
}
else
{
s=(structflight*)malloc(sizeof(structflight));
scanf("%s",&s->fltNum);
scanf("%s",&s->StartingPoint);
scanf("%s",&s->Terminal);
scanf("%s",&s->DepartureTime);
scanf("%s",&s->ArrivalTime);
scanf("%s",&s->AircraftType);
scanf("%d",&s->price);
p->next=s;
p=s;
getchar();
}
}
s->next=Null;
if(head!
=NULL)
printf("录入信息成功!
\n");
returnhead;
}
voidinsert(structflight*head)
{
structflight*p,*pi;
pi=(structflight*)malloc(sizeof(structflight));
p=head;
printf("航班号起点站终点站起飞时间到达时间机型价格\n");
scanf("%s",&pi->fltNum);
scanf("%s",&pi->StartingPoint);
scanf("%s",&pi->Terminal);
scanf("%s",&pi->DepartureTime);
scanf("%s",&pi->ArrivalTime);
scanf("%s",&pi->AircraftType);
scanf("%d",&pi->price);
if(head==Null)
{
head=pi;
pi->next=Null;
}
else
{
while(p->next!
=Null)
{
p=p->next;
}
if(p->next!
=Null)
{
pi->next=p->next;
p->next=pi;
}
else
{
p->next=pi;
pi->next=Null;
}
}
}
structflight*delet(structflight*head,charfltNum[15])
{
structflight*p,*q,*s;
p=head;
if(head==Null)
{
printf("没有航班信息要删除。
\n");
returnhead;
}
if(strcmp(p->fltNum,fltNum)==0&&p==head)
{
head=p->next;
printf("删除成功!
\n");
returnhead;
}
while(p!
=Null)
{
if(strcmp(p->next->fltNum,fltNum)==0)
{
s=p;
q=p->next;
p->next=q->next;
free(q);
}
p=p->next;
}
if(s==Null)
printf("找不到相应的航班信息。
\n");
else
printf("删除成功!
\n");
returnhead;
}
structflight*bubblesort(structflight*head)
{
structflight*p,*q,*tail,*s;
tail=NULL;
while(head->next!
=tail)
{
p=head;
q=p->next;
while(q->next!
=tail)
{
if(strcmp(p->next->fltNum,q->next->fltNum)<0)
{
s=q->next;
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
q=s;
}
p=p->next;
q=q->next;
}
tail=q;
}
returnhead;
}
structflight*browse(structflight*head)
{
structflight*p;
p=head;
printf("航班号起点站终点站起飞时间到达时间机型价格\n");
while(p!
=Null)
{
printf("%-8s",p->fltNum);
printf("%-10s",p->StartingPoint);
printf("%-10s",p->Terminal);
printf("%-12s",p->DepartureTime);
printf("%-12s",p->ArrivalTime);
printf("%-8s",p->AircraftType);
printf("%-5d",p->price);
p=p->next;
printf("\n");
}
returnhead;
}
structflight*fltNumSearch(structflight*head,charfltNum[15])
{
structflight*p,*q;
p=head;
while(p!
=Null)
{
if(strcmp(p->fltNum,fltNum)==0)
{
q=p;
printf("航班号起点站终点站起飞时间到达时间机型价格\n");
printf("%-8s",p->fltNum);
printf("%-10s",p->StartingPoint);
printf("%-10s",p->Terminal);
printf("%-12s",p->DepartureTime);
printf("%-12s",p->ArrivalTime);
printf("%-8s",p->AircraftType);
printf("%-5d",p->price);
printf("\n");
}
p=p->next;
}
if(q==NULL)
printf("找不到航班信息!
\n");
returnhead;
}
structflight*DepartureTimeSearch(structflight*head,charDepartureTime[15])
{
structflight*p,*q;
p=head;
while(p!
=Null)
{
if(strcmp(p->DepartureTime,DepartureTime)==0)
{
q=p;
printf("航班号起点站终点站起飞时间到达时间机型价格\n");
printf("%-8s",p->fltNum);
printf("%-10s",p->StartingPoint);
printf("%-10s",p->Terminal);
printf("%-12s",p->DepartureTime);
printf("%-12s",p->ArrivalTime);
printf("%-8s",p->AircraftType);
printf("%-5d",p->price);
printf("\n");
}
p=p->next;
}
if(q==NULL)
printf("找不到航班信息!
\n");
returnhead;
}
structflight*ArrivalTimeSearc(structflight*head,charArrivalTime[15])
{
structflight*p,*q;
p=head;
while(p!
=Null)
{
if(strcmp(p->ArrivalTime,ArrivalTime)==0)
{
q=p;
printf("航班号起点站终点站起飞时间到达时间机型价格\n");
printf("%-8s",p->fltNum);
printf("%-10s",p->StartingPoint);
printf("%-10s",p->Terminal);
printf("%-12s",p->DepartureTime);
printf("%-12s",p->ArrivalTime);
printf("%-8s",p->AircraftType);
printf("%-5d",p->price);
printf("\n");
}
p=p->next;
}
if(q==NULL)
printf("找不到航班信息!
\n");
returnhead;
}
structflight*StartingPointSearch(structflight*head,charStartingPoint[20])
{
structflight*p,*q;
p=head;
while(p!
=Null)
{
if(strcmp(p->StartingPoint,StartingPoint)==0)
{
q=p;
printf("航班号起点站终点站起飞时间到达时间机型价格\n");
printf("%-8s",p->fltNum);
printf("%-10s",p->StartingPoint);
printf("%-10s",p->Terminal);
printf("%-12s",p->DepartureTime);
printf("%-12s",p->ArrivalTime);
printf("%-8s",p->AircraftType);
printf("%-5d",p->price);
printf("\n");
}
p=p->next;
}
if(q==NULL)
printf("找不到航班信息!
");
returnhead;
}
structflight*TerminalSearch(structflight*head,charTerminal[15])
{
structflight*p,*q;
p=head;
while(p!
=Null)
{
if(strcmp(p->Terminal,Terminal)==0)
{
printf("航班号起点站终点站起飞时间到达时间机型价格\n");
printf("%-8s",p->fltNum);
printf("%-10s",p->StartingPoint);
printf("%-10s",p->Terminal);
printf("%-12s",p->DepartureTime);
printf("%-12s",p->ArrivalTime);
printf("%-8s",p->AircraftType);
printf("%-5d",p->price);
printf("\n");
}
p=p->next;
}
if(q==NULL)
printf("找不到航班信息!
\n");
returnhead;
}
voidClear()
{
system("pause");
system("cls");
}
voidmenu()
{
printf("请选择:
\n");
printf("***1--按航班号查询***\n");
printf("***2--按起飞时间查询***\n");
printf("***3--按到达时间查询***\n");
printf("***4--按起点站查询***\n");
printf("***5--按终点站查询***\n");
printf("***0--返回上一级***\n");
}
voidmain()
{
charch;
intn=0;
structflight*head;
print();
while((ch=tolower(getchar()))!
='7')
{
switch(ch)
{
case'1':
{
printf("请问有多少个航班的资料需要输入?
:
\n");
scanf("%d",&n);
system("cls");
print();
head=init(n);
break;
}
case'2':
{
printf("请输入航班信息:
\n");
insert(head);
system("cls");
print();
printf("插入成功!
");
break;
}
case'3':
{
charfltNum[15];
printf("请输入要删除航班的航班号:
");
scanf("%s",&fltNum);
system("cls");
print();
head=delet(head,fltNum);
break;
}
case'4':
{
printf("排序结果如下:
\n");
head=bubblesort(head);
system("cls");
print();
head=browse(head);
break;
}
case'5':
{
system("cls");
print();
head=browse(head);
break;
}
case'6':
{
charinfo[20];
intm;
system("cls");
menu();
while
(1)
{
scanf("%d",&m);
if(m==0)
{
system("cls");
print();
break;
}
switch(m)
{
case1:
{
printf("请输入按航班号:
");
scanf("%s",&info);
system("cls");
menu();
head=fltNumSearch(head,info);
break;
}
case2:
{
printf("请输入飞机起飞时间:
");
scanf("%s",&info);
system("cls");
menu();
head=DepartureTimeSearch(head,info);
break;
}
case3:
{
printf("请输入飞机降落时间:
");
scanf("%s",&info);
system("cls");
menu();
head=DepartureTimeSearch(head,info);
break;
}
case4:
{
printf("请输入起点站:
");
scanf("%s",&info);
system("cls");
menu();
head=StartingPointSearch(head,info);
break;
}
case5:
{
printf("请输入终点站:
");
scanf("%s",&info);
system("cls");
menu();
head=TerminalSearch(head,info);
break;
}
}
}
default:
break;
}
}
}
if((ch=tolower(getchar()))='7')
printf("安全退出系统!
");
}
运行结果截图: