C语言程序设计航班管理系统.docx
- 文档编号:8072864
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:20
- 大小:157.81KB
C语言程序设计航班管理系统.docx
《C语言程序设计航班管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计航班管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
C语言程序设计航班管理系统
仲恺农业工程学院
C语言程序设计报告
航班信息管理系统
课程名称C语言程序设计
姓名XXX
院(系)信息科学与技术学院
专业班级网络工程XX
学号201320XX
指导教师XXX
仲恺农业工程学院教务处制
1需求分析
航班信息包括航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号、票价,八项信息。
试设计航班信息管理系统,使之能提供以下功能:
●系统以菜单方式工作
●航班信息录入功能(航班信息用文件保存)--输入
●航班信息浏览功能--输出
●航班信息查询功能-算法(其中查询方式可以按学历查询、按职工号查询等)
●航班信息排序、筛选功能
2系统总框图和功能模块说明
2.1系统总框图
图1系
统总框图
2.2功能模块说明
输入航班信息模块,完成航班信息的录入。
航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。
检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;把航班信息一一输入后,判断其有没有存入文件中。
排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。
查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。
其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。
筛选航班信息模块,筛选模板分为四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。
利用字符串函数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
#include
#include
#include
#defineN15
#defineM20
#defineLENsizeof(structfly)
typedefstructfly{
intno;/*航班号*/
charstartpoint[M];
charfinalpoint[M];
intbanqi[M];
charstartime[M];
charfinaltime[M];
chartipe[M];
floatprice;
};
structflyf[N];
voidin();
voidshow(inti);
voidorder(int);/*排序*/
voidsearch();/*编号查询系统*/
voidmenu();
voidstartpoint();/*起点站查询系统*/
voidfinalpoint();/*达到站查询系统*/
voidstartime();/*起点时间查询系统*/
voidfinaltime();/*到达时间查询系统*/
voidmain()
{
intn;
menu();
scanf("%d",&n);
while(n)
{
switch(n)
{
case1:
in();
break;
case2:
search();
break;
case3:
startpoint();
break;
case4:
finalpoint();
break;
case5:
startime();
break;
case6:
finaltime();
break;
default:
break;
}
getch();
menu();
scanf("%d",&n);
}
}
voidmenu()
{
system("cls");
printf("\n\n\n\n\n");
printf("\t\t|--------------航班信息查询系统----------------|\n");
printf("\t\t|0.退出|\n");
printf("\t\t|1.录入记录|\n");
printf("\t\t|2.航班号查询|\n");
printf("\t\t|3.起点站查询|\n");
printf("\t\t|4.到达站查询|\n");
printf("\t\t|5.起飞时间查询|\n");
printf("\t\t|6.到达时间查询|\n");
printf("\t\t|----------------------------------------------|\n\n");
printf("\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)
printf("没有找到\n");
else
{
system("cls");
/*system就是调用DOS命令,CLS命令的意思是清除屏幕上所有的文字*/
for(i=0;i show(i); } if((fp=fopen("data","wb"))==NULL) { printf("不能打开文件\n"); return; } for(i=0;i fwrite(&f[i],LEN,1,fp); printf("是否输入? 输入请按‘Y’否则按任意键----"); scanf("%s",ch); while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("编号--------"); scanf("%d",&f[m].no); for(i=0;i if(f[i].no==f[m].no) { printf("该记录应经存在,请按任意键继续\n"); getch(); fclose(fp); return; } printf("起点站-----"); scanf("%s",&f[m].startpoint); printf("终点站-----"); scanf("%s",&f[m].finalpoint); printf("班期-------"); scanf("%s",&f[m].banqi); printf("起飞时间---"); scanf("%s",&f[m].startime); printf("到达时间---"); scanf("%s",&f[m].finaltime); printf("飞机型号---"); scanf("%s",&f[m].tipe); printf("价格-------"); scanf("%f",&f[m].price); printf("是否保存? 输入请按‘Y’否则按任意键----"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { if(fwrite(&f[m],LEN,1,fp)! =1) { printf("不能保存\n"); getch(); } else { printf("编号为%d的航班信息已经保存\n",f[i].no); m++; } } printf("是否继续,继续请按--Y--,否则按任意键"); scanf("%s",ch); } fclose(fp); printf("OK"); } voidsearch()/*编号查询系统*/ { FILE*fp; intsnum,i,m=0; charch[2]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入编号----"); scanf("%d",&snum); for(i=0;i if(snum==f[i].no) { printf("已经找到该记录,是否显示? 显示请按—Y—"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { show(i); break; } else printf("没有相关的记录\n"); return; } } voidstartpoint()/*起点站查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入起点站----"); scanf("%s",&snum); for(i=0;i { if(strcmp(f[i].startpoint,snum)==0) { show(i); continue; } else printf("没有相关的记录\n"); return; } } voidfinalpoint()/*到达站查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入到达站----"); scanf("%s",&snum); for(i=0;i if(strcmp(f[i].finalpoint,snum)==0) { show(i); continue; } else printf("没有相关的记录\n"); return; } voidstartime()/*起点时间查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入起点时间----"); scanf("%s",&snum); for(i=0;i if(strcmp(f[i].startime,snum)==0) { show(i); continue; } else printf("没有相关的记录\n"); return; } voidfinaltime()/*达到时间查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入到达时间----"); scanf("%s",&snum); for(i=0;i if(strcmp(f[i].finaltime,snum)==0) { show(i); continue; } else printf("没有相关的记录\n"); return; } voidshow(inti) { printf("航班编号为%d的航班信息如下: \n",f[i].no); printf("起点站----------------%s\n",f[i].startpoint); printf("终点站----------------%s\n",f[i].finalpoint); printf("起飞时间--------------%s\n",f[i].startime); printf("到达时间--------------%s\n",f[i].finaltime); printf("班期------------------%s\n",f[i].banqi); printf("航班型号--------------%s\n",f[i].tipe); printf("价格------------------%5.2f\n",f[i].price); printf("\n\n\n\n"); } voidorder(inti) { intj; floattemp; for(i=0;i { for(j=i+1;j if(f[i].price { temp=f[i].price; f[i].price=f[j].price; f[j].price=temp; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 航班 管理 系统