航班信息的查询与检索的程序设计模版.docx
《航班信息的查询与检索的程序设计模版.docx》由会员分享,可在线阅读,更多相关《航班信息的查询与检索的程序设计模版.docx(29页珍藏版)》请在冰豆网上搜索。
航班信息的查询与检索的程序设计模版
《数据结构》
课程设计报告
设计题目航班信息的查询与检索
专业软件工程
班级08级一班
姓名李桦
学号081112345
完成日期2010-6-8
2010年6月8日星期二
目录
1.问题描述………………………………………………页码
2.系统设计………………………………………………页码
3.数据结构与算法描述…………………………………页码
4.测试结果与分析………………………………………页码
5.总结…………………………………………………页码
6.参考文献………………………………………………页码
附录程序源代码…………………………………………页码
航班信息的查询与检索
1.问题描述:
上学期,我们在刘理老师的带领下,大致学习了一下《数据结构》,实现了简单的数据结构算法。
今年,我们将在王咯老师的带领下,完成简单的数据结构课程设计。
在数据结构的学习中我们知道,排序和查找是在数据结构中使用频率非常高。
为了能够快速有效地进行查询与检索,我们需要对记录按关键字进行排列。
选择《航班信息查询与检索》这个课题,主要是因为当今时代的需求。
随着科技与经济的发展,当今乘飞机的人越来越多,这时,快速的了解各类航班的班次、时间、价格及机型的信息将备受关注。
在我开发的这个《航班信息查询与检索》这个系统中,航班号将成为关键字,而且是具有结构特点的一类关键字。
通过关键字的键入,你将获得你所需要的航班的全部信息。
2.系统设计
2.1设计目标:
通过一定的数据结构,实现对信息的查询与检索并按要求输出。
试设计一个航空客运定票系统。
[基本要求]每条航线所涉及的信息有:
终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
系统能实现的操作和功能如下:
1)查询航线:
根据客户提出的终点站名输出如下信息:
航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;
2)承办订票业务:
根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。
若需要,可登记排队候补;
3)承办退票业务:
根据客户提出的情况(日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
实现提示:
两个客户名单可分别由线性表和队列实现。
为查找方便,已订票客户的线性表应按客户姓名有序,并且,为了插入和删除方便,应以链表作为存储结构。
由于预约人数无法预计,队列也应以链表作为存储结构。
在这个过程中应熟练掌握:
(1)指针;
(2)分配函数;
(3)搜集函数;
(4)排序;
(5)二分查找;
2.2设计思想:
数据用数组存储,通过设置关键字并用一定的数据结构对其进行一定的数据排序。
输入航班信息,进行存储及按要求的查找。
在这期间,我们需要书写四个基本函数,即分配函数、搜集函数、排序、及二分查找函数。
用switch分支实现分条件的选择,并对子函数进行相关的调用。
按要求输出用户所需信息,实现简单而便捷的快速查询与检索。
2.3系统模块划分
2.3.1具体表格图示:
航班信息查询
编号
字段1
字段2
字段3
字段4
字段5
字段6
字段7
字段8
1
航班号
起点站
终点站
班期
起飞时间
到达时间
机型
票价
2
CA1544
郑州
上海
1.2.3.5.6.7
1020
1422
H546T
960
3
MU5341
上海
浙江
1.2.4.5.6.7
1422
1955
T24T
952
4
CS166
上海
福建
1.2.3.4.5.6
0825
1422
HT5436
4562
5
DR5465
浙江
郑州
1.2.3.4.5.6.7
0914
1955
H124
368
6
GT1645
浙江
上海
1.2.5.6.7
2155
1422
G163
695
7
GT256
浙江
福建
1.2.5.6.7
1234
1955
G335
658
8
GT1334
郑州
福建
1.2.3.4.5.6
1526
2155
E2588
4568
9
E456
福建
上海
1.2.5.6.7
1347
1422
4853
2542
10
IU2665
上海
郑州
1.2.5.6.7
1955
2155
223IY
369
11
3.数据结构与算法描述:
流程图
总体结构设计框图
注:
由于在查询与检索时按照关键字航班期、机型、票价的查询不多,故为简洁快捷起见,在程序设计中他们的查询结构略去。
在此后将不作说明。
4.测试结果与分析(可将测试过程抓图说明)
*欢迎进入航班信息查询与检索系统!
!
!
*
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
1
航班号起点站终点站航班期起飞时间到达时间机型票价
ew4556北京上海1.6.714232136WE125982
继续输入吗?
y/n:
Y
航班号起点站终点站航班期起飞时间到达时间机型票价
TR865武汉南京5.6.705262136T456625
继续输入吗?
y/n:
Y
航班号起点站终点站航班期起飞时间到达时间机型票价
TU156香港澳门1.3.621361236GH45362
继续输入吗?
y/n:
N
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
4
航班号起点站终点站航班期起飞时间到达时间机型票价
ew4556北京上海1.6.714232136WE125982
TR865武汉南京5.6.705262136T456625
TU156香港澳门1.3.621361236GH45362
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
1
航班号起点站终点站航班期起飞时间到达时间机型票价
TY156重庆济南2.5.712360526H45256
继续输入吗?
y/n:
N
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
4
航班号起点站终点站航班期起飞时间到达时间机型票价
ew4556北京上海1.6.714232136WE125982
TR865武汉南京5.6.705262136T456625
TU156香港澳门1.3.621361236GH45362
TY156重庆济南2.5.712360526H45256
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
3
****************************
*航班信息查询系统*
****************************
*1.航班号*
*2.起点站*
*3.终点站*
*4.起飞时间*
*5.到达时间*
*0.返回*
****************************
*请输入(0—5):
1
请输入要查询的航班号(字母要大写):
TY156
航班号起点站终点站航班期起飞时间到达时间机型票价
TY156重庆济南2.5.712360526H45256
****************************
*航班信息查询系统*
****************************
*1.航班号*
*2.起点站*
*3.终点站*
*4.起飞时间*
*5.到达时间*
*0.返回*
****************************
*请输入(0—5):
2
请输入要查询的航班的起始站名:
香港
航班号起点站终点站航班期起飞时间到达时间机型票价
TU156香港澳门1.3.621361236GH45362
****************************
*航班信息查询系统*
****************************
*1.航班号*
*2.起点站*
*3.终点站*
*4.起飞时间*
*5.到达时间*
*0.返回*
****************************
*请输入(0—5):
3
请输入要查询的航班的终点站名:
南京
航班号起点站终点站航班期起飞时间到达时间机型票价
TR865武汉南京5.6.705262136T456625
****************************
*航班信息查询系统*
****************************
*1.航班号*
*2.起点站*
*3.终点站*
*4.起飞时间*
*5.到达时间*
*0.返回*
****************************
*请输入(0—5):
4
请输入要查询的航班的起飞时间:
1423
航班号起点站终点站航班期起飞时间到达时间机型票价
ew4556北京上海1.6.714232136WE125982
****************************
*航班信息查询系统*
****************************
*1.航班号*
*2.起点站*
*3.终点站*
*4.起飞时间*
*5.到达时间*
*0.返回*
****************************
*请输入(0—5):
5
请输入要查询的航班的到达时间:
2136
航班号起点站终点站航班期起飞时间到达时间机型票价
ew4556北京上海1.6.714232136WE125982
航班号起点站终点站航班期起飞时间到达时间机型票价
TR865武汉南京5.6.705262136T456625
****************************
*航班信息查询系统*
****************************
*1.航班号*
*2.起点站*
*3.终点站*
*4.起飞时间*
*5.到达时间*
*0.返回*
****************************
*请输入(0—5):
0
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
2
*************************************
*航班信息删除系统*
*************************************
*1.按航班号删除*
*2.按起点站删除*
*3.按终点站删除*
*4.按起飞时间删除*
*5.按到达时间删除*
*0.返回*
*************************************
*请输入(0—5):
1
请输入要删除的航班号(字母要大写):
TR865
航班号起点站终点站航班期起飞时间到达时间机型票价
TR865武汉南京5.6.705262136T456625
是否删除此记录?
Y/N:
n
*************************************
*航班信息删除系统*
*************************************
*1.按航班号删除*
*2.按起点站删除*
*3.按终点站删除*
*4.按起飞时间删除*
*5.按到达时间删除*
*0.返回*
*************************************
*请输入(0—5):
0
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
0
谢谢使用,再见!
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
0
谢谢使用,再见!
**********************************
*航班信息查询与检索系统*
**********************************
*1.输入航班信息*
*2.删除航班信息*
*3.查询信息*
*4.显示全部记录*
*0.退出*
**********************************
*请输入(0—4):
5.总结
现在是2010年,毕业近在咫尺,我们大二了。
其实,我想我是失败的,因为我并没有学到我想要的那些东西。
白驹过隙间,青春已不再,我们不得不学会成长。
我不是一个优秀的学生,在学校,因为我很懒惰。
懒惰创造简洁,而所有的程序便是为了方便人们的懒惰。
为了更好的懒惰,我想我的好好努力。
上学期我们学习了《数据结构》的理论课,教科老师是刘维群老师,她教的很好很详细;这半学期我们王岚老师带领着做课程设计。
王岚老师是一个温和可亲的人,我很喜欢。
她总是和蔼可亲,细致耐心。
选择这个题目,一是因为我自己觉得它的难度不强也不弱,对我而言刚刚好,二是其余的都有好多人选,我不想都一样,三是我比较想所设个题目,主要是第一感觉。
这个题目我做了比较长的时间,它并不像我想像的那样简单。
刚开始我使用可视化语言VC++做的,实在是不行,在登陆界面是我进行了背景的插图与内联,但总是有错。
为此我上网并在图书馆查了一系列的资料,后实在是不想,能力及时间有限,只得放弃。
后选择了C语言,因为去年的《数据结构》一直是用它做的,所以比较熟悉。
我知道我的程序还有许多不完善之处,但是我个人觉得已经很不错了。
简单的未必就不是最好的,不是么?
感谢所有给与我帮助的人。
感谢我的老师,教会了我驾驭一门语言和一些结构;感谢我的同学,曾在我程序死机时给与我的帮助与鼓励:
感谢我的室友,在一起奋战的日子同舟共济……我会努力,同时我也相信,我可以做的很好。
6.参考文献:
[1]刘振安等.《C++程序设计课程设计》.北京:
机械工业出版社,2004.12.
附录程序源代码
/*
Name:
航班信息的查询与检索
Copyright:
2010
(1)
Author:
黄梅
Date:
08-04-1013:
36
Description:
对航班信息进行查询与检索,可按航班号、起点站、终点站、起飞时间、到达时间进行查询
*/
#include
#include
#include
#include
structSLNode
{
charstart[10];//起点
charend[10];//终点
charsche[10];//班期
chartime1[6];//起飞时间
chartime2[6];//到达时间
charmodel[4];//机型
intprice;//票价
charkeys[6];//关键字(航班号)
};//航班记录类型
//静态链表节点类型
typedefstruct
{
SLNode*sl;//动态链表
intlistsize;//最大表长
intlength;//当前表长
}SLList;//顺序表类型
//显示一条航班记录函数
voidDisplay(SLListL,inti)
{
printf("航班号起点站终点站航班期起飞时间到达时间机型票价\n");
printf("%6s%6s%6s%6s%6s%6s%4s%d\n",L.sl[i].keys,L.sl[i].start,L.sl[i].end,L.sl[i].sche,L.sl[i].time1,L.sl[i].time2,L.sl[i].model,L.sl[i].price);
}
//顺序查找函数
voidSeqSearch(SLListL,charkey[],inti)
{
intk,j,m=0;
for(j=1;j<=L.length;j++)
{
switch(i)
{
case1:
k=strcmp(key,L.sl[j].keys);
break;
case2:
k=strcmp(key,L.sl[j].start);
break;//起点站
case3:
k=strcmp(key,L.sl[j].end);
break;//终点站
case4:
k=strcmp(key,L.sl[j].time1);
break;//起飞时间
case5:
k=strcmp(key,L.sl[j].time2);
break;//到达时间
}
if(k==0)
{
m=1;
Display(L,j);
}
}
if(m==0)
{
printf("无此航班信息,您可能输入错误!
\n");
}
}
voiddel(SLList&L,charkey[],inti)
{
intk,j,m=0;
charch;
for(j=1;j<=L.length;j++)
{
switch(i)
{
case1:
k=strcmp(key,L.sl[j].keys);break;
case2:
k=strcmp(key,L.sl[j].start);break;//起点站
case3:
k=strcmp(key,L.sl[j].end);break;//终点站
case4:
k=strcmp(key,L.sl[j].time1);break;//起飞时间
case5:
k=strcmp(key,L.sl[j].time2);break;//到达时间
}
if(k==0)
{
m=1;
Display(L,j);
printf("是否删除此记录?
Y/N:
");
scanf("%c",&ch);
getchar();
if(ch=='Y'||ch=='y')
{
strcpy(L.sl[j].keys,L.sl[L.length].keys);
strcpy(L.sl[j].end,L.sl[L.length].end);
strcpy(L.sl[j].model,L.sl[L.length].model);
L.sl[j].price=L.sl[L.length].price;
strcpy(L.sl[j].sche,L.sl[L.length].sche);
strcpy(L.sl[j].start,L.sl[L.length].start);
strcpy(L.sl