航班管理系统.docx
- 文档编号:10817925
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:21
- 大小:81.28KB
航班管理系统.docx
《航班管理系统.docx》由会员分享,可在线阅读,更多相关《航班管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
航班管理系统
NO.1航班管理系统
•一、题目内容的描述
1.航班查询系统
飞机航班信息包括:
航班号、起点站、终点站、起飞时间、到达时间、机型以及票价,实例如下:
设计航班查询系统要求能对飞机航班信息进行增加、删除、排序和查找。
可按航班的航班号、起点站、终点站、起飞时间以及到达时间进行查询。
•二、应用程序功能的详细说明
通过建立一个链表来实现航班信息储存功能,每个结点的信息包括航班号、出发地、目的地、出发时间、到达时间、是否经停、价格,并编写功能函数使系统具有插入、查询、删除、更新、排序的功能。
•三、主要模块的算法描述
菜单选项
菜单选项图
航班信息的建立
插入信息
查询航班:
•四、结束语
通过此程序的编写我熟悉了链表的运用,链表是本学期学习的重点,灵活性比栈好,可以通过指针实现插入删除等功能,但要注意移动指针的逻辑关系,如果不注意很容易指向了不是你要的地方。
•五、程序的源代码清单
#include"stdio.h"
#include"stdlib.h"
#include"ctype.h"
#include"process.h"
#include"string.h"
#include
usingnamespacestd;
structflight//定义航班信息结构体
{
charflight_num[10];
charflight_start[20];
charflight_destination[20];
charflight_takeoff_time[10];
charflight_arrive_time[10];
charflight_isStop[5];
intflight_price;
structflight*next;
};
voidwelcome()//显示程序菜单
{
printf("************************欢迎使用航班管理系统**********************\n");
printf("******************************************************************\n");
printf("******************************************************************\n");
printf("**********************按下对应数字实现相应功能********************\n");
printf("**************************1.创建航班信息**************************\n");
printf("**************************2.增加航班信息**************************\n");
printf("**************************3.查询航班信息**************************\n");
printf("**************************4.删除航班信息**************************\n");
printf("**************************0.退出管理系统**************************\n");
printf("******************************************************************\n");
printf("******************************************************************\n");
printf("************************CopyRightByKobeLee**********************\n");
printf("******************************************************************\n");
}
structflight*InitSystem(intn)//建立航班信息链表
{
inti;
structflight*head,*p,*s;
for(i=1;i<=n;i++)
{
printf("请输入第%d次航班信息:
\n",i);
if(i==1)
{
p=(structflight*)malloc(sizeof(structflight));
printf("航班号:
");
scanf("%s",&p->flight_num);
printf("出发地:
");
scanf("%s",&p->flight_start);
printf("目的地:
");
scanf("%s",&p->flight_destination);
printf("起飞时间:
");
scanf("%s",&p->flight_takeoff_time);
printf("到达时间:
");
scanf("%s",&p->flight_arrive_time);
printf("经停:
");
scanf("%s",&p->flight_isStop);
printf("价格:
");
scanf("%d",&p->flight_price);
head->next=p;
}
else
{
s=(structflight*)malloc(sizeof(structflight));
printf("航班号:
");
scanf("%s",&s->flight_num);
printf("出发地:
");
scanf("%s",&s->flight_start);
printf("目的地:
");
scanf("%s",&s->flight_destination);
printf("起飞时间:
");
scanf("%s",&s->flight_takeoff_time);
printf("到达时间:
");
scanf("%s",&s->flight_arrive_time);
printf("经停:
");
scanf("%s",&s->flight_isStop);
printf("价格:
");
scanf("%d",&s->flight_price);
s->next=head->next;
head->next=s;
}
printf("\n");
}
returnhead;
}
intInsert(structflight*head)//添加航班信息,头插法;
{
structflight*p,*pi;
pi=(structflight*)malloc(sizeof(structflight));//为新添加的航班开辟空间
p=head;
printf("请输入新添加的航班信息:
\n\n");
printf("航班号:
");
scanf("%s",&pi->flight_num);
printf("出发地:
");
scanf("%s",&pi->flight_start);
printf("目的地:
");
scanf("%s",&pi->flight_destination);
printf("起飞时间:
");
scanf("%s",&pi->flight_takeoff_time);
printf("到达时间:
");
scanf("%s",&pi->flight_arrive_time);
printf("经停:
");
scanf("%s",&pi->flight_isStop);
printf("价格:
");
scanf("%d",&pi->flight_price);
if(head==NULL)
{
head->next=pi;
pi->next=NULL;
}
else
{
pi->next=p->next;
p->next=pi;
}
return0;
}
voidSearchByFlightNum(flight*head)
{
charnum[10];
printf("请输入航班号:
");
scanf("%s",&num);
if(head->next==NULL)
{
printf("没有航班信息,不能查询,请先创建信息。
");
return;
}
else
{
intcount=0;
while(head->next!
=NULL)
{
head=head->next;
if(strcmp(num,head->flight_num)==0)
{
printf("航班号出发地目的地起飞时间到达时间是否经停价格\n");
printf("%-8s%-10s%-10s%-10s%-10s%-12s%d\n",head->flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);
count++;
}
}
if(count==0)printf("没有找到所需航班,请重新查询。
");
return;
}
}
voidSearchByFlightStart(flight*head)
{
charstart[10];
printf("请输入出发地:
");
scanf("%s",&start);
if(head->next==NULL)
{
printf("没有航班信息,不能查询,请先创建信息。
\n\n");
return;
}
else
{
intcount=0;
while(head->next!
=NULL)
{
head=head->next;
if(strcmp(start,head->flight_start)==0)
{
printf("航班号出发地目的地起飞时间到达时间是否经停价格\n");
printf("%-8s%-10s%-10s%-10s%-10s%-12s%d\n",head->flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);
count++;
}
}
if(count==0)printf("没有找到所需航班,请重新查询。
");
return;
}
}
voidSearchByFlightDestination(flight*head)
{
chardestination[10];
printf("请输入目的地:
");
scanf("%s",&destination);
if(head->next==NULL)
{
printf("没有航班信息,不能查询,请先创建信息。
\n");
return;
}
else
{
intcount=0;
while(head->next!
=NULL)
{
head=head->next;
if(strcmp(destination,head->flight_destination)==0)
{
printf("航班号出发地目的地起飞时间到达时间是否经停价格\n");
printf("%-8s%-10s%-10s%-10s%-10s%-12s%d\n",head->flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);
count++;
}
}
if(count==0)
printf("没有找到所需航班,请重新查询。
\n\n\n");
return;
}
}
voidSearchByFlightPrice(flight*head)
{
intprice;
printf("请输入价格:
");
scanf("%d",&price);
if(head->next==NULL)
{
printf("没有航班信息,不能查询,请先创建信息。
\n\n");
return;
}
else
{
intcount=0;
while(head->next!
=NULL)
{
if(head->flight_price==price)
{
printf("航班号出发地目的地起飞时间到达时间是否经停价格\n");
printf("%-8s%-10s%-10s%-10s%-10s%-12s%d\n",head->flight_num,head->flight_start,head->flight_destination,head->flight_takeoff_time,head->flight_arrive_time,head->flight_isStop,head->flight_price);
count++;
}
head=head->next;
}
if(count==0)printf("没有找到符合条件的航班,请重新查询。
\n\n\n");
return;
}
}
voidSearch(flight*head)
{
if(head->next==NULL)
{
printf("没有可供查询的航班信息,请先添加信息。
");
return;
}
intSearch_way;
system("cls");
printf("*********************选择查询方式***********************\n");
printf("********************************************************\n");
printf("*******************1.按航班号查询***********************\n");
printf("*******************2.按出发地查询***********************\n");
printf("*******************3.按目的地查询***********************\n");
printf("*******************4.按价格查询***********************\n");
printf("*******************0.退出查询*************************\n");
printf("********************************************************\n\n\n");
scanf("%d",&Search_way);
switch(Search_way)
{
case1:
{
SearchByFlightNum(head);
break;
}
case2:
{
SearchByFlightStart(head);
break;
}
case3:
{
SearchByFlightDestination(head);
break;
}
case4:
{
SearchByFlightPrice(head);
break;
}
case0:
break;
default:
break;
}
return;
}
structflight*Delete(flight*head,charnum[10])
{
structflight*p,*q;
p=head;
if(p->next==NULL)
{
printf("航班信息为空,不能删除,请先创建航班信息。
\n");
returnhead;
}
while(((strcmp(p->flight_num,num))!
=0)&&p->next!
=NULL)
{
q=p;
p=p->next;
}
if((strcmp(p->flight_num,num))==0)
{
if(p==head)
head=p->next;
else
q->next=p->next;
free(p);
printf("成功删除。
");
}
else
printf("没有您要删除的航班,请确认输入正确。
\n");
returnhead;
}
voidList(structflight*head)
{
structflight*p;
p=head->next;
printf("所有航班信息:
\n");
printf("航班号出发地目的地起飞时间到达时间是否经停价格\n");
while(p!
=NULL)
{
printf("%-8s%-10s%-10s%-10s%-10s%-12s%d\n",p->flight_num,p->flight_start,p->flight_destination,p->flight_takeoff_time,p->flight_arrive_time,p->flight_isStop,p->flight_price);
p=p->next;
}
}
intmain()
{
charchoice;
intcreate_num=0;
structflight*head;
intprice;
do
{
system("cls");
welcome();
scanf("%c",&choice);
switch(choice)
{
case'1':
{
printf("请输入需要创建的信息条数:
");
scanf("%d",&create_num);
head=InitSystem(create_num);
List(head);
break;
}
case'2':
{
Insert(head);
List(head);
break;
}
case'3':
{
Search(head);
break;
}
case'4':
{
if(head->next!
=NULL)
{
charDelete_num[10];
List(head);
printf("请输入要删除的航班号:
\n");
scanf("%s",&Delete_num);
head=Delete(head,Delete_num);
List(head);
}
else
{
printf("没有航班信息,不能删除,请先添加信息。
");
}
break;
}
default:
break;
}
system("pause");
}while(choice!
='0');
return0;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航班 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)