1、C语言程序设计航班管理系统仲恺农业工程学院C语言程序设计报告航班信息管理系统 课程名称 C语言程序设计姓 名 XXX院(系) 信息科学与技术学院专业班级 网络工程XX学 号 201320XX指导教师 XXX仲恺农业工程学院教务处制1 需求分析航班信息包括航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号、票价,八项信息。试设计航班信息管理系统,使之能提供以下功能: 系统以菜单方式工作 航班信息录入功能(航班信息用文件保存)输入 航班信息浏览功能输出 航班信息查询功能算法(其中查询方式可以按学历查询、按职工号查询等) 航班信息排序、筛选功能2 系统总框图和功能模块说明2.1 系统总框图图
2、1 系统总框图2.2 功能模块说明输入航班信息模块,完成航班信息的录入。航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;把航班信息一一输入后,判断其有没有存入文件中。排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。筛选航班信息模块,筛选模板分为
3、四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。利用字符串函数strcmp比较输入的筛选条件与文件中字符串是否一致为判断 ,利用循环结构把筛选条件与有效字符串一一作比较。3 系统设计3.1 主要结构体航班编号、起飞点、到达点、班期、起飞时间、达到时间、型号、价格struct fly int no; /*航班号*/ char startpointM; /*起飞点*/ char finalpointM; /*到达点*/ int banqi; /*班期*/ char startimeM; /*起飞时机*/ char finaltimeM; /*到达时间*/ char tipeM; /*
4、型号*/ float price; /*价格*/;3.2主要功能函数void in(); /*航班信息输入系统*/void order(); /*航班价格排序系统*/void search(); /*航班信息查询系统*/void menu(); /*信息展现函数*/void startpoint(); /*起点站筛选系统*/void finalpoint(); /*达到站筛选系统*/void startime(); /*起点时间筛选系统*/void finaltime(); /*到达时间筛选系统*/3.3 关键函数的流程图数字6 ,按到达时间筛选航班信息数字5 ,按起点时间筛选航班信息数字4
5、,按到达站筛选航班信息数字1 ,输入航班信息数字2 ,查询航班信息数字3 ,按起点站筛选航班信息4 系统调试1、航班信息的输入2、输入航班号,对航班信息进行查找3、输入到达站,对航班信息进行筛选5 总结在程序的编写中,导致程序出现逻辑错误,我个人经验不足,所以一旦出现错误就添加一些语句,比如添加printf(测试语句|n);在程序中,断定其程序中哪一些地方出现错误,发现其中的错误,修改后再删除掉。由于忘记了函数的调用方法,导致程序show无法调用,查看网上类似的程序,终于发现错误。6 源程序清单 #include#include#include#include#define N 15#defi
6、ne M 20#define LEN sizeof(struct fly)typedef struct fly int no;/*航班号*/ char startpointM; char finalpointM; int banqiM; char startimeM; char finaltimeM; char tipeM; float price;struct fly fN;void in();void show(int i);void order(int); /*排序*/void search(); /*编号查询系统*/void menu();void startpoint(); /*起点
7、站查询系统*/void finalpoint(); /*达到站查询系统*/void startime(); /*起点时间查询系统*/void finaltime(); /*到达时间查询系统*/void main() int n; menu(); scanf(%d,&n); while(n) switch(n) case 1: in(); break; case 2: search(); break; case 3: startpoint(); break; case 4: finalpoint(); break; case 5: startime(); break; case 6: final
8、time(); break; default:break; getch(); menu(); scanf(%d,&n); void menu() system(cls); printf(nnnnn); printf(tt|-航班信息查询系统-|n); printf(tt| 0. 退出 |n); printf(tt| 1.录入记录 |n); printf(tt| 2.航班号查询 |n); printf(tt| 3.起点站查询 |n); printf(tt| 4.到达站查询 |n); printf(tt| 5.起飞时间查询 |n); printf(tt| 6.到达时间查询 |n); printf(
9、tt|-|nn ); printf(ttt 选择(0-6):_);void in() int i,m=0; char ch2; FILE *fp; if(fp=fopen(data,ab+)=NULL) printf(不能打开文件n); return; while(!feof(fp)/feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1 if(fread(&fm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(没有找到n); else system(cls); /*system就是调用DOS命令,CLS命令的意思是清除屏幕上所有的文字*/
10、 for(i=0;im;i+) show(i); if(fp=fopen(data,wb)=NULL) printf(不能打开文件n ); return; for(i=0;im;i+) fwrite(&fi,LEN,1,fp); printf(是否输入?输入请按Y否则按任意键-); scanf(%s,ch); while(strcmp(ch,Y)=0|strcmp(ch,y)=0) printf(编号-); scanf(%d,&fm.no); for(i=0;im;i+) if(fi.no=fm.no) printf(该记录应经存在,请按任意键继续n); getch(); fclose(fp)
11、; return; printf(起点站-); scanf(%s,&fm.startpoint); printf(终点站-); scanf(%s,&fm.finalpoint); printf(班期-); scanf(%s,&fm.banqi); printf(起飞时间-); scanf(%s,&fm.startime); printf(到达时间-); scanf(%s,&fm.finaltime); printf(飞机型号-); scanf(%s,&fm.tipe); printf(价格-); scanf(%f,&fm.price); printf(是否保存?输入请按Y否则按任意键-); s
12、canf(%s,ch); if(strcmp(ch,Y)=0|strcmp(ch,y)=0) if(fwrite(&fm,LEN,1,fp)!=1) printf(不能保存n); getch(); else printf(编号为%d的航班信息已经保存n,fi.no); m+; printf(是否继续,继续请按-Y-,否则按任意键); scanf(%s,ch); fclose(fp); printf(OK);void search() /*编号查询系统*/ FILE *fp; int snum,i,m=0; char ch2; if(fp=fopen(data,ab+)=NULL) printf(不能打开文件n); return; while(!feof(fp) if(fread(&fm,LEN,1,fp)=1); m+; fclose(fp); if(m=0) printf(没有记录); return; printf(请输入编号-);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1