航班信息查询与检索系统.doc_第1页
航班信息查询与检索系统.doc_第2页
航班信息查询与检索系统.doc_第3页
航班信息查询与检索系统.doc_第4页
航班信息查询与检索系统.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络 如有侵权 请 联系网站删除 精品文档 课程设计报告课程设计报告 课程设计名称 数据结构课程设计课程设计名称 数据结构课程设计 题目 设计并实现一个航班信息查询与检索系统题目 设计并实现一个航班信息查询与检索系统 院系 计算机学院院系 计算机学院 专业 专业 班级 班级 学号 学号 姓名 姓名 指导教师 指导教师 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 学术诚信声明 本人声明本人声明 所呈交的报告 含电子版及数据文件 是我个人在导师 指导下独立进行设计工作及取得的研究结果 尽我所知 除了文中 特别加以标注或致谢中所罗列的内容以外 报告中不包含其他人己 经发表或撰写过的研究结果 也不包含其它教育机构使用过的材料 与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明 确的说明并表示了谢意 报告资料及实验数据若有不实之处 本人 愿意接受本教学环节 不及格 和 重修或重做 的评分结论并承 担相关一切后果 本人签名 日期 年 月 日 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 课程设计名称数数据据结结构构课课程程设设计计专业 学生姓名班级学号 题目名称设计并实现一个航班信息查询与检索系统设计并实现一个航班信息查询与检索系统 起止日期2016年12月18日起至2017年1月4日止 课设内容和要求 对飞机航班信息进行排序和查找 可按照航班号 起点站 到达站 起飞时对飞机航班信息进行排序和查找 可按照航班号 起点站 到达站 起飞时 间间 和到达时间等信息进行查询 和到达时间等信息进行查询 要求 要求 1 1 设计数据结构设计数据结构 2 2 选择合适的排序和查找算法选择合适的排序和查找算法 3 3 设计软件的功能结构设计软件的功能结构 4 4 采用模块化编程采用模块化编程 5 5 给出现实方法和算法给出现实方法和算法 6 6 按课程设计规范撰写课程设计报告按课程设计规范撰写课程设计报告 参考资料 1 严蔚敏 陈文博 数据结构及应用算法教程 M 北京 清华大学出版社 2011 5 2 张小莉 王苗 罗文劼 数据结构与算法 M 北京 机械工业出版社 2014 4 教教研研室室审审核核意意见见 教教研研室室主主任任签签字字 指导教师 签名 指导教师 签名 年月日 学学 生 签名 生 签名 年月日 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 课程设计总结 课程设计总结 本设计的重点和难点是在于对航班数据的排序和查找 以链式基数排序为 主线 用到了二分查找和顺序查找等知识 还有建立静态链表等 通过这次课程 设计 使我对 C 语言编程有了新的认识 以前编程只是注重如何编写函数能够 完成所需要的功能 只是凭单纯的意识和简单的语句来堆砌出一段程序 但现在 编程感觉完全不同了 在编写一个程序之前 自己能够综合考虑各种因素 选取 自己需要的数据结构 在编写每一个函数之前 可以仔细斟酌比对 挑选出最适 合当前状况的算法 这样 即使在完整的程序还没有写出来之前 自己心中已经 有了明确的原图了 这样无形中就提高了自己编写的程序的质量 另外 我还体 会到深刻理解数据结构的重要性 只有真正理解这样定义数据类型的好处 才能 用好这样一种数据结构 了解典型数据结构的性质是非常有用的 它往往是编写 程序的关键 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 目目 录录 1 题目介绍题目介绍 5 2 课程设计要求课程设计要求 5 2 1 课程设计内容 5 2 2 课程设计目标 5 3 概要设计概要设计 5 3 1 设计思路 5 3 2 流程图 5 4 算法概述算法概述 6 4 1 定义数据类型 6 4 2 函数描述 7 5 测试数据测试数据 10 附附 录 关键部分程序清单 录 关键部分程序清单 12 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 1 题目介绍 题目介绍 设计一个航班信息查询与检索系统 可按航班的航班号 起点站 终点站 起飞时间 以及到达时间等信息进行查询 2 2 课程设计要求 课程设计要求 1 每个航班记录包括八项 航班号 起始站 终点站 班期 起飞时间 到达时间 飞机型号 票价 如下表所示 航班号起点站终点站班期起飞时间到达时间机型票价 CA1544 合肥北京 1 2 4 510551240733960 MU5341 上海广州每日 14201615M901280 CZ3869 重庆深圳 2 4 6085510357331010 2 对航班信息进行排序与查找 3 3 概要设计 概要设计 3 1 设计思路 设计思路 根据题目所要求 程序必须实现航班信息的录入和查询 程序首先定义了 一个储存航班信息的数据类型 再由用户录入航班数据 在录入的同时并对数 据进行排序 最后执行数据查询和检索 在查询设计中 使用折半查找法对排 好序的航班号数据实现快速查找 按起点站 终点站 起飞时间 到达时间查 找的则采用顺序查询方法 3 2 流程图 流程图 数据输入 排序 接受查找条件 查 找关键字 定义数据类型 显示输出 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 开开 始始 录入信息提示录入信息提示 信息录入信息录入 查询菜单显示查询菜单显示 输入查询序号输入查询序号 判断符号是否判断符号是否 合法合法 按航班号按航班号 查询查询 按起飞时间按起飞时间 查询查询 按到达时间查按到达时间查 询询 按起点站查按起点站查 询询 按终点站按终点站 查询查询 输出查询结果输出查询结果 结结 束束 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 4 算法实现 算法实现 4 1 定义数据类型定义数据类型 根据设计要求 设计中所用到的数据记录只有航班信息 因此要定义相关 的数据类型 typedef struct char start 6 起点站 char end 6 终点站 char sche 10 班期 char time1 5 起飞时间 char time2 5 到达时间 char model 4 机型 int price 票价 info 航班记录类型 typedef struct char keys keylen 关键字 info others int next slnode 表结点 typedef struct slnode sl maxspace int keynum 关键字长 int length 当前表长 sllist 静态链表类型 为了进行基数排序 需要定义在分配和收集操作时用到的指针数组 typedef int arrtype n 10 十进制数字指针数组 typedef int arrtype c 26 26 个字母指针数组 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 4 2 函数描述函数描述 void distribute slnode sl int i arrtype n f arrtype n e int j p for j 0 j 10 j f j e j 0 for p sl 0 next p p sl p next j sl p keys i 48 将数字字符转化为对应的数值型数字 if f j f j p else sl e j next p e j p 将 p 指向的结点插入到第 j 个结点 void collect slnode sl int i arrtype n f arrtype n e int j t for j 0 f j j 找第一个非空子表 sl 0 next f j t e j while j 10 1 for j j 1 j 10 1j 找下一个非空子表 if f j 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 sl t next f j t e j 链接两个非空子表 sl t next 0 链式基数排序算法链式基数排序算法 void radixsort sllist arrtype n fn en arrtype c fc ec for i 0 i 2 i 按最低位优先依次对各关键字进行分 配和收集 distribute l sl i fn en collect l sl i fn en for i 1 i 0 i distribute c l sl i fc ec collect c l sl i fc ec void arrange sllist slnode temp p l sl 0 next for i 1 i l length i while p i p l sl p next q l sl p next if p i temp l sl p l sl p l sl i l sl i temp 交换记录 l sl i next p p q 折半查找函数定义折半查找函数定义 int binsearch sllist l char key int low high mid low 1 high l length while low high mid low high 2 if strcmp key l sl mid keys 0 return mid 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 else if strcmp key l sl mid keys 0 high mid 1 else low mid 1 return 0 5 测试数据 测试数据 编译后运行 显示 录入信息 航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票价 录入 CA1544 合肥 北京 1 2 4 5 1055 1240 733 960 显示 是否继续 y n 录入 y 显示 航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票价 录入 MU5341 上海 广州 每日 1420 1615 M90 1280 显示 是否继续 y n 录入 y 显示 航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票 价 录入 CZ3869 重庆 深圳 2 4 6 0855 1035 733 1010 显示 是否继续 y n 录入 n 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 录入航班信息后 屏幕显示 航班信息查询系统 1 航 班 号 2 起 点 站 3 终 点 站 4 起飞时间 5 到达时间 0 退出 0 5 号服务项目 录入 1 显示 输入要查询的航班号 字母要大写 录入 CA1544 显示 航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票 价 CA1544 合肥 北京 1 2 4 5 1055 1240 733 960 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 录入 2 显示 输入要查询的航班起点站 录入 合肥 显示 航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票 价 显示 CA1544 合肥 北京 1 2 4 5 1055 1240 733 960 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 录入 2 显示 输入要查询的航班起点站 录入 广州 显示 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 附录附录 源程序 源程序 include include define max 100 define keylen 7 typedef struct char start 6 char end 6 char sche 10 char time1 5 char time2 5 char model 4 int price info typedef struct char keys keylen info others int next slnode typedef struct slnode sl max 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 int keynum int length sllist typedef int arrtype n 10 typedef int arrtype c 26 void distribute slnode sl int i arrtype n f arrtype n e int j p for j 0 j 10 j f j e j 0 for p sl 0 next p p sl p next j sl p keys i 48 if f j f j p else sl e j next p e j p void collect slnode sl int i arrtype n f arrtype n e int j t for j 0 f j j sl 0 next f j 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 t e j while j 10 1 for j j 1 j 10 1j if f j sl t next f j t e j sl t next 0 void distribute c slnode sl int i arrtype c f arrtype c e int j p for j 0 j 26 j f j e j 0 for p sl 0 next p p sl p next j sl p keys i 65 if f j f j p else sl e j next p e j p 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 void collect c slnode sl int i arrtype c f arrtype c e int j t for j 0 f j j sl 0 next f j t e j while j 26 1 for j j 1 j 26 1j if f j sl t next f j t e j sl t next 0 void radixsort sllist arrtype n fn en arrtype c fc ec for i 0 i 2 i distribute l sl i fn en 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 collect l sl i fn en for i 1 i 0 i distribute c l sl i fc ec collect c l sl i fc ec void arrange sllist slnode temp p l sl 0 next for i 1 i l length i while p i p l sl p next q l sl p next if p i temp l sl p l sl p l sl i l sl i temp l sl i next p p q 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 int binsearch sllist l char key int low high mid low 1 high l length while low high mid low high 2 if strcmp key l sl mid keys 0 return mid else if strcmp key l sl mid keys 0 high mid 1 else low mid 1 return 0 void seqsearch sllist l char key int i int j k m 0 printf n printf 航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票价 n for j 1 j 1 printf 航班信息查询系统 n printf n printf 1 航 班 号 n printf 2 起 点 站 n 此文档收集于网络 如有侵权 请 联系网站删除 精品文档 printf 3 终 点 站 n printf 4 起飞时间 n printf 5 到达时间 n printf 0 退出 n printf n printf 0 5 号服务项目 scanf d printf n switch i case 1 printf 输入要查询的航班号 字母要大写 scanf s key k binsearch l key printf n if k 0 printf 无此航班信息 可能是输入错误 n else printf 航班号 起点站 终点站 班期 起飞时间 到达时间 机型 票价 n printf 8s 7s 7s 11s 6s 6s 5s 4d n l sl k keys l sl k others start l sl k others end l sl k others sche l sl k others time1 l sl k oth ers time2 l sl k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论