航班查询系统实验报告讲解_第1页
航班查询系统实验报告讲解_第2页
航班查询系统实验报告讲解_第3页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、目录一、系统开发的背景 1.二、系统分析与设计 1.(一)系统功能要求 1.(二)系统模块结构设计 1.三、系统的设计与实现 2.(一)查询函数: 2.(二)输入函数 6四、系统测试 7(一)测试 MAIN () 函数 7.(二)测试查询函数 1.1.(三)测试输入函数 1.3.五、总结 1.4.六、附件(代码、部分图表) 1.5.航班查询系统一、系统开发的背景随着信息产业的飞速发展,信息化管理及查询已经引入并应用到各行 各业,影响着人们的价值观念与生活方式。因此,要提升企业竞争力,就 要大力推进企业信息化建设,利用先进的办公自动化系统来实现企业内部 信息管理、共享及交流,从而提高企业综合实力

2、。该课程设计要求对飞机 航班信息进行排序和查找。可按航班的航班号、起点站、终点站、起飞时 间以及到达时间等信息进行查询。二、系统分析与设计(一)系统功能要求可以输入航班信息系,可采用基数排序法对飞机航班号进行排序,利 用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键 字的查找可采用最简单的顺序查找方法进行。1. 航班记录包括:航班号、起点站、终点站、班期、起飞时间、到达 时间、飞机型号以及票价。2. 查询航班信息。(二)系统模块结构设计通过对系统功能的分析,航班查询系统功能如图 X 所示。图 1 航班查询系统功能图通过上图的功能分析,把整个系统划分为 5 个模块:1、航班号查询

3、,该模块主要实现通过输入航班号实现对该趟航班的查询。2、班期查询,该模块主要实现通过输入班期实现对该趟航班的查询。3、起飞站查询,该模块主要实现通过输入起飞地点实现对该趟航班的查询4、到达站查询,该模块主要实现通过输入到站地点实现对该趟航班的查询5、起飞时间查询,该模块主要实现通过输入起飞时间实现对该趟航班的查 询。三、系统的设计与实现一)查询函数:分析:输入要查询的方式,例如:航班号、起点站、终点站、起飞时间、到达时间。该函数的流程图如下图 2 所示。图 2 :查询函数流程图该模块的具体代码如下所示void Seqsearch(sllist l,keytype key,int i)/ 顺序查

4、找函数int j,k,m=0;printf("* 航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 票价 *n"); for(j=1;j<=l.length;j+)switch(i)case 1:k=strcmp(key,l.slj.keys);break;case 2:k=strcmp(key,l.slj.others.qdz);break;case 3:k=strcmp(key,l.slj.others.zdz);break;case 4:k=strcmp(key,l.slj.others.qftime);break;case 5:k=strcmp(key

5、,l.slj.others.artime);break;if(k=0)m=1;printf("%st",l.slj.keys); printf("%st",l.slj.others.qdz); printf("%st",l.slj.others.zdz);printf("%st",l.slj.others.bq); printf("%st",l.slj.others.qftime); printf("%st",l.slj.others.artime);printf("

6、;%st",l.slj.others.jixing); printf("%dt",l.slj.others.price);if(m=0)printf(" 对不起 !无此航班信息 ! n");/return k;void search(sllist l)/ 查询菜单控制程序keytype keykeylen;int i=1,k;while(i>=1&&i<=5)putchar('n');printf(" $ 航班信息查询系统 $n"); printf("n");p

7、rintf(" $1.航 班 号$n");printf(" $2.起 点 站$n");printf(" $3.终 点 站$n");printf(" $4.起飞时间$n");printf(" $5.到达时间$n");printf(" $ printf(" 6.退出系统$n");n")printf(" 请输入您的选择 :");scanf("%d",&i);printf("n");switch(

8、i)if(k=6)printf("%对不起 ! 无此航班信息 ! %n");else票价printf(" 航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 n");printf("%stt",l.slk.keys); printf("%stt",l.slk.others.qdz); printf("%stt",l.slk.others.zdz); printf("%stt",l.slk.others.bq); printf("%stt",l.slk

9、.others.qftime); printf("%stt",l.slk.others.artime); printf("%stt",l.slk.others.jixing); printf("%dtt",l.slk.others.price);printf("n");break;case 1:printf(" 输入要查询的航班号 :");scanf("%s",key);Seqsearch(l,key,i);break;case 2:printf(" 输入要查询的航

10、班起点站名 :");scanf("%s",key);Seqsearch(l,key,i);break;case 3:printf(" 输入要查询的航班终点站名 :"); scanf("%s",key); Seqsearch(l,key,i);break;case 4:printf(" 输入要查询的航班 :起飞时间 ");scanf("%s",key); Seqsearch(l,key,i);break;case 5:printf(" 输入要查询的航班到达时间 :")

11、;scanf("%s",key);Seqsearch(l,key,i);break;case 0:printf(" 谢谢使用 !n");二)输入函数输入您所要输入的数据,该函数的流程图如下图3 所示。图3 输入函数流程图该模块的具体代码如下所示:void shuru(sllist &k) int i=1;/ 输入航班记录函数char ch='y'printf(" 请输入航班信息 !n");while(ch='y'|ch='Y')printf(" 航班号 起点站 终点站

12、航班期 起飞时间 到达时间 机型 票价 n");scanf("%s%s%s%s%s%s%s%d",k.sli.keys,k.sli.others.qdz,k.sli.others.zdz,k.sli.others.bq,k .sli.others.qftime,k.sli.others.artime,k.sli.others.jixing,&k.sli.others.price);i+;getchar();printf(" 需要继续输入吗 ?n");printf("y 代表继续输入 /n 代表结束输入 !n"); p

13、rintf(" 请输入 y 或 nn");scanf("%c",&ch);/k.length=i-1;四、系统测试一)测试 main() 函数图 4 输入数据7图 5 查询信息8图6 查询信息9图7 查询信息显示10二)测试查询函数图8 查询信息11图9 查询信息12图 10 查询信息(三)测试输入函数测试数据:544CA1合肥北京.51.2.410551240733960341MU5上海广州每日14201615M90128069CZ38重庆深圳2.4.6085510357331010682MU3桂林南京.6.72.3.420502215M901

14、38013图 11 输入信息五、总结该课程设计实现了根据航班号,起飞地点,到达地点,起飞时间,到 达时间对该趟航班进行查询的功能。在编写过程中,运用了对航班数据的 排序和查找,冒泡排序和顺序查找等知识,还有建立静态链表等。系统在此次运行过程中,刚开始没有办法输入,之后输入可以实现但 又无法正确查询,查询出来的都是错的,而且现实的结果和我编写的不相 符。对冒泡排序的运用,理解不熟,无法书写出满足实验需求的程序代码。 对冒泡排序在不同情况下的区别没有掌握。本次的课程设计没有实现对班期,价格,航班号这三项对该趟航班的14 查询。也没有运用二分查找,基数排序等操作。通过这次课程设计,使我对 C 语言编

15、程有了新的认识。以前编程只是 注重如何编写函数能够完成所需要的功能,只是根据书上的算法敲打出一 段程序。但是在做课程设计的过程中,对链表,指针的使用有了一定的提 高。但是就指针的输入和输出还是存在比较大的问题。对什么时候要用地 址符,什么时候不用不太清楚,再就是函数调用不太会。因此我觉得的, 了解典型数据结构的性质是非常有用的,它往往是编写程序的关键 。六、附件(代码、部分图表)# include <stdio.h># include <string.h> # define Maxspace 100# define keylen 6 typedef char keyty

16、pe;typedef structchar qdz6;/起点char zdz6;/终点char bq6;/班期char qftime5;/起飞时间char artime5;/到达时间char jixing4;/机型int price;/票价infotype;/航班记录类型typedef structkeytype keyskeylen; /关键字(航班号)infotype others;int next;slnode;typedef structslnode slMaxspace;15int num; int length;sllist;/记录当前关键字字符个数/当前表长/静态链表类型 voi

17、d Bubble_Sort(sllist k)/冒泡排序法(从第一个记录到第 n 个记录,对 n-1 对相邻的两个记录关键字进行比较,一趟之后, /最大数沉底 Rn ,第二趟,次大数沉到 Rn-1,. 重复 n-1 次,在 Rn中, n个记录有序。 /排序按价格排序int i,j;int swap;int tmp;char tmp26;/putchar('b'); for(i=1;i<k.length;i+)/putchar('b');swap=0;for(j=1;j<=k.length-i;j+)if(k.slj.others.price>k

18、.slj+1.others.price)tmp=k.slj.others.price;k.slj.others.price=k.slj+1.others.price;k.slj+1.others.price=tmp;strcpy(tmp2,k.slj.others.artime);strcpy(k.slj.others.artime,k.slj+1.others.artime);strcpy(k.slj+1.others.artime,tmp2);strcpy(tmp2,k.slj.others.bq);strcpy(k.slj.others.bq,k.slj+1.others.bq);str

19、cpy(k.slj+1.others.bq,tmp2);strcpy(tmp2,k.slj.others.jixing);strcpy(k.slj.others.jixing,k.slj+1.others.jixing);strcpy(k.slj+1.others.jixing,tmp2);strcpy(tmp2,k.slj.others.qdz);strcpy(k.slj.others.qdz,k.slj+1.others.qdz);strcpy(k.slj+1.others.qdz,tmp2);strcpy(tmp2,k.slj.others.qftime);16 strcpy(k.slj

20、.others.qftime,k.slj+1.others.qftime);strcpy(k.slj+1.others.qftime,tmp2);strcpy(tmp2,k.slj.others.zdz);strcpy(k.slj.others.zdz,k.slj+1.others.zdz);strcpy(k.slj+1.others.zdz,tmp2);strcpy(tmp2,k.slj.keys);strcpy(k.slj.keys,k.slj+1.keys);strcpy(k.slj+1.keys,tmp2);swap=1;if(swap=0)break;for(i=1;i<=k.

21、length;i+)printf("%st%st%st%st%st%st%st%dn",k.sli.keys,k.sli.others.qdz,k.sli.others.zdz,k.sli.othe rs.qftime,k.sli.others.artime,k.sli.others.jixing,k.sli.others.bq,k.sli.others.price);/* 查找算法实现 */void Seqsearch(sllist l,keytype key,int i)/ 顺序查找函数int j,k,m=0;printf("* 航班号 起点站 终点站 航班期

22、 起飞时间 到达时间 机型 票价 *n");for(j=1;j<=l.length;j+)switch(i)case 1:k=strcmp(key,l.slj.keys);break;case 2:k=strcmp(key,l.slj.others.qdz);break;case 3:k=strcmp(key,l.slj.others.zdz);break;case 4:k=strcmp(key,l.slj.others.qftime);break;case 5:k=strcmp(key,l.slj.others.artime);break;if(k=0)m=1;printf(

23、"%st",l.slj.keys);printf("%st",l.slj.others.qdz);printf("%st",l.slj.others.zdz);printf("%st",l.slj.others.bq);printf("%st",l.slj.others.qftime);17printf("%st",l.slj.others.artime);printf("%st",l.slj.others.jixing);printf("%dt

24、",l.slj.others.price);if(m=0)printf(" 对不起 !无此航班信息 ! n");/return k;void search(sllist l)/ 查询菜单控制程序keytype keykeylen;int i=1,k;while(i>=1&&i<=5)putchar('n');printf(" $航班信息查询系统$n");printf(" n");printf(" $1.航 班 号$n");printf(" $2.起 点

25、 站$n");printf(" $3.终 点 站$n");printf(" $4.起飞时间$n");printf(" $5.到达时间$n");printf(" $ printf(" 6.退出系统$n");n");printf(" 请输入您的选择 :");scanf("%d",&i);printf("n");switch(i)if(k=6)printf("%对不起 ! 无此航班信息 ! %n");el

26、se票价printf(" 航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 n");printf("%stt",l.slk.keys); printf("%stt",l.slk.others.qdz); printf("%stt",l.slk.others.zdz); printf("%stt",l.slk.others.bq); printf("%stt",l.slk.others.qftime);18 printf("%stt",l.slk.o

27、thers.artime); printf("%stt",l.slk.others.jixing); printf("%dtt",l.slk.others.price); printf("n");break;case 1:printf(" 输入要查询的航班号 :");scanf("%s",key);Seqsearch(l,key,i);break;case 2:printf(" 输入要查询的航班起点站名 :");scanf("%s",key);Seqsearch(l,key,i);break;case 3:printf(" 输入要查询的航班终点站名 :"); scanf("%s",key); Seqsearch(l,key,i);break;case 4:printf(" 输入要查询的航班 :起飞时间 ");scanf("%s",key);Seqs

温馨提示

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

评论

0/150

提交评论