数据结构课程设计航班信息查询与检索
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学院名称
《数据结构》课程设计报告题目——航班信息查询与检索
班级:
姓名:
时间:2012/12/29---2013/1/5
二○一二年十二月二十九日
课程设计任务书及成绩评定
课题名称航班信息查询与检索
Ⅰ、题目的目的和要求:
1、设计目的
巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,
最终使学生能够熟练应用数据结构的知识写程序。
(1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。
(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正
确求解过程并编写代码实现。
2、设计题目要求:
问题描述:该设计要求对飞机航班信息进行排序和查找。可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。
任务要求:对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因此他们用得较少。每个航班记录包括八项,分别是:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价等,
这种航班号关键字可分成两段,即字母和数字。其余七项输入内容因为不涉及本设计的核心,因此除了票价为数值型外,均定义为字符串即可。
Ⅱ、设计进度及完成情况
Ⅲ、主要参考文献及资料
[1] 严蔚敏数据结构(C语言版)清华大学出版社1999
[2] 严蔚敏数据结构题集(C语言版)清华大学出版社1999
[3] 谭浩强C语言程序设计清华大学出版社
[4] 与所用编程环境相配套的C语言或C++相关的资料
Ⅳ、成绩评定:
设计成绩:(教师填写)指导老师:(签字)
二○一三年一月五日
目录
一、概述 (6)
二、系统分析 (6)
三、概要设计 (6)
四、详细设计 (7)
1.定义数据类型 (7)
2.算法实现 (8)
五、测试数据 (10)
六、收获与体会 (13)
七、参考文献 (13)
八、附录 (14)
一、概述
.
word . .
课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
本课程设计主要是对排序及查找等进行练习,以链式基数排序为主线,利用二分查找和顺序查找等知识,并建立静态链表,完成对航班信息的查询与检索。我们可以利用航班的这些信息,通过其中的任意一个信息,找出我们所需要的查找的航班的所有信息,所以,我们可以采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排序好的航班记录按航班号实现快速查找,并按其他关键字的查找可以采用最简单的顺序查找方法进行。
二、系统分析
1设计要求
(1) 提供对航班信息的排序功能
(2) 提供对航班信息的输入输出记录功能找出我们所需要的查找的航班的所有信息
(3)提供按关键字(航班号)快速查询或顺序查询功能
2 设计分析
对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因为它们用得比较少。
每个航班记录包括八项,分别是:航班号,起点站,终点站,班期,起飞时间,到达时间,飞机型号以及票价等。其中航班号一项的格式为:
K0 k1 k2 k3 k4 k5
航班关键字可分为两段,即字母和数字。其中k0和k1是航空公司的别称,用两个大写字母表示,后4位为航班编号。
三、概要设计
1、设计思路
根据题目所要求,程序必须实现航班信息的录入和查询。程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。在查询设计中,使用二分查找法对排好序的航
.
word . .
. word . .
班数据按航班号实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。
2、流程图
四、详细设计
1 . 定义数据类型
根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数
据类型:[1]
typedef struct {
char start[6]; //起点站 char end[6]; //终点站 char sche[10]; //航班期 char time1[5]; //起飞时间 char time2[5]; //到达时间 char model[4]; //机型 int price; //票价
}infotype; //航班记录类型 typedef struct{
keytype keys[keylen]; //关键字 infotype others; int next;
}slnode; //表结点 typedef struct{
slnode sl[maxspace]; //静态链表,s1[0]为头结点 int keynum; //关键字长 int length; //当前表长 }sllist; //静态链表类型 为了进行基数排序,需要定义在分配和收集操作时用到的指针数组:
typedef int arrtype_n[10]; //十进制数字指针数组