Markdown首次练习
数据结构之航班信息查询与检索
一、 课程设计名称:航班信息查询与检索
二、 使用工具软件:Visual C++ /Dev-C++
三、 课程设计内容简介:
根据题目所要求,程序必须实现航班信息的录入和查询。每条航班记录包括8项:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价并且要按不同的关键字对用户指定的航班信息进行查询与检索,有输入和输出模块。
本系统需要实现航班信息的录入和按不同关键字的查询,并显示查询结果。在程序中,分别以航班号、始点站、终点站、起飞时间和到达时间为关键字,使用顺序查找法或折半查找法对航班记录进行查询。而在查找之前,需要对关键字进行排序。
四、基本要求:
友好性:界面要友好,输入有提示,尽量展示人性化
可读性:源程序代码清晰、有层次
健壮性:用户输入非法数据时,系统要及时给出警告信息
准备工作
拿到此课题后首先要确定课题所需要实现的功能,并对程序有一个前期的设想,同时要保证界面的美观简洁。
五、设计思路如下:
- 思考代码的主要框架该如何分布,画出基本结构流程图,有利于后面的编程环节顺利进行。
2.模块安排:首先,把输入板块放在最前面,用来输入航班信息的记录,然后把关键字分为六个模块进行航班信息的查询。输入板块要设定一个结构体函数,里面包含航班信息的8项基本信息,用来录入所有的航班信息。
struct fly{
char flight_num[10];
char start[10];
char endp[10];
char dats[10];
int takeoff;
int landtime;
char type[10];
int price;
}a[10];
typedef fly Fly;
- 确定整体函数的主框架,即main函数应该包含哪些内容。在程序中,要分别以航班号、始点站、终点站、起飞时间和到达时间为关键字,所以确定主函数用switch语句分别对应6个关键字的查找,即相关函数的调用。
int main()
{
int t;
cin>>t;
init(t);
int n;
while(1){
printf("请选择查找的内容:1.航班号 2.起点站 3.终点站 4.起飞时间 5.到达时间 6.价格 \n");
cin>>n;
switch(n){
case 1:
find_num(t);
break;
case 2:
find_sta(t);
break;
case 3:
find_endp(t);
break;
case 4:
flytime(t);
break;
case 5:
offtime(t);
break;
case 6:
pricedown(t);
break;
case 0:
return 0;
}
}
return 0;
}
4.函数的初始化:用何种函数去定义就会影响整个代码的运行过程。Scanf函数用来接收输入的字符或信息,用字符数组更简便去定义,但是航班信息的容量不好控制,用线性表可以更方便查询与记录。
初始化函数:
void init(int n){
int i;
//cin>>n;
for(i=0;i<n;i++){
//scanf("%s %s %s %s %d %d %s %d",a[i].flight_num,a[i].start,a[i].endp,a[i].dats,&a[i].takeoff,&a[i].landtime,a[i].type,&a[i].price);
scanf("%s",a[i].flight_num);
scanf("%s",a[i].start);
scanf("%s",a[i].endp);
scanf("%s",a[i].dats);
scanf("%d",&a[i].takeoff);
scanf("%d",&a[i].landtime);
scanf("%s",a[i].type);
scanf("%d",&a[i].price);
}
}
5.程序的完善和运行。
前面的准备工作以及功能代码的完成并不能代表整个代码顺利进行,还要进行最后的测试、修改以及完善。
六、 课程设计中目前存在的问题
此程序由于个人能力有限,没有能够运用线性表对航班信息进行录入,以及缺乏对某个航班具体时间的查询。航班信息的容量由于使用数组定义导致容量有限。
最后的运行结果![在这里插入图片描述](https://img-blog.csdnimg.cn/189b7052090741dfac4cb12fbe64e5af.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAMjAyMDAyMTQ=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center#pic_center)
七、 设计实践过程中的自我感受
- 通过此次课程设计我懂得了理论与实际相结合是很重要的,光有理论知识是不能够达到学习数据结构这门专业课的目的。只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正实现利用所学数据结构的知识实现一系列开发,也从而提高自己的实际动手能力和独立思考的能力。此次课程设计虽然存在很多困难,但仍通过借鉴书本上的知识,和自身学习知识能力相结合将此次作品呈现了出来。
- 航班信息的录入模块信息不能写死,虽然每次都要录入航班相关信息,但要比更改整个程序信息简单。
- 学习数据结构使我们更好的掌握编程相关知识,此次“航班信息的查询与检索”更是贴合我们的生活,使我更好地认识了编程能力的重要性与方便性。我们不仅要学习理论知识,还要学会与实践相结合,只有这样,才能发挥学习此课程的目的和意义。
- 完成任务
八 == 主要参考资料==
[1]严蔚敏等,《数据结构》,清华大学出版社,北京,2000。
[2]谭浩强,《C语言程序设计》,清华大学出版社,北京。