C语言程序设计航班管理系统Word下载.docx
《C语言程序设计航班管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计航班管理系统Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
输入航班信息模块,完成航班信息的录入。
航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。
检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;
输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;
把航班信息一一输入后,判断其有没有存入文件中。
排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。
查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。
其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。
筛选航班信息模块,筛选模板分为四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。
利用字符串函数strcmp比较输入的筛选条件与文件中字符串是否一致为判断,利用循环结构把筛选条件与有效字符串一一作比较。
3系统设计
3.1主要结构体
航班编号、起飞点、到达点、班期、起飞时间、达到时间、型号、价格
structfly
{
intno;
/*航班号*/
charstartpoint[M];
/*起飞点*/
charfinalpoint[M];
/*到达点*/
intbanqi;
/*班期*/
charstartime[M];
/*起飞时机*/
charfinaltime[M];
/*到达时间*/
chartipe[M];
/*型号*/
floatprice;
/*价格*/
};
3.2主要功能函数
voidin();
/*航班信息输入系统*/
voidorder();
/*航班价格排序系统*/
voidsearch();
/*航班信息查询系统*/
voidmenu();
/*信息展现函数*/
voidstartpoint();
/*起点站筛选系统*/
voidfinalpoint();
/*达到站筛选系统*/
voidstartime();
/*起点时间筛选系统*/
voidfinaltime();
/*到达时间筛选系统*/
3.3关键函数的流程图
数字6,按到达时间筛选航班信息
数字5,按起点时间筛选航班信息
数字4,按到达站筛选航班信息
数字1,输入航班信息
数字2,查询航班信息
数字3,按起点站筛选航班信息
4系统调试
1、航班信息的输入
2、输入航班号,对航班信息进行查找
3、输入到达站,对航班信息进行筛选
5总结
在程序的编写中,导致程序出现逻辑错误,我个人经验不足,所以一旦出现错误就添加一些语句,比如添加printf("
测试语句|\n"
);
在程序中,断定其程序中哪一些地方出现错误,发现其中的错误,修改后再删除掉。
由于忘记了函数的调用方法,导致程序show无法调用,查看网上类似的程序,终于发现错误。
6源程序清单
#include<
stdio.h>
string.h>
stdlib.h>
conio.h>
#defineN15
#defineM20
#defineLENsizeof(structfly)
typedefstructfly{
/*航班号*/
intbanqi[M];
structflyf[N];
voidshow(inti);
voidorder(int);
/*排序*/
/*编号查询系统*/
/*起点站查询系统*/
/*达到站查询系统*/
/*起点时间查询系统*/
/*到达时间查询系统*/
voidmain()
intn;
menu();
scanf("
%d"
&
n);
while(n)
{
switch(n)
{
case1:
in();
break;
case2:
search();
case3:
startpoint();
case4:
finalpoint();
case5:
startime();
case6:
finaltime();
default:
break;
}
getch();
menu();
scanf("
}
}
voidmenu()
system("
cls"
printf("
\n\n\n\n\n"
\t\t|--------------航班信息查询系统----------------|\n"
\t\t|0.退出|\n"
\t\t|1.录入记录|\n"
\t\t|2.航班号查询|\n"
\t\t|3.起点站查询|\n"
\t\t|4.到达站查询|\n"
\t\t|5.起飞时间查询|\n"
\t\t|6.到达时间查询|\n"
\t\t|----------------------------------------------|\n\n"
\t\t\t选择(0-6):
______"
voidin()
inti,m=0;
charch[2];
FILE*fp;
if((fp=fopen("
data"
"
ab+"
))==NULL)
printf("
不能打开文件\n"
return;
while(!
feof(fp))//feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1
if(fread(&
f[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
没有找到\n"
else
system("
/*system就是调用DOS命令,CLS命令的意思是清除屏幕上所有的文字*/
for(i=0;
i<
m;
i++)
show(i);
wb"
不能打开文件\n"
for(i=0;
fwrite(&
f[i],LEN,1,fp);
printf("
是否输入?
输入请按‘Y’否则按任意键----"
%s"
ch);
while(strcmp(ch,"
Y"
)==0||strcmp(ch,"
y"
)==0)
编号--------"
scanf("
f[m].no);
if(f[i].no==f[m].no)
{
printf("
该记录应经存在,请按任意键继续\n"
getch();
fclose(fp);
return;
}
起点站-----"
f[m].startpoint);
终点站-----"
f[m].finalpoint);
班期-------"
f[m].banqi);
起飞时间---"
f[m].startime);
到达时间---"
f[m].finaltime);
飞机型号---"
f[m].tipe);
价格-------"
%f"
f[m].price);
是否保存?
if(strcmp(ch,"
if(fwrite(&
f[m],LEN,1,fp)!
=1)
不能保存\n"
else
printf("
编号为%d的航班信息已经保存\n"
f[i].no);
m++;
是否继续,继续请按--Y--,否则按任意键"
OK"
voidsearch()/*编号查询系统*/
intsnum,i,m=0;
if((fp=fopen("
{
return;
}
while(!
feof(fp))
if(fread(&
f[m],LEN,1,fp)==1);
m++;
没有记录"
请输入编号----"