对飞机航班信息进行排序和查找Word文档下载推荐.docx
《对飞机航班信息进行排序和查找Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《对飞机航班信息进行排序和查找Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。
根据要实现的功能,应该以链表来表示集合,所以需要构造的数据类型为链表和集合。
2、
结构体hangban
structhangban{
chark[6];
//航班号
stringqd;
//起点站
stringzd;
//终点站
stringbq;
//班期
intbtime;
//起飞时间
intetime;
//到达时间
stringjx;
//机型
intprice;
//票价
};
//结构体hangban
3、部分函数功能简介
voidinitb()//创建表
voidprintb()//输出
voidchazhao()//查找信息
voidfindk()//按航班号查找
voidfindqd()//按起点站查找
voidfindzd()//按终点站查找
voidfindbq()//按班期查找
voidfindbtime()//按起飞时间查找
voidfindetime()//按到达时间查找
voidfindjx()//按机型查找
voidfindprice()//按票价查找
六、详细设计
#include<
iostream>
usingnamespacestd;
//结构体hangban
constintn=3;
hangbanh[n];
voidinitb()//创建航班信息表
{
intl;
hangbanh1;
for(inti=0;
i<
n;
i++){//输入航班信息
cout<
<
"
输入第"
i+1<
个航班的信息"
endl;
输入航班号"
for(intj=0;
j<
6;
j++)cin>
>
h[i].k[j];
输入起点站"
cin>
h[i].qd;
输入终点站"
h[i].zd;
输入班期"
h[i].bq;
输入起飞时间"
h[i].btime;
输入到达时间"
h[i].etime;
输入机型"
h[i].jx;
输入票价"
h[i].price;
}
n-1;
i++)//按航班号排序
n-i-1;
j++){
l=2;
while(l<
6){
if(h[j].k[l]>
h[j+1].k[l]){h1=h[j];
h[j]=h[j+1];
h[j+1]=h1;
break;
}
elseif(h[j].k[l]==h[j+1].k[l])l++;
elseif(h[j].k[l]<
h[j+1].k[l])break;
voidprintb()//显示航班信息表
i++){
第"
航班号"
"
起点站"
终点站"
班期"
起飞时间"
到达时间"
机型"
票价"
j++)cout<
;
h[i].qd<
h[i].zd<
h[i].bq<
h[i].btime<
h[i].etime<
h[i].jx<
h[i].price<
voidfindk()//通过航班号查询
intcount=0;
通过航班号查询"
chara[6];
输入要查询的航班号:
for(inti=2;
i++)cin>
a[i];
intj;
j=2;
while(j<
if(h[i].k[j]==a[j])j++;
elsebreak;
if(j==6){cout<
个航班是要查找的航班"
count++;
if(count==0)cout<
没有符合要求的航班"
endl<
voidfindqd()//通过起点站查找
通过起点站查找:
stringk;
k;
if(k==h[i].qd){cout<
voidfindzd()//通过终点站查找
通过终点站查找:
if(k==h[i].zd){cout<
voidfindbq()//通过班期查找
通过班期查找:
if(k==h[i].bq){cout<
voidfindbtime()//通过起飞时间查找
通过起飞时间查找:
intk;
if(k==h[i].btime){cout<
voidfindetime()//通过到达时间查找
通过到达时间查找:
if(k==h[i].etime){cout<
voidfindjx()//通过机型查找
通过机型查找:
if(k==h[i].jx){cout<
voidfindprice()//通过票价查找
通过票价查找:
if(k==h[i].price){cout<
voidchazhao()//查找信息
菜单2"
1.按航班号查找"
2.按起点站查找"
3.按终点站查找"
4.按班期查找"
5.按起飞时间查找"
6.按到达时间查找"
7.按机型查找"
8.按票价查找"
9.回到菜单1"
输入选择:
//菜单2
intk2;
while(cin>
k2){
if(k2==1)findk();
if(k2==2)findqd();
if(k2==3)findzd();
if(k2==4)findbq();
if(k2==5)findbtime();
if(k2==6)findetime();
if(k2==7)findjx();
if(k2==8)findprice();
if(k2==9)break;
intmain()
intk1;
************航班信息查询**************"
菜单1"
1.创建一个航班表,并按航班号排序"
2.输出航班表"
3.查找航班"
4.退出程序"
//菜单1
k1){
if(k1==1)initb();
if(k1==2)printb();
if(k1==3)chazhao();
if(k1==4)break;
菜单1"
//菜单1
}七、使用说明、测试分析及结果
1、测试结果与分析;
八、程序的调试过程
调试记录
序号
问题出处
解决方法
1
voidchazhao()
编译有问题
定义了新变量
2
查找不对
修改
voidfindetime();
3
不能正确调用
修改intmain()
4
不能返回原菜单
调用出现问题
九、实验总结
在做实验航班查询的过程中,我对函数有了更深的理解,对函数的调用也熟悉了许多。
而且在学习的过程中又让我温习了冒泡排序法,对元素的查找也更加的熟练。
也让我认识到写算法对于编程很重要。
做程序应由小到大。
这样在做程序的过程中找错误更加方便,效果更好。