C语言程序设计-航班管理系统
- 格式:doc
- 大小:191.50 KB
- 文档页数:18
//---------------------航班管理程序系统---------------------//#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define N 20void welcome()。
//定义一个欢迎界面函数 //void entrance()。
//定义一个进入界面 //void score()。
//定义一个记录查询函数 //void add()。
//定义一个添加航班的函数 //void cut()。
//定义一个删除航班的函数 //void sell()。
//定义一个售出航班的函数 //void consult()。
//定义一个按要求查询的函数 //void compos()。
//定义一个按航班号排序的函数 //void back()。
//定义一个返回函数 //void read()。
//定义一个读入函数 //void save()。
//定义一个保存函数 //int all=10。
int ans。
typedef struct flight{char flightNum[N]。
//航班号//char setPlace[N]。
//出发地//char destPlace[N]。
//目的地//int Amount。
//数量//char airCompany[N]。
//航空公司//char setTime[N]。
//出发时间//char arrTime[N]。
//到达时间//}ft。
struct flight fli[50]={{"A1001","北京","大连",1000,"北京航空公司","8:00","8:45"},{"A1002","上海","太原",2000,"春秋航空公司","4:00","5:00"},{"A1003","沈阳","长沙",2500,"东北航空公司","10:00","13:30"},{"A1014","石家庄","贵阳",3000,"河北航空公司","15:00","17:40"},{"A1005","长春","广州",4500,"长春航空公司","14:20","16:10"},{"B1006","郑州","武汉",5000,"新郑航空公司","19:30","20:10"},{"B1007","重庆","昆明",6000,"重庆航空公司","18:00","19:10"},{"B1008","厦门","兰州",7000,"厦门航空公司","6:40","8:20"},{"B1009","深圳","黑龙江",8000,"深圳航空公司","21:00","23:50"},{"B1010","海南","台北",8500,"海南航空公司","2:00","2:30"}}。
C程序课程设计报告题目:航班管理系统班级:学号::指导教师:年月日一、问题描述 (3)二、设计及实验要点 (3)1功能分析 (3)2、总体设计 (5)(一)、功能模块设计 (5)1.航班管理系统的功能主流程 (5)2.管理系统的查询功能 (5)3.顾客进行订票的功能模块 (5)4.退票的功能模块 (5)5.续票的功能模块 (6)6.在订票续票功能完成之后,对顾客订票信息的查询功能模块 (6)7.退出系统的功能模块 (6)(二)、数据结构设计 (6)(三)、函数功能描述 (7)三、源程序(见附录) (9)四、程序实现 (9)(一)源码分析 (9)1.程序预处理 (9)2.主函数main() (9)3管理系统的查询功能 (9)4.顾客订票的功能模块 (11)5.顾客退票的功能模块 (11)5.顾客续票的功能模块 (12)(二)运行结果 (14)五、不足之处 (14)六、参考文献 (14)航班管理系统一、问题描述航班售票是民航业务管理的一项最基本业务。
表面上看,他只是民航业务的一个简单部分,但是她涉及的业务量大、客户多,还涉及资金管理与客户服务等多方面,因此这项业务并不像看上去那么简单。
过去传统的售票方式已不能满足现代航空业务流量剧增的客户要求,本次设计便是利用目前先进的开发工具Delphi7.0以及SQL server 2000开发一个航班售票管理系统,她能方便快捷的运用在民航业务的营运之中。
本系统是对民航飞机售票业务的一种模拟。
此次的开发系统主要是完成航班售票管理的各种自动化服务,通过计算机的运行完成各项事务,设计一个航班售票管理的数据管理系统。
通过开发此系统,可稳定简便地通过计算机来执行一系列操作,减少人工劳动强度,达到省时省力的目的,容包括乘客信息添加、修改、删除、查询;航班的售票订票的添加、修改、删除、查询;航空公司的航班时刻表的查询等。
在此次课程设计的实验中,便是利用C语言和数据结构的一些知识模拟航班管理系统。
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>#define N 6#define M 150struct airline//*********************************************************飞机航班的结构定义{Charair_num[10];//**************************************************************航班号charplane_num[10];//************************************************************飞机号charstart_place[10];//**********************************************************起点站charend_place[10];//************************************************************终点站chardate[15];//*******************************************************************日期inttotal;//*********************************************************************总票数int left;//********************************************************************剩余票数}airline[N];struct customer//********************************************************客户信息的结构定义{charname[10];//*******************************************************************姓名char shenfenzheng[20];//*******************************************************身份证号charair_num[10];//**************************************************************航班号charcangwei[12];//****************************************************************仓位intpiaoshu;//********************************************************************订票数}customer[M];voidhangbanbaobiao();//***********************************************************航班报表void guanli();//***********************************************************基本信息管理函数(管理员通道)voidkehu();//*********************************************************************客户通道void luru();//*****************************************************************录入航线信息void xiugai();//***************************************************************修改信息函数void shanchu();//**************************************************************删除航线信息void hangxianchaxun();//*******************************************************航线查询函数void jipiaoyuding();//*********************************************************机票预订函数void tuidingjipiao();//********************************************************机票退订函数void zhucaidan();//**************************************************************主菜单函数void jiami(char * s,int);//********************************************************加密函数void main(){system("color 47");zhucaidan();}void zhucaidan(){int n;char mima[13];system("cls");printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");//开始界面printf("\t\t\t※★欢迎进入宇宙航空客户管理系统!★※\n");printf("\t\t\t※※\n");printf("\t\t\t※*************************************※\n\n");printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");printf("\t\t\t※请选择登入身份:※\n");printf("\t\t\t※管理员登入请按 1 ※\n");printf("\t\t\t※客户登入请按 2 ※\n");printf("\t\t\t※※\n");printf("\t\t\t※*************************************※\n");do//************************************************************************以防客户输错{scanf("%d",&n);if (n!=1&&n!=2)printf("\t\t输入错误,请重新输入\n");}while(n!=1&&n!=2);if(n==1)//*******************************************************************管理员登入{int cuowu=1;do{printf("\t\t请输入12位管理员密码:\n");jiami(mima,12);printf("\n");if (strcmp(mima,"xiongweizhou")==0)guanli();else{printf("\t\t密码输入错误,请注意大小写!\n");cuowu++;}if (cuowu==4){printf("\t\t对不起,你已经没有机会了!\n");printf("\t\t密码如果忘了请联系本系统管理员!\n");break;}}while(cuowu<=3&&strcmp(mima,"xiongweizhou")!=0);}if(n==2)//*********************************************************************客户登入{kehu();}}void kehu()//*********************************************************客户通道{int m;system("cls");do{printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");printf("\t\t\t※★欢迎进入客户服务通道!★※\n");printf("\t\t\t※※\n");printf("\t\t\t※*************************************※\n\n");printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");printf("\t\t\t※尊敬的客户您好,请选择以下操作: ※\n");printf("\t\t\t※航线查询请按 1 ※\n");printf("\t\t\t※机票预订请按 2 ※\n");printf("\t\t\t※退订机票请按 3 ※\n");printf("\t\t\t※想返回主菜单请按 4 ※\n");printf("\t\t\t※※\n");printf("\t\t\t※*************************************※\n");scanf("%d",&m);if (m!=1&&m!=2&&m!=3&&m!=4)printf("\t请按要求操作,谢谢!\n");}while(m!=1&&m!=2&&m!=3&&m!=4);if (m==1)hangxianchaxun();if (m==2)jipiaoyuding();if (m==3)tuidingjipiao();if (m==4)zhucaidan();}voidguanli()//********************************************************************基本信息管理函数{int m;system("cls");do{printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");printf("\t\t\t※★欢迎进入管理员通道!★※\n");printf("\t\t\t※*************************************※\n\n");printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");printf("\t\t\t※管理员您好,请选择以下操作: ※\n");printf("\t\t\t※录入航线信息请按 1 ※\n");printf("\t\t\t※修改航线信息请按 2 ※\n");printf("\t\t\t※删除航线信息请按 3 ※\n");printf("\t\t\t※打印航班报表请按 4 ※\n");printf("\t\t\t※想返回主菜单请按 5 ※\n");printf("\t\t\t※※\n");printf("\t\t\t※*************************************※\n");scanf("%d",&m);if (m!=1&&m!=2&&m!=3&&m!=4&&m!=5)printf("\t请按要求操作,谢谢!\n");}while(m!=1&&m!=2&&m!=3&&m!=4&&m!=5);if (m==1)luru();if (m==2)xiugai();if (m==3)shanchu();if (m==4)hangbanbaobiao();if (m==5)zhucaidan();}void luru()//*******************************************************录入航线信息{FILE *fp=NULL;static i=0;int fanhui;char ch='y';system("cls");if ((fp=fopen("flight.txt","a"))==NULL){printf("can not open flight.txt.\n");exit(0);}printf("\t\t\t※***********************※\n");printf("\t\t\t※★请认真输入信息!★※\n");printf("\t\t\t※***********************※\n");getchar();printf("\t\t请输入航班号:\n");gets(airline[i].air_num);printf("\t\t请输入飞机号:\n");gets(airline[i].plane_num);printf("\t\t请输入起始站:\n");gets(airline[i].start_place);printf("\t\t请输入终点站:\n");gets(airline[i].end_place);printf("\t\t请输入日期(****-**-**):\n");gets(airline[i].date);cuowu://goto标志printf("\t\t请输入总票数:\n");scanf("%d",&airline[i].total);printf("\t\t请输入余票数:\n");scanf("%d",&airline[i].left);if (airline[i].total<airline[i].left)//************************防止输入总票数小于余票数{printf("输入错误!总票数小于余票数!请重新输入!\n");goto cuowu;};fwrite(&airline[i],sizeof(airline[0]),1,fp);getchar();do{printf(" 你是否还要录入信息?是按\"y\",否按\"n\"! \n");ch=getchar();if (ch=='y'||ch=='Y'){fseek(fp,0,2);luru();}if (!(ch=='y'||ch=='n'||ch=='Y'||ch=='N'))printf("请按要求输入!\n");}while (!(ch=='y'||ch=='n'||ch=='Y'||ch=='N'));fclose(fp);if (ch=='n'||ch=='N'){fan://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2)printf("\t请按要求输入!\n");goto fan;};}}void xiugai()//******************************************************修改信息函数{int n,fanhui;system("cls");printf("\t\t请先找到要修改的航线!\n\n");chongxin://goto的标志do{printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");printf("\t\t\t※请选择查询方式:※\n");printf("\t\t\t※航班号查询请按 1 ※\n");printf("\t\t\t※起点站查询请按 2 ※\n");printf("\t\t\t※终点站查询请按 3 ※\n");printf("\t\t\t※日期查询请按 4 ※\n");printf("\t\t\t※返回主菜单请按 5 ※\n");printf("\t\t\t※※\n");printf("\t\t\t※*************************************※\n");scanf("%d",&n);if (n!=1&&n!=2&&n!=3&&n!=4&&n!=5)printf("\t\t请按要求输入!谢谢!\n");}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=5);if (n==1){FILE *fp=NULL;char hangbanhao[10];char ch;int i,cunzai=0;printf("\t\t请输入要查询的航班号:\n");scanf("%s",&hangbanhao);if ((fp=fopen("flight.txt","r+"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(i=0;i<N;i++){fread(&airline[i],sizeof(airline[0]),1,fp);for (i=0;i<N;i++){if (strcmp(hangbanhao,airline[i].air_num)==0){printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;chongshu://goto标志printf("\t\t确定要修改吗?('y'or'n')\n");getchar();ch=getchar();if(ch=='y'||ch=='Y'){getchar();printf("\t\t请输入航班号:\n");gets(airline[i].air_num);printf("\t\t请输入飞机号:\n");gets(airline[i].plane_num);printf("\t\t请输入起始站:\n");gets(airline[i].start_place);printf("\t\t请输入终点站:\n");gets(airline[i].end_place);printf("\t\t请输入日期(****-**-**):\n");gets(airline[i].date);cuowu:printf("\t\t请输入总票数:\n");scanf("%d",&airline[i].total);printf("\t\t请输入余票数:\n");scanf("%d",&airline[i].left);if (airline[i].total<airline[i].left)//********防止输入总票数小于余票数{printf("输入错误!总票数小于余票数!请重新输入!\n");goto cuowu;};fseek(fp,i*(long)(sizeof(struct airline)),0);fwrite(&airline[i],sizeof(airline[0]),1,fp);printf("\t\t已经修改成功!\n");fclose(fp);printf("\n");hui://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto hui;};}if(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y'){printf("\t\t请按要求输入,谢谢!\n");goto chongshu;}};}if (cunzai==0){printf("\t\t所查找的航班不存在,请重新选择查询方式!\n");goto chongxin;};if(ch=='n'||ch=='N'){fan://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto fan;};}}if (n==2){FILE *fp=NULL;char qishizhan[10];char hangbanhao[10];char ch;int i,cunzai=0;printf("\t\t请输入要查询的起始站:\n");scanf("%s",&qishizhan);if ((fp=fopen("flight.txt","r+"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(i=0;i<N;i++){fread(&airline[i],sizeof(airline[0]),1,fp);}for (i=0;i<N;i++){if (strcmp(qishizhan,airline[i].start_place)==0){printf("\t航班号飞机号起始站终点站日期票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;}}if (cunzai==1){printf("\t\t请选择输入航班号:\n");scanf("%s",&hangbanhao);cunzai=0;}for (i=0;i<N;i++){if (strcmp(hangbanhao,airline[i].air_num)==0){printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;chongshu2://goto标志printf("\t\t确定要修改吗?('y'or'n')\n");getchar();ch=getchar();if(ch=='y'||ch=='Y'){getchar();printf("\t\t请输入航班号:\n");gets(airline[i].air_num);printf("\t\t请输入飞机号:\n");gets(airline[i].plane_num);printf("\t\t请输入起始站:\n");gets(airline[i].start_place);printf("\t\t请输入终点站:\n");gets(airline[i].end_place);printf("\t\t请输入日期(****-**-**):\n");gets(airline[i].date);printf("\t\t请输入总票数:\n");scanf("%d",&airline[i].total);printf("\t\t请输入余票数:\n");scanf("%d",&airline[i].left);fseek(fp,i*(long)(sizeof(struct airline)),0);fwrite(&airline[i],sizeof(airline[0]),1,fp);printf("\t\t已经修改成功!\n");fclose(fp);printf("\n");hui2://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto hui2;};}if(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y'){printf("\t\t请按要求输入,谢谢!\n");goto chongshu2;}};}if (cunzai==0){printf("\t\t所查找的航班不存在,请重新选择查询方式!\n");goto chongxin;};if(ch=='n'||ch=='N'){fan2://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto fan2;};}}if (n==3){FILE *fp=NULL;char zhongdianzhan[10];char hangbanhao[10];char ch;int i,cunzai=0;printf("\t\t请输入要查询的终点站:\n");scanf("%s",&zhongdianzhan);if ((fp=fopen("flight.txt","r+"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(i=0;i<N;i++){fread(&airline[i],sizeof(airline[0]),1,fp);}for (i=0;i<N;i++){if (strcmp(zhongdianzhan,airline[i].end_place)==0){printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;}}if (cunzai==1){printf("\t\t请选择输入航班号:\n");scanf("%s",&hangbanhao);cunzai=0;}for (i=0;i<N;i++){if (strcmp(hangbanhao,airline[i].air_num)==0){printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;chongshu3://goto标志printf("\t\t确定要修改吗?('y'or'n')\n");getchar();ch=getchar();if(ch=='y'||ch=='Y'){getchar();printf("\t\t请输入航班号:\n");gets(airline[i].air_num);printf("\t\t请输入飞机号:\n");gets(airline[i].plane_num);printf("\t\t请输入起始站:\n");gets(airline[i].start_place);printf("\t\t请输入终点站:\n");gets(airline[i].end_place);printf("\t\t请输入日期(****-**-**):\n");gets(airline[i].date);printf("\t\t请输入总票数:\n");scanf("%d",&airline[i].total);printf("\t\t请输入余票数:\n");scanf("%d",&airline[i].left);fseek(fp,i*(long)(sizeof(struct airline)),0);fwrite(&airline[i],sizeof(airline[0]),1,fp);printf("\t\t已经修改成功!\n");fclose(fp);printf("\n");hui3://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto hui3;};}if(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y'){printf("\t\t请按要求输入,谢谢!\n");goto chongshu3;};}}if (cunzai==0){printf("\t\t所查找的航班不存在,请重新选择查询方式!\n");goto chongxin;};if(ch=='n'||ch=='N'){fan3://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto fan3;};}}if (n==4){FILE *fp=NULL;char riqi[10];char hangbanhao[10];char ch;int i,cunzai=0;printf("\t\t请输入要查询的日期(****-**-**):\n");scanf("%s",&riqi);if ((fp=fopen("flight.txt","r+"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(i=0;i<N;i++){fread(&airline[i],sizeof(airline),1,fp);}for (i=0;i<N;i++){if (strcmp(riqi,airline[i].date)==0){printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;}}if (cunzai=1){printf("\t\t请选择输入航班号:\n");scanf("%s",&hangbanhao);cunzai=0;}for (i=0;i<N;i++){if (strcmp(hangbanhao,airline[i].air_num)==0){printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;chongshu4://goto标志printf("\t\t确定要修改吗?('y'or'n')\n");getchar();ch=getchar();if(ch=='y'||ch=='Y'){getchar();printf("\t\t请输入航班号:\n");gets(airline[i].air_num);printf("\t\t请输入飞机号:\n");gets(airline[i].plane_num);printf("\t\t请输入起始站:\n");gets(airline[i].start_place);printf("\t\t请输入终点站:\n");gets(airline[i].end_place);printf("\t\t请输入日期(****-**-**):\n");gets(airline[i].date);printf("\t\t请输入总票数:\n");scanf("%d",&airline[i].total);printf("\t\t请输入余票数:\n");scanf("%d",&airline[i].left);fseek(fp,i*(long)(sizeof(struct airline)),0);fwrite(&airline[i],sizeof(airline[0]),1,fp);printf("\t\t已经修改成功!\n");fclose(fp);printf("\n");hui4://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto hui4;};}if(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y'){printf("\t\t请按要求输入,谢谢!\n");goto chongshu4;};}}if (cunzai==0){printf("\t\t所查的航班不存在,请重新选择查询方式!\n");goto chongxin;};if(ch=='n'||ch=='N'){fan4://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto fan4;};}}if (n==5)zhucaidan();if (n!=1&&n!=2&&n!=3&&n!=4&&n!=5){printf("\t\t输入错误!请按要求输入!\n");goto chongxin;};}voidshanchu()//********************************************************************** ********删除航线信息{int n,fanhui;system("cls");chongxin://goto的标志printf("\t\t请先找到要删除的航线!\n\n");do{printf("\t\t\t※*************************************※\n");printf("\t\t\t※※\n");printf("\t\t\t※请选择查询方式:※\n");printf("\t\t\t※航班号查询请按 1 ※\n");printf("\t\t\t※起始站查询请按 2 ※\n");printf("\t\t\t※终点站查询请按 3 ※\n");printf("\t\t\t※日期查询请按 4 ※\n");printf("\t\t\t※返回菜单请按 5 ※\n");printf("\t\t\t※※\n");printf("\t\t\t※*************************************※\n");scanf("%d",&n);if (n!=1&&n!=2&&n!=3&&n!=4&&n!=5)printf("请按要求输入!谢谢!\n");}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=5);if (n==1){FILE *fp=NULL;char hangbanhao[10];char ch;int i,j,k,l=0,cunzai=0;printf("\t\t请输入要查询的航班号:\n");scanf("%s",&hangbanhao);if ((fp=fopen("flight.txt","r+"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(i=0;i<N;i++){fread(&airline[i],sizeof(airline[0]),1,fp);}while(isdigit(*airline[l].air_num)){l++;}for (i=0;i<N;i++){if (strcmp(hangbanhao,airline[i].air_num)==0){j=i+1;printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;chongshu:printf("\t\t确定要删除吗?('y'or'n') \n");getchar();ch=getchar();if(ch=='y'||ch=='Y'){fseek(fp,j*(long)(sizeof(struct airline)),0);for(k=j;k<l;k++){fread(&airline[k-1],sizeof(airline[0]),1,fp);}fclose(fp);if ((fp=fopen("flight.txt","w"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(j=0;j<l-1;j++){fwrite(&airline[j],sizeof(airline[0]),1,fp);}printf("\t\t已经删除成功!\n");fclose(fp);printf("\n");fan://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto fan;};}if(ch=='n'||ch=='N')shanchu();if(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y'){printf("\t\t请按要求输入,谢谢!\n");goto chongshu;};}}if (cunzai==0){printf("\t\t所查找的航班不存在,请重新选择查询方式!\n");goto chongxin;};}if (n==2){FILE *fp=NULL;char qishizhan[10];char hangbanhao[10];char ch;int i,j,k,l=0,cunzai=0;printf("\t\t请输入要查询的起始站:\n");scanf("%s",&qishizhan);if ((fp=fopen("flight.txt","r+"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(i=0;i<N;i++){fread(&airline[i],sizeof(airline[0]),1,fp);}while(isdigit(*airline[l].air_num)){l++;}for (i=0;i<N;i++){if (strcmp(qishizhan,airline[i].start_place)==0){printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;}}if (cunzai==1){printf("\t\t请选择输入航班号:\n");scanf("%s",&hangbanhao);cunzai=0;}for (i=0;i<N;i++){if (strcmp(hangbanhao,airline[i].air_num)==0){j=i+1;printf("\t航班号飞机号起始站终点站日期总票数余票\n");printf("\t%-10s",airline[i].air_num);printf("%-10s",airline[i].plane_num);printf("%-10s",airline[i].start_place);printf("%-10s",airline[i].end_place);printf("%-14s",airline[i].date);printf("%-8d",airline[i].total);printf("%-8d",airline[i].left);printf("\n");cunzai=1;chongshu2://goto标志printf("\t\t确定要删除吗?('y'or'n') \n");getchar();ch=getchar();if(ch=='y'||ch=='Y'){fseek(fp,j*(long)(sizeof(struct airline)),0);for(k=j;k<l;k++){fread(&airline[k-1],sizeof(airline[0]),1,fp);}fclose(fp);if ((fp=fopen("flight.txt","w"))==NULL){printf("can not open flight.txt.\n");exit(0);}for(j=0;j<l-1;j++){fwrite(&airline[j],sizeof(airline[0]),1,fp);}printf("\t\t已经删除成功!\n");fclose(fp);printf("\n");fan2://goto标志printf("返回主菜单请按1,返回管理员通道请按2!\n");scanf("%d",&fanhui);if (fanhui==1)zhucaidan();if (fanhui==2)guanli();if (fanhui!=1&&fanhui!=2){printf("\t请按要求输入!\n");goto fan2;};}if(ch=='n'||ch=='N')shanchu();if(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y'){printf("\t\t请按要求输入,谢谢!\n");goto chongshu2;};}}if (cunzai==0){printf("\t\t所查找的航班不存在,请重新选择查询方式!\n");goto chongxin;};}if (n==3){FILE *fp=NULL;char zhongdianzhan[10];char hangbanhao[10];char ch;int i,j,k,l=0,cunzai=0;printf("\t\t请输入要查询的终点站:\n");scanf("%s",&zhongdianzhan);if ((fp=fopen("flight.txt","r+"))==NULL){printf("can not open flight.txt.\n");。
#include <stdio.h>#include <stdlib.h>#include <string.h>#define NOD struct plane_liststruct plane{char number [10];char start[10];char arrive [10];char date[10];char starttime[10];char arrivingtime[10];char price[10];char model[10];};NOD{char number [10];char start[10];char arrive [10];char date[10];char starttime[10];char arrivingtime[10];char price[10];char model[10];NOD*next;};FILE *fp;/*由文件中的数据生成一个飞机航班的链表,如果文件不存在,则是一个空链表*/ NOD *load(char planename[]){ NOD *p,*q,*head;struct plane per;p=(NOD *)malloc(sizeof(NOD));q=head=NULL;if((fp=fopen(planename,"rb"))==NULL)return head;else{ while(!feof(fp)){ if(fread(&per,sizeof(struct plane),1,fp)==1){p=(NOD *)malloc(sizeof(NOD));strcpy(p->number,per.number);strcpy(p->start,per.start);strcpy(p->arrive,per.arrive);strcpy(p->date,per.date);strcpy(p->starttime,per.starttime);strcpy(p->arrivingtime,per.arrivingtime);strcpy(p->price,per.price);strcpy(p->model,per.model);head=p;p->next=q;q=head;}}}fclose(fp);return(head);}/*输入*/NOD *insert(NOD *head){ NOD *temp,*p;p=head;temp=(NOD *)malloc(sizeof(NOD));printf("\n\t请输入航班号:");scanf("%s",temp->number);printf("\n\t请输入起点站:");scanf("%s",temp->start);printf("\n\t请输入终点站:");scanf("%s",temp->arrive);printf("\n\t请输入起飞时间:");scanf("%s",temp->starttime);printf("\n\t请输入到达时间:");scanf("%s",temp->arrivingtime);printf("\n\t请输入班期:");scanf("%s",temp->date);printf("\n\t请输入票价:");scanf("%s",temp->price);printf("\n\t请输入航班型号:");scanf("%s",temp->model);head=temp;temp->next=p;return head;}/*保存*/void save(NOD *head, char filename[]){NOD*p;struct plane per;if((fp=fopen(filename,"wb"))==NULL){printf(" 文件无法写入");exit(0);}else{ p=head;while(p!=NULL){ strcpy(per.number,p->number);strcpy(per.start,p->start);strcpy(per.arrive,p->arrive);strcpy(per.date,p->date);strcpy(per.starttime,p->starttime);strcpy(per.arrivingtime,p->arrivingtime);strcpy(per.price,p->price);strcpy(per.model,p->model);if(fwrite(&per,sizeof(struct plane),1,fp)!=1){printf("文件不能写入数据,请检查后重新运行.\n");exit(0);}p=p->next;}fclose(fp);}}/*显示*/void display(NOD *head){ NOD *p;p=head;while(p!=NULL){ printf("航班号:%s\n",p->number);printf("起点站:%s\n",p->start);printf("终点站:%s\n",p->arrive);printf("班期:%s\n",p->date);printf("起飞时间:%s\n",p->starttime);printf("到达时间:%s\n",p->arrivingtime);printf("票价:%s\n",p->price);printf("飞机型号:%s\n",p->model);p=p->next;}}/*航班号查找*/void finda(NOD *head){ NOD *p;char number[10];printf("请输入查找航班的编号:");scanf("%s",number);p=head;while (p!=NULL){ if(strcmp(number,p->number)==0){ printf("航班号:%s\n",p->number);printf("起点站:%s\n",p->start);printf("终点站:%s\n",p->arrive);printf("班期:%s\n",p->date);printf("起飞时间:%s\n",p->starttime);printf("到达时间:%s\n",p->arrivingtime);printf("票价:%s\n",p->price);printf("飞机型号:%s\n",p->model);break;}elsep=p->next;}if(p==NULL)printf("\n\t查无此航班\n");}/*起点站查找*/void findb(NOD *head){ NOD *p;char start[10];printf("请输入查找航班的起点站:");scanf("%s",start);p=head;while (p!=NULL){ if(strcmp(start,p->start)==0){ printf("航班号:%s\n",p->number);printf("起点站:%s\n",p->start);printf("终点站:%s\n",p->arrive);printf("班期:%s\n",p->date);printf("起飞时间:%s\n",p->starttime);printf("到达时间:%s\n",p->arrivingtime);printf("票价:%s\n",p->price);printf("飞机型号:%s\n",p->model);break;}elsep=p->next;}if(p==NULL)printf("\n\t查无此航班\n");}/*终点站查找*/void findc(NOD *head){ NOD *p;char arrive[10];printf("请输入查找航班的终点站:");scanf("%s",arrive);p=head;while (p!=NULL){ if(strcmp(arrive,p->arrive)==0){ printf("航班号:%s\n",p->number);printf("起点站:%s\n",p->start);printf("终点站:%s\n",p->arrive);printf("班期:%s\n",p->date);printf("起飞时间:%s\n",p->starttime);printf("到达时间:%s\n",p->arrivingtime);printf("票价:%s\n",p->price);printf("飞机型号:%s\n",p->model);break;}elsep=p->next;}if(p==NULL)printf("\n\t查无此航班\n");}/*起飞时间查找*/void findd(NOD *head){ NOD *p;char starttime[10];printf("请输入查找航班的起飞时间:");scanf("%s",starttime);p=head;while (p!=NULL){ if(strcmp(starttime,p->starttime)==0){ printf("航班号:%s\n",p->number);printf("起点站:%s\n",p->start);printf("终点站:%s\n",p->arrive);printf("班期:%s\n",p->date);printf("起飞时间:%s\n",p->starttime);printf("到达时间:%s\n",p->arrivingtime);printf("票价:%s\n",p->price);printf("飞机型号:%s\n",p->model);break;}elsep=p->next;}if(p==NULL)printf("\n\t查无此航班\n");}/*到达时间查找*/void finde(NOD *head){ NOD *p;char arrivingtime[10];printf("请输入查找航班的到达时间:");scanf("%s",arrivingtime);p=head;while (p!=NULL){ if(strcmp(arrivingtime,p->arrivingtime)==0) { printf("航班号:%s\n",p->number);printf("起点站:%s\n",p->start);printf("终点站:%s\n",p->arrive);printf("班期:%s\n",p->date);printf("起飞时间:%s\n",p->starttime);printf("到达时间:%s\n",p->arrivingtime);printf("票价:%s\n",p->price);printf("飞机型号:%s\n",p->model);break;}elsep=p->next;}if(p==NULL)printf("\n\t查无此航班\n");}/*删除*/NOD *dele(NOD *head){ NOD *p,*q;char number[5];printf(":请输入要删除的航班编号");scanf("%s",number);p=q=head;while(p!=NULL){ if(strcmp(number,p->number)==0){if(head==p)head=p->next;elseq->next=p->next;free(p);break;}else{q=p;p=p->next;}}if(p==NULL)printf("\n\t查无此航班\n");return head;}/*主函数*/void main(){ NOD *head;char fnum[10];int choise;printf("\n\t欢迎光临航班查询系统:");scanf("%s",fnum);head=load(fnum);while(1){ printf("\n\t\t 航班信息检索与查询\n");printf("\t\t********************************\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 7.增加新航班\n");printf("\t\t 8.显示所有航班\n");printf("\t\t 9.存盘并退出\n");printf("\n\t请选择1-9:");scanf("%d",&choise);switch(choise){ case 1:finda(head);break;case 2:findb(head);break;case 3:findc(head);break;case 4:findd(head);break;case 5:finde(head);break;case 6:head=dele(head);break;case 7:head=insert(head);break;case 8:display(head);break;case 9:save(head,fnum); exit(0);default:printf("输入错误,重新输入\n");}}}。
课程设计课程名称C语言课程设计题目名称航班信息管理系统学生学院物理与光电工程学院专业班级电子科学与技术(4)班学号学生姓名指导教师2015 年10 月23 日目录一设计目的.............................................................................................................................. - 2 - 二课程设计的内容.................................................................................................................. - 2 - 三课程设计的要求与数据...................................................................................................... - 2 - 四课程设计应完成的工作...................................................................................................... - 3 - 五总体设计.............................................................................................................................. - 3 - 六详细设计.............................................................................................................................. - 3 - 七调试分析.............................................................................................................................. - 9 -7.1 源程序及注释............................................................................................................... - 9 -7.2 调试与测试................................................................................................................. - 30 -7.2.1 算法调试过程中出现的问题及解决方法:.................................................. - 30 -7.2.2 主要程序运行结果.......................................................................................... - 32 - 八总结.................................................................................................................................... - 35 - 九参考文献............................................................................................................................ - 36 -一设计目的进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。
仲恺农业工程学院C语言程序设计报告航班信息管理系统课程名称C语言程序设计姓名 XXX院(系)信息科学与技术学院专业班级网络工程XX学号 201320XX指导教师 XXX仲恺农业工程学院教务处制目录1 需求分析 (1)2 系统总框图和功能模块说明 (1)2.1 系统总框图 (1)2.2 功能模块说明 (2)3 系统设计 (3)3.1 主要结构体 (3)3.2主要功能函数 (3)3.3 关键函数的流程图 (4)4 系统调试 (5)5 总结 (7)6 源程序清单 (7)1 需求分析航班信息包括航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号、票价,八项信息。
试设计航班信息管理系统,使之能提供以下功能:●系统以菜单方式工作●航班信息录入功能(航班信息用文件保存)--输入●航班信息浏览功能--输出●航班信息查询功能-算法(其中查询方式可以按学历查询、按职工号查询等)●航班信息排序、筛选功能2 系统总框图和功能模块说明2.1 系统总框图图1 系统总框图2.2 功能模块说明输入航班信息模块,完成航班信息的录入。
航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。
检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;把航班信息一一输入后,判断其有没有存入文件中。
排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。
查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。
其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。
筛选航班信息模块,筛选模板分为四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。
利用字符串函数strcmp比较输入的筛选条件与文件中字符串是否一致为判断,利用循环结构把筛选条件与有效字符串一一作比较。
航班c语言课程设计一、课程目标知识目标:1. 理解C语言的基本语法和程序结构,掌握变量、数据类型、运算符、表达式等基础知识。
2. 学会使用C语言进行顺序、选择和循环结构编程,并能运用逻辑思维解决问题。
3. 掌握C语言数组、函数、指针等进阶知识,能够阅读和分析简单的程序代码。
技能目标:1. 能够独立编写简单的C程序,实现航班信息管理系统的基本功能,如航班查询、添加、删除等。
2. 学会使用C语言的调试工具,如gcc、gdb等,能够调试和修复程序中的错误。
3. 培养良好的编程习惯,写出结构清晰、易于维护的代码。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发他们探索计算机科学领域的欲望。
2. 培养学生的团队协作意识,学会与他人共同解决问题,共同进步。
3. 引导学生认识到编程对于解决现实问题的重要性,提高他们运用所学知识为社会服务的意识。
课程性质:本课程为航班信息管理系统的C语言课程设计,旨在通过实际项目的开发,让学生将所学C语言知识运用到实际编程中,提高编程能力和解决问题的能力。
学生特点:学生具备一定的C语言基础,对编程有一定兴趣,但实际编程经验不足,需要通过实践来提高。
教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重实践操作,鼓励学生积极参与讨论和协作,培养实际编程能力。
同时,关注学生的情感态度价值观培养,引导他们形成正确的编程观念。
二、教学内容1. C语言基础回顾- 变量、数据类型- 运算符、表达式- 顺序结构编程2. C语言控制结构- 选择结构(if、switch)- 循环结构(for、while、do-while)3. 数组与函数- 一维数组、二维数组- 函数的定义、声明、调用- 递归函数4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 结构体与文件操作- 结构体的定义与使用- 文件读写操作- 结构体与文件结合实现数据存储6. 航班信息管理系统功能实现- 航班查询功能- 航班添加、删除功能- 航班信息展示与排序7. C语言编程规范与调试- 编程规范与代码优化- gcc编译与gdb调试- 常见错误分析与处理教学内容依据课程目标,结合教材相关章节进行组织。
c语言航班系统课程设计一、课程目标知识目标:1. 理解C语言的基本语法和编程结构,掌握函数、数组、指针等基本概念;2. 学会使用C语言进行数据输入、处理和输出;3. 掌握航班系统的基本功能需求,如航班查询、预订、取消等;4. 了解文件操作,实现航班信息的存储和读取。
技能目标:1. 能够运用C语言编写简单的航班系统程序;2. 学会分析问题,设计合理的程序结构,培养编程解决问题的能力;3. 掌握调试和优化程序的方法,提高程序质量和效率;4. 学会团队协作,与他人共同完成项目任务。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,提高自主学习能力;2. 培养学生的逻辑思维和创新能力,提高分析问题和解决问题的能力;3. 培养学生的团队协作精神,学会与他人沟通、分享和合作;4. 引导学生关注实际应用,认识到编程知识在现实生活中的重要性。
课程性质:本课程为实践性较强的课程,旨在让学生通过设计航班系统,将所学的C语言知识应用于实际项目中。
学生特点:学生具备一定的C语言基础,对编程感兴趣,具备一定的逻辑思维能力。
教学要求:教师需引导学生自主学习,注重理论与实践相结合,鼓励学生思考、创新,提高编程能力和团队协作能力。
通过课程学习,使学生达到上述课程目标,并能够将所学知识应用于实际项目中。
后续教学设计和评估将围绕这些具体的学习成果展开。
二、教学内容1. C语言基础语法回顾:变量、数据类型、运算符、表达式、控制结构(条件语句、循环语句);2. 函数与模块化编程:函数定义、调用、参数传递、作用域、递归;3. 数组与字符串:一维数组、二维数组、字符串处理;4. 指针与动态内存管理:指针概念、指针运算、指针与数组、动态内存分配;5. 结构体与文件操作:结构体定义、结构体数组、文件读写、文件存储;6. 航班系统功能模块设计:航班查询、预订、取消、航班信息管理;7. 程序调试与优化:调试技巧、性能优化、代码规范。
教学内容安排与进度:1. 第一周:C语言基础语法回顾;2. 第二周:函数与模块化编程;3. 第三周:数组与字符串;4. 第四周:指针与动态内存管理;5. 第五周:结构体与文件操作;6. 第六周:航班系统功能模块设计;7. 第七周:程序调试与优化。
C程序课程设计报告题目:航班管理系统班级:学号::指导教师:年月日一、问题描述 (3)二、设计及实验要点 (3)1功能分析 (3)2、总体设计 (5)(一)、功能模块设计 (5)1.航班管理系统的功能主流程 (5)2.管理系统的查询功能 (5)3.顾客进行订票的功能模块 (5)4.退票的功能模块 (5)5.续票的功能模块 (6)6.在订票续票功能完成之后,对顾客订票信息的查询功能模块 (6)7.退出系统的功能模块 (6)(二)、数据结构设计 (6)(三)、函数功能描述 (7)三、源程序(见附录) (9)四、程序实现 (9)(一)源码分析 (9)1.程序预处理 (9)2.主函数main() (9)3管理系统的查询功能 (9)4.顾客订票的功能模块 (11)5.顾客退票的功能模块 (11)5.顾客续票的功能模块 (12)(二)运行结果 (14)五、不足之处 (14)六、参考文献 (14)航班管理系统一、问题描述航班售票是民航业务管理的一项最基本业务。
表面上看,他只是民航业务的一个简单部分,但是她涉及的业务量大、客户多,还涉及资金管理与客户服务等多方面,因此这项业务并不像看上去那么简单。
过去传统的售票方式已不能满足现代航空业务流量剧增的客户要求,本次设计便是利用目前先进的开发工具Delphi7.0以及SQL server 2000开发一个航班售票管理系统,她能方便快捷的运用在民航业务的营运之中。
本系统是对民航飞机售票业务的一种模拟。
此次的开发系统主要是完成航班售票管理的各种自动化服务,通过计算机的运行完成各项事务,设计一个航班售票管理的数据管理系统。
通过开发此系统,可稳定简便地通过计算机来执行一系列操作,减少人工劳动强度,达到省时省力的目的,容包括乘客信息添加、修改、删除、查询;航班的售票订票的添加、修改、删除、查询;航空公司的航班时刻表的查询等。
在此次课程设计的实验中,便是利用C语言和数据结构的一些知识模拟航班管理系统。
c语言课程设计航班管理系统一、教学目标本课程旨在通过学习航班管理系统的设计与实现,使学生掌握C语言编程的基本语法、数据结构、算法和软件工程方法。
具体目标如下:1.理解C语言的基本语法和编程规范。
2.掌握常用的数据结构和算法。
3.了解软件工程的基本方法和流程。
4.能够使用C语言编写简单的程序。
5.能够设计和实现一个简单的航班管理系统。
6.能够运用软件工程方法进行程序设计和测试。
情感态度价值观目标:1.培养学生的编程兴趣和自主学习能力。
2.培养学生解决问题的能力和团队合作精神。
3.培养学生的创新意识和软件工程意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和软件工程方法,以及航班管理系统的设计与实现。
具体安排如下:1.C语言的基本语法和编程规范。
2.常用的数据结构(如数组、链表、栈和队列等)和算法(如排序和查找等)。
3.软件工程的基本方法和流程(如需求分析、设计、编码和测试等)。
4.航班管理系统的设计和实现,包括飞机、航班、乘客等数据的定义和管理,以及航班预订、登机等功能的实现。
三、教学方法本课程将采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解和示例,使学生掌握C语言的基本语法和编程规范。
2.讨论法:通过小组讨论和问题解答,使学生深入理解数据结构和算法。
3.案例分析法:通过分析实际案例,使学生了解软件工程的方法和流程。
4.实验法:通过编写和测试程序,使学生掌握C语言的编程技巧和软件工程的方法。
四、教学资源本课程将使用教材《C语言程序设计》作为主要教学资源,同时提供以下辅助资源:1.参考书籍:提供相关数据结构和算法的参考书籍,以加深学生对该领域的理解。
2.多媒体资料:提供相关的视频教程和演示文稿,以帮助学生更好地理解课程内容。
3.实验设备:提供计算机和编程环境,以便学生进行编程实验和实践。
通过以上教学资源的支持,学生将能够更好地学习和实践C语言编程和软件工程方法,掌握航班管理系统的设计与实现。
C语言课程设计-航班订票系统C语言课程设计姓名:班级:学号:开始菜单0 1 4 3 2退出查询航班信息订票输入航班信息浏览航班信息输入航班数输出航班信输入需要订输入需要查息,航班数每票的航班号找的航班号碰到10的倍数,系统暂输入每个航停,按任意键班的航班从第一个航班开从第一个航班继续号,起始站,始,用strcmp语开始,用strcmp终点站,飞句进行对比语句进行对比行时间,预售票数找到相同未找到如果找未找到航班号,该航班到相同该航班在已售票号,输的航班号,输数目上加出,对号,输出,对上(需要j不起,出该航不起,订票的数没有该班信息没有该目) 航班航班输出,订票成功结束源程序#include<stdio.h>#include <stdlib.h>#include<string.h>#define N 50typedef struct flight{char flightNo[10]; //航班号char start[10]; //起始站char end[10]; //终点站float day; //飞行时间int totalTicket; //预售票总数int sellTicket; //已售票总数}Flight; //航班结构体int Index=0;Flight f[N];void input_flight_info( );void output_flight_info(int total); void search_flight_info();int revise_flight_info();void main() //编写菜单{int a;while(1){printf("============================================================ ========\n\n");printf("-------?-----?-----《欢迎进入飞机订票系统》?-----?-----?-------\n\n\n\n");printf("--------------------------*1.输入航班信息*--------------------------\n\n");printf("--------------------------*2.浏览航班信息*--------------------------\n\n");printf("--------------------------*3.查找航班信息*--------------------------\n\n");printf("--------------------------*4.订票*--------------------------\n\n");printf("--------------------------*0.退出订票系统*--------------------------\n\n");scanf("%d",&a);switch(a){case 1:input_flight_info(); //进入输入航班信息系统break;case 2:output_flight_info(Index); //进入浏览航班信息系统break;case 3:search_flight_info(); //进入查找航班信息系统break;case 4:revise_flight_info(); //进入订票系统break;case 0: //退出订票系统exit(0);}}}/*输入航班信息*/void input_flight_info( ) {int i,n;printf("输入航班数:"); //定义航班数scanf("%d",&n);Index=n;for(i=0;i<n;i++){printf("请输入航班号:\n");scanf("%s",f[i].flightNo); //输入航班号printf("请输入起始站:\n");scanf("%s",f[i].start); //输入起始站printf("请输入终点站:\n");scanf("%s",f[i].end); //输入终点站printf("请输入飞行时间:\n");scanf("%f",&f[i].day); //输入飞行时间printf("请输入预售票总数:\n");scanf("%d",&f[i].totalTicket); //输入预售票总数printf("请输入已售票总数:\n");scanf("%d",&f[i].sellTicket); //输入已售票总数}}/*浏览航班信息*/void output_flight_info(int total) {int i;for(i=1;i<total;i++){printf("航班号:%s\n",f[i].flightNo); //字符型printf("起始站:%s\n",f[i].start); //字符型printf("终点站:%s\n",f[i].end); //字符型printf("飞行时间:%f\n",f[i].day); //浮点型printf("预售票总数:%d\n",f[i].totalTicket); //整数型printf("已售票总数:%d\n",f[i].sellTicket); //整数型printf("\n");if(i%10==0&&i!=0)system("pause");}system("pause");}/*查找航班信息*/void search_flight_info(){int i;char temp[10];printf("请输入你要查询的航班号:\n");scanf("%s",&temp);for(i=0;i<50;i++) //查找相应的航班号{if(strcmp(f[i].flightNo,temp)==0)break;}if(i==50)printf("对不起,没有该航班\n");else{printf("航班号:%s\n",f[i].flightNo);printf("起始站:%s\n",f[i].start); //输出该航班的起始站printf("终点站:%s\n",f[i].end); //输出该航班的终点站printf("飞行时间:%f个小时\n",f[i].day); //输出该航班的飞行时间printf("预售票总数:%d\n",f[i].totalTicket); //输出该航班的预售票总数printf("已售票总数:%d\n",f[i].sellTicket); //输出该航班的已售票总数}}/*订票系统*/int revise_flight_info(){int i,j,k;char temp[10];printf("请输入的你要订票的航班号:\n");scanf("%s",&temp);for(i=0;i<50;i++) //查找相应的航班号{if(strcmp(f[i].flightNo,temp)==0){k=f[i].totalTicket-f[i].sellTicket; //剩余票数printf("请输入你想要的票数:\n");scanf("%d",&j);if(j>k)printf("对不起,剩余的票数只有%d\n",k);else{f[i].sellTicket=f[i].sellTicket+j; //在已售票的数目上加上刚销售的票数printf("订票成功\n");return f[i].sellTicket; //将售票的数目返回给原函数} break;}elseprintf("对不起,没有该航班\n");break;}}。
仲恺农业工程学院C语言程序设计报告航班信息管理系统课程名称C语言程序设计姓名XXX院(系)信息科学与技术学院专业班级网络工程XX学号201320XX指导教师XXX仲恺农业工程学院教务处制目录1需求分析 (1)2系统总框图和功能模块说明 (1)2.1系统总框图 (1)2.2功能模块说明 (2)3系统设计 (3)3.1主要结构体 (3)3.2主要功能函数 (3)3.3关键函数的流程图 (4)4系统调试 (5)5总结 (7)6源程序清单 (7)1需求分析航班信息包括航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号、票价,八项信息。
试设计航班信息管理系统,使之能提供以下功能:●系统以菜单方式工作●航班信息录入功能(航班信息用文件保存)--输入●航班信息浏览功能--输出●航班信息查询功能-算法(其中查询方式可以按学历查询、按职工号查询等)●航班信息排序、筛选功能2系统总框图和功能模块说明2.1系统总框图图1系职工信息管理系统输入航班信息筛选航班信息排序航班信息查询航班信息保存航班信息按航班起点站筛选按航班到达站筛选按航班起点时间筛选按航班到达时间筛选统总框图2.2功能模块说明输入航班信息模块,完成航班信息的录入。
航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。
检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;把航班信息一一输入后,判断其有没有存入文件中。
排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。
查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。
其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。
筛选航班信息模块,筛选模板分为四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。
利用字符串函数strcmp比较输入的筛选条件与文件中字符串是否一致为判断,利用循环结构把筛选条件与有效字符串一一作比较。
c语言课程设计航班管理一、教学目标本章节的教学目标为:知识目标:使学生掌握C语言编程的基本语法和编程思想,了解航班管理系统的基本概念和架构。
技能目标:培养学生使用C语言进行程序设计的能力,使学生能够独立完成简单的航班管理系统的设计与实现。
情感态度价值观目标:培养学生对计算机科学的兴趣和热情,增强学生解决实际问题的信心和勇气。
二、教学内容本章节的教学内容主要包括:1.C语言基础知识:数据类型、变量、运算符、表达式、语句等。
2.航班管理系统的需求分析:航班信息管理、航班预订管理、航班座位管理等。
3.航班管理系统的架构设计:前端界面设计、后端逻辑设计、数据库设计等。
4.航班管理系统的实现:使用C语言实现前端界面、后端逻辑和数据库操作。
三、教学方法本章节的教学方法采用:1.讲授法:讲解C语言基础知识、航班管理系统的需求分析和架构设计。
2.案例分析法:分析实际航班管理系统的案例,让学生更好地理解航班管理系统的实现。
3.实验法:让学生动手编写C语言程序,实现简单的航班管理系统。
四、教学资源本章节的教学资源包括:1.教材:《C程序设计语言》或《C语言入门教程》。
2.参考书:《C语言编程思想》、《航班管理系统设计与实现》。
3.多媒体资料:教学PPT、视频教程、在线编程练习平台。
4.实验设备:计算机、网络环境、编程调试工具。
五、教学评估本章节的教学评估主要包括:1.平时表现评估:评估学生在课堂上的参与度、提问回答等情况,占总评的20%。
2.作业评估:评估学生完成的编程作业,检查代码质量、功能实现等情况,占总评的30%。
3.考试评估:进行期末考试,测试学生对C语言知识和航班管理系统的掌握程度,占总评的50%。
评估方式应客观、公正,全面反映学生的学习成果。
教师应及时给予学生反馈,帮助他们改进学习方法和提高学习效果。
六、教学安排本章节的教学安排如下:1.教学进度:共10课时,每课时45分钟。
2.教学时间:每周三下午2:00-4:30。
航班订票系统c语言课程设计一、课程目标知识目标:1. 理解C语言中数据类型、变量、运算符的基本概念;2. 掌握C语言控制结构(如顺序、分支、循环)的使用方法;3. 学会使用数组、结构体等数据结构表示航班订票系统的相关信息;4. 了解简单的文件操作,实现航班信息的存储和读取。
技能目标:1. 能够运用所学C语言知识,设计并实现一个简单的航班订票系统;2. 培养学生分析问题、解决问题的能力,通过编写代码解决航班订票过程中的实际问题;3. 提高学生的编程实践能力,使其能够熟练使用C语言进行系统开发;4. 培养学生团队协作能力,共同完成课程设计任务。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发其学习热情;2. 培养学生认真、负责的工作态度,严谨、踏实的编程习惯;3. 增强学生的自信心,使其相信自己有能力解决实际问题;4. 培养学生遵守法律法规,尊重知识产权,养成良好的道德品质。
本课程设计针对高年级学生,在掌握了C语言基础知识的前提下,通过实际项目开发,使学生在实践中巩固和提高所学知识。
课程设计要求学生具备一定的编程基础,能够运用所学知识解决实际问题。
通过课程学习,旨在培养学生具备独立分析和解决实际问题的能力,为今后的学习和工作打下坚实基础。
二、教学内容1. C语言基础知识回顾:数据类型、变量、常量、运算符、表达式;2. 控制结构:顺序结构、分支结构(if-else、switch-case)、循环结构(for、while、do-while);3. 函数:函数定义、调用、参数传递、返回值、递归;4. 数组:一维数组、二维数组、数组操作;5. 指针:指针的概念、指针操作、指针与数组、指针与函数;6. 结构体:结构体的定义、初始化、结构体数组、结构体指针;7. 文件操作:文件打开、关闭、读写、文件定位;8. 航班订票系统设计:需求分析、系统设计、模块划分、功能实现;- 用户登录模块:用户身份验证;- 航班查询模块:查询航班信息;- 订票模块:实现订票功能,处理座位分配;- 取消订票模块:取消已预订的航班;- 信息管理模块:管理航班信息、用户信息等;9. 系统测试与调试:测试各模块功能,确保系统稳定可靠。
c语言航班管理系统代码c语言航班管理系统代码#include#include#include#define N 10000struct air{int num;char start[20];char over[20];char time[10];int count;}s[N];int i;int m=0;#define PRINT "%-dsssd\",s.num,s.start,s.over,s.time,s.count void input(); void print();void save();void read();void search();void shanchu();void dingpiao();void tuipiao();void xiugai();void main(){int j;printf(" ★---您好,欢迎进入中国民航管理系统!---★\");printf("===================================== ===========================================\");do{printf(" --------☆ 1.输入航班信息☆-------- \\"" --------☆ 2.浏览航班信息☆-------- \\"" --------☆ 3.修改航班信息☆-------- \\"" --------☆ 4.查找航班信息☆-------- \\"" --------☆ 5.删除航班信息☆-------- \\"" --------☆ 6.订票信息☆-------- \\"" --------☆7.退票信息☆-------- \\"" --------☆0.退出☆--------\\");printf("===================================== ===========================================\");printf("请在0-7中选择以回车键结束:\\"); scanf("%d",&j);switch(j){case 1: input();break;case 2:print();break;case 3:xiugai();break;case 4:search();break;case 5:shanchu();break;case 6:dingpiao();break;case 7:tuipiao();break;case 0:;break;}}while(j!=0);。
C语言航班订票管理系统设计报告设计任务书编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。
小组任务分配:小组负责人:负责总体设计(包括总体设计流程图、模块函数原型接口设计); 负责订票函数模块、退票函数模块编写。
组员:负责文件的输入、文件读取、文件输出函数模块的编写。
组员:负责查询、修改、删除函数模块的编写。
目录1、需求分析 (4)2、功能描述 (4)3、总体设计 (6)4、调试分析 (7)5、测试结果 (7)6、用户使用说明 (12)7、课程设计心得 (12)8、附录(源代码) (13)2需求分析:用数组或链表数据结构完成一个航班信息管理系统,此系统的具体功能要求如下:(1)航班信息录入功能1)用户从键盘输入每次航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。
2)可添加一个或多个航班信息到当前编辑的数据中。
3) 可修改一个或多个航班信息。
4)可删除一个或多个航班信息。
(2)文件保存功能1)航班信息每一机场存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。
2)用户输入航班信息可随时保存数据文件。
(3)文件打开功能1)程序只能对当前打开的数据文件进行编辑。
(4)查询功能1)浏览所有航班信息;2)按航班号查询航班信息;3)按终点站查询航班信息;4) 按航线查询航班信息;(5)报表输出功能1) 按航班编号输出一个航空公司的航班信息:航班号、起始站、终点站、起飞时间、机票数、票价,到屏幕和文件。
注:以上功能以菜单形式供用户使用,并有一定的容错功能。
一,功能描述模块基本介绍:1. 用户输入模块在此模块中,用户将根据菜单提示结合自己的需求输入一个0~7的值,来实现一定的功能。
2. 航班信息录入模块此模块可以让用户从键盘输入每个航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。
用户可插入一个或多个航班信息到当前编辑的数据中。
用户可删除一个或多个航班信息。
c语言课程设计机场航班系统一、教学目标本课程的目标是使学生掌握C语言编程基础,能够运用C语言实现简单的机场航班系统。
通过本课程的学习,学生将能够理解C语言的基本语法、数据类型、运算符、控制结构等知识,具备基本的编程能力,能够运用C语言进行程序设计,实现机场航班系统的功能。
具体的学习目标包括:1.知识目标:学生将掌握C语言的基本语法、数据类型、运算符、控制结构等知识。
2.技能目标:学生将能够运用C语言进行程序设计,实现机场航班系统的功能。
3.情感态度价值观目标:通过本课程的学习,学生将培养对计算机编程的兴趣和热情,提高自我学习和解决问题的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等知识,以及机场航班系统的程序设计。
具体的教学内容安排如下:1.第一章:C语言概述,介绍C语言的基本概念和特点。
2.第二章:数据类型和变量,介绍C语言的数据类型和变量的使用。
3.第三章:运算符和表达式,介绍C语言的运算符和表达式的使用。
4.第四章:控制结构,介绍C语言的控制结构,包括条件语句和循环语句。
5.第五章:函数,介绍C语言的函数的定义和调用。
6.第六章:机场航班系统的设计与实现,介绍如何运用C语言实现机场航班系统的功能。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
1.讲授法:通过教师的讲解,使学生掌握C语言的基本语法、数据类型、运算符、控制结构等知识。
2.案例分析法:通过分析实际案例,使学生了解如何运用C语言进行程序设计,实现机场航班系统的功能。
3.实验法:通过学生的动手实验,使学生巩固所学的知识,提高编程能力。
四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备。
1.教材:选用合适的C语言教材,为学生提供系统的知识学习。
2.参考书:提供相关的参考书籍,为学生提供更多的学习资源。
3.多媒体资料:制作多媒体课件,为学生提供直观的学习材料。
c 课程设计航班系统一、教学目标本课程的目标是让学生了解和掌握航班系统的基本原理和操作流程。
知识目标要求学生掌握航班系统的组成部分、工作原理和运行机制;技能目标要求学生能够运用所学知识进行航班系统的模拟操作和简单设计;情感态度价值观目标要求学生培养对航班系统的兴趣,提高其对航空事业的认同感和责任感。
二、教学内容教学内容将依据教材的章节进行,主要包括:第一章航班系统概述,介绍航班系统的定义、发展历程和组成部分;第二章航班系统的运行原理,讲解航班系统的运行机制、航班计划和航班调度;第三章航班系统的操作流程,详细讲解航班起飞、飞行、降落各个阶段的操作流程;第四章航班系统的安全与管理,介绍航班系统的安全规定、安全管理方法和应急预案。
三、教学方法针对不同章节的内容,将采用多种教学方法进行教学。
如:讲授法,用于讲解航班系统的基本概念和原理;案例分析法,用于分析实际案例,让学生了解航班系统的运行实际;实验法,让学生动手进行航班系统的模拟操作,加深对知识的理解。
四、教学资源教学资源包括教材、多媒体资料和实验设备。
教材为学生提供理论知识的系统学习;多媒体资料包括图片、视频等,用于辅助讲解和展示;实验设备让学生能够进行实际操作,巩固所学知识。
五、教学评估教学评估将采用多元化的方式进行,以全面、客观、公正地评价学生的学习成果。
评估方式包括:平时表现,考察学生的课堂参与、提问和回答问题的情况;作业,检查学生对知识的理解和应用能力;考试,评估学生的知识掌握程度和运用能力。
评估结果将及时反馈给学生,以促进学生的学习进步。
六、教学安排教学安排将根据课程目标和学生的实际情况进行设计。
教学进度将合理安排,确保在有限的时间内完成教学任务。
教学时间将根据学生的作息时间进行安排,尽量不影响学生的休息和其它课程的学习。
教学地点将选择适合教学的环境,以提供良好的学习条件。
七、差异化教学差异化教学将根据学生的不同学习风格、兴趣和能力水平进行设计。
/*1、用户和管理员及航班信息请以英文字母或数字输入*//*2、管理员账户为:boss,密码为:123。
保存在txt文件中,需要修改请于程序中修改*/ /*3、部分文件读写为二进制读写,所以打开文件时会看到乱码*/#include <stdio.h>#include <string.h>#include <stdlib.h>#include<conio.h>#define N 1000void zhujiemian();//主界面函数void verify();//用户及管理员登录选择void loginmanager();//管理员登录void loginuser();//用户登录void loginflightm();//管理员登录机票系统void loginflightu();//用户登录机票系统void creatfile();//创建用户信息模块void saveuser();//用户信息保存模块程序void input(); //输入航班信息void print(); //输出航班信息void save(); //保存航班信息void read(); //读取航班信息void paixu(); // 对所有航班按航班号排序void search(); //查找航班信息void dingpiao(); //订票信息struct users //管理员/用户信息结构体,管理员可以修改航班信息{char Name[20]; //管理员/用户姓名char sexual[10];//用户性别char ps[8]; // 用户密码int age; //用户年龄long Number; //用户身份证号码int power; //power为1是管理员登录,为0是用户登录}user[N],up,mg;//up为键盘输入用户信息,user[N]为文件保存的用户信息,mg为管理员结构体int n;//所有用户个数,初始化为0struct air //航班信息结构体{int num; //航班号char start[20]; //出发地char over[20]; //目的地char time[10]; //时间int count; //票数int prize; //票价}s[N],fnew;int i;int m=0; //所有航班个数#define PRINT "%-d%12s%12s%10s%12d%10d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].pri ze //定义输出格式void main()//主函数{zhujiemian();}void zhujiemian()//主界面函数{int j;printf("#===================================================#\n");printf("# 欢迎进入机票管理系统 #\n");printf("# 1、登录系统 #\n");printf("# 2、新用户注册 #\n");printf("# 0、退出 #\n");printf("#===================================================#\n");printf("请在1-2中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1:verify();//进入机票系统break;case 2:creatfile();//进入用户注册系统break;case 0:;break;}}void verify()//验证用户及管理员信息模块{int j;system("cls");printf("#===================================================#\n");printf("# 1、管理员登录 #\n");printf("# 2、用户登录 #\n");printf("# 0、返回主界面 #\n");printf("#===================================================#\n");scanf("%d",&j);switch(j){case 1:loginmanager();//进入管理员登录界面break;case 2:loginuser();//进入用户登录界面break;case 0:system("cls");zhujiemian(); //进入主界面break;}}/********管理员登录确定函数**********/void loginmanager(){FILE * fp=NULL;//定义文件指针char DataFile[20]="manager.txt";//存储管理员信息的文件名int i=0,j=1;char relogin; //是否重新登录int success=0; //登录成功的标志printf("\n---管理员登录---\n");fp=fopen(DataFile,"r");if(fp==NULL)//如果当前文件不存在,初始化根用户名为boss,密码为123,权限为管理员{printf("首次使用该系统!\n");printf("管理员账户为:boss 密码为:123\n");fp=fopen(DataFile,"a");//以追加方式打开文件user[0].Number=0;strcpy(user[0].Name,"boss");strcpy(user[0].sexual,"male");user[0].age=22;user[0].power=1;strcpy(user[0].ps,"123");fwrite(&user[0],sizeof(user),1,fp);fclose(fp);}elsefclose(fp);again:printf("请输入管理员姓名:");scanf("%s",);//输入用户名[19]='\0';printf("请输入管理员密码:");fflush(stdin);for(i=0;i<7;i++)//输入密码,以*在屏幕显示{up.ps[i]=getch();up.ps[i+1]='\0';//字符要以'\0'结尾if(up.ps[i]=='\b'){i--;up.ps[i]='\0';//清除前一个字符i--;//接收前一个字符printf("\b ");printf("\b");continue;}if(up.ps[i]=='\r'){up.ps[i]='\0';break;}printf("*");}fp=fopen(DataFile,"rt");if(fp==NULL) // 打开文件失败时提示{printf("\n打开 %s 失败!按任意键结束程序\n",DataFile);perror("Open file fail");getchar();return;}if((fp=fopen("manager.txt","r"))==NULL)//打开文件,并判断是否出错{printf("\n出错,请检查文件是否存在,按任意键返回主菜单\n");//打印出错提示getchar();}elsefread(&mg,sizeof(struct users),1,fp);//从文件中读取信息fclose(fp);//关闭文件if(strcmp(,)==0&&strcmp(mg.ps,up.ps)==0){success=1;}if(success==1) //登录成功{printf("\n登录成功,按任意键进入机票调整系统!\n");getchar();loginflightm();}else//未登录成功{fflush(stdin);//清除输入缓冲区中的字符printf("\n用户名或密码错误!重新输入请按y,退出请按n:\n");relogin=getchar();if(relogin=='y'||relogin=='Y'){getchar();goto again;}else{verify();exit(0);}}}/********用户登录函数**********/void loginuser(){FILE *fp=NULL,*fp1;//定义文件指针char DataFile[20]="yonghu.txt";//存储管理员信息的文件名int i=0,j=0;char relogin; //是否重新登录int success=0; //登录成功的标志printf("\n---用户登录---\n");fp=fopen(DataFile,"r");//读取文件中数据if((fp1=fopen("howmanyusers.txt","a"))==NULL)//读写方式打开文件,若文件不存在,则n=0 {//printf("创建文件失败!\n\n");//打印出错提示n=0;//getchar();//continue;}else{fp1=fopen("howmanyusers.txt","r");fscanf(fp1, "%d",&n);//读取fp1中的用户个数}fclose(fp1);if((fp=fopen("yonghu.txt","r"))==NULL)//打开文件,并判断是否出错{fp1=fopen("howmanyusers.txt","w+");//以写方式打开fprintf(fp1,"%d",0);//打开用户文件失败,则输入用户个数0到fp1fclose(fp1);printf("\n目前没有用户信息,请按ENTER键返回主菜单先进行注册!\n");getchar();getchar();system("cls");zhujiemian();}for(i=0;i<n;i++){fread(&user[i],sizeof(struct users),1,fp);//从文件中读取信息}fclose(fp);//关闭文件//输入数据与文件中用户比对again:printf("请输入用户姓名:");scanf("%s",);//输入用户名[19]='\0';printf("请输入用户密码:");fflush(stdin);for(i=0;i<7;i++)//输入密码,以*在屏幕显示{up.ps[i]=getch();up.ps[i+1]='\0';//字符要以'\0'结尾if(up.ps[i]=='\b'){i--;up.ps[i]='\0';//清除前一个字符i--;//接收前一个字符printf("\b ");printf("\b");continue;}if(up.ps[i]=='\r'){up.ps[i]='\0';break;}printf("*");}for(i=0;i<n;i++) //对比用户名和密码,进行登录{if(strcmp(user[i].Name,)==0&&strcmp(user[i].ps,up.ps)==0){success=1;break;}}if(success==1) //登录成功{printf("\n登录成功,按任意键进入机票调整系统!\n");getchar();loginflightu();}else //未登录成功{fflush(stdin);//清除输入缓冲区中的字符printf("\n用户名或密码错误!重新输入请按y,退出请按n:\n");relogin=getchar();if(relogin=='y'||relogin=='Y'){getchar();goto again;}else{verify();exit(0);}}}void saveuser(struct users[])//用户信息保存模块程序{FILE *fp,*fp1;//定义文件指针if((fp=fopen("yonghu.txt","a"))==NULL)//打开文件并判断是否出错{printf("创建文件失败!\n\n");//打印出错提示getchar();return;}if((fp1=fopen("howmanyusers.txt","w+"))==NULL)//打开文件并判断是否出错{printf("创建文件失败!\n\n");//打印出错提示getchar();return;}for(i=0;i<n;i++){if(fwrite(&user[i],sizeof(struct users),1,fp)==0)//向文件写入数据,并判断是否出错{printf("向文件输入数据失败!\n\n");}}fprintf(fp1,"%d",n);//输入用户个数到fp1fclose(fp);//关闭文件fclose(fp1);//关闭文件}void creatfile()//增加用户信息模块{FILE *fp=NULL,*p=NULL,*fp1;char DataFile[20]="yonghu.txt";//存储用户信息的文件名//int a[100];int i=0,k=1,count=0;fp=fopen(DataFile,"r");system("cls");//清屏if(fp==NULL)//如果当前文件不存在,提示打开文件失败{fp1=fopen("howmanyusers.txt","w+");//以写方式打开fprintf(fp1,"%d",0);//打开用户文件失败,则输入用户个数0到fp1fclose(fp1);printf("\n不存在%s,正在创建!\n",DataFile);fp=fopen(DataFile,"a");creatfile();}if((fp1=fopen("howmanyusers.txt","a"))==NULL)//读写方式打开文件,若文件不存在,则n=0 {n=0;}else{fp1=fopen("howmanyusers.txt","r");fscanf(fp1, "%d",&n);//读取fp1中的用户个数}fclose(fp1);for(i=0;i<n;i++){fread(&user[i],sizeof(struct users),1,fp);//从文件中读取信息}fclose(fp);//关闭文件//如果成功打开文件,则提示输入用户相关信息printf("请输入用户信息\n");fflush(stdin);while(k){//printf("\n输入身份证号码注意身份证号码不能为0!\n");printf("请输入身份证号码:");scanf("%ld",&up.Number);i=0;//再次初始化i为0//判断身份证号是否存在while(i<n){if(user[i].Number==up.Number){printf("该身份证号码已被使用过!\n请重新输入身份证号:");scanf("%ld",&up.Number);i=0;//continue;}elsei++;}//经循环对比后,i的值仍和n相等,将新注册的信息加入数组末位user[i].Number=up.Number;printf("姓名:");scanf("%s",&user[i].Name);user[i].Name[19]='\0';printf("性别:");scanf("%s",&user[i].sexual);printf("用户密码:");scanf("%s",&user[i].ps);printf("年龄:");scanf("%d",&user[i].age);n++;//用户数目增加printf("是否继续注册?是:选1,否:选0;");scanf("%d",&k);}saveuser(user);//保存用户信息fclose(fp);//在屏幕上显示文件内容system("cls");printf("数据已经成功保存到%s中\n",DataFile);getchar();printf("按任意键返回主界面!\n");getchar();system("cls");zhujiemian();//返回主界面}void loginflightm()//管理员登录机票系统{int j;do{system("cls");printf(" ★----------------您好,欢迎进入自动化飞机订票系统!---★\n");printf("=========================================================================== =====\n");printf(" **-------- -------☆ 1.输入航班信息☆-------- -------------------**\n\n" " **-------- ----☆ 2. 浏览航班信息☆----- ------------------**\n\n" " **-------- ☆ 3. 查找航班信息 -☆-------- ------------**\n\n" " **-------- ---☆ 4.对航班按航班票价排序---☆-----------------------**\n\n" " **-------- ------☆ 5. 订票信息-☆-------- -----------------**\n\n" " **-------- ----------☆0.退出-☆-------- ---------------------**\n\n" " **-------- ---------------☆☆---------------------------------**\n\n" " **-------- -----------------☆-------- --------------------------**\n\n" " **-------- ---------------☆☆-------- --------------------------**\n\n");printf("=========================================================================== =====\n");printf("请在0-5中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1:input();//调用输入模块break;case 2:system("cls");print();//调用打印模块break;case 3:search();//调用查找模块break;case 4:paixu();//调用排序模块break;case 5:dingpiao();//调用订票模块break;case 0:;break;}}while(j!=0); //判断结束printf("按任意键返回主界面\n");system("cls");zhujiemian();}//登录函数结束void loginflightu()//用户登录机票系统{int j;do{system("cls");printf(" ★----------------您好,欢迎进入自动化飞机订票系统!---★\n");printf("=========================================================================== =====\n");printf(" **-------- ----☆ 1. 浏览航班信息☆----- ------------------**\n\n" " **-------- ☆ 2. 查找航班信息 -☆--------------------**\n\n" " **-------- ---☆ 3.对航班按航班票价排序---☆-----------------------**\n\n" " **-------- ------☆ 4. 订票信息-☆-------- -----------------**\n\n" " **-------- ----------☆0.退出-☆-------- ---------------------**\n\n" " **-------- ---------------☆☆-------- -------------------------**\n\n" " **-------- -----------------☆-------- --------------------------**\n\n" " **-------- ---------------☆☆-------- --------------------------**\n\n");printf("=========================================================================== =====\n");printf("请在0-5中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1:system("cls");print();//调用打印模块break;case 2:search();//调用查找模块break;case 3:paixu();//调用排序模块break;case 4:dingpiao();//调用订票模块break;case 0:;break;}}while(j!=0); //判断结束printf("按任意键返回主界面\n");system("cls");zhujiemian();}//登录函数结束void input()//输入航班信息模块,管理员操作{int i=0,k=1;read();printf("请依次输入航班信息(航班号,起始站,终点站,起飞时间,机票数,票价):\n\n");//打印提示信息printf("--------------------------------------------------------------------------\ n");//fflush(stdin);while(k){printf("请输入航班号:\n");scanf("%d",&fnew.num); //读取航班号i=0;//再次初始化i为0//判断航班是否已经存在while(i<m){if(s[i].num==fnew.num){printf("该航班已经存在!\n请重新输入:");scanf("%d",&fnew.num);i=0;//continue;}elsei++;}//经循环对比后,i的值仍和n相等,将新注册的信息加入数组末位s[i].num=fnew.num;printf("请输入起始站:\n");scanf("%s",s[i].start);//读取起始站printf("请输入终点站:\n");scanf("%s",s[i].over);//读取终点站printf("请输入时间:\n");scanf("%s",s[i].time);//读取时间printf("请输入余票数(机票数为0结束输入):\n",m);scanf("%d",&s[i].count);//读取机票数printf("请输入机票票价:\n",m);scanf("%d",&s[i].prize);//读取机票票价m++; //所有航班信息个数// printf("第%d个信息已经输完是否继续?按1-9任意数字继续,按0结束",m);//scanf("%d",&y);printf("是否继续添加航班?是:选1,否:选0;");scanf("%d",&k);if(k==0){save();//将结构体信息存盘system("cls");print();//输出输入的航班信息break;}}}void save()//航班信息保存模块程序{FILE *fp,*fp1;//定义文件指针if((fp=fopen("flight.txt","wb"))==NULL)//打开文件并判断是否出错printf("创建文件失败!\n\n");//打印出错提示getchar();return;}if((fp1=fopen("howmanyflights.txt","wb"))==NULL)//打开文件并判断是否出错{printf("创建文件失败!\n\n");//打印出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件写入数据,并判断是否出错printf("向文件输入数据失败!\n\n");fprintf(fp1,"%d",m);fclose(fp);//关闭文件fclose(fp1);//关闭文件}void read()//从文件读取航班信息模块{FILE *fp,*fp1;//定义文件指针fp=fopen("flight.txt","r");//system("cls");//清屏if(fp==NULL)//如果当前文件不存在,提示打开文件失败{fp1=fopen("howmanyflights.txt","w+");//以写方式打开fprintf(fp1,"%d",0);//打开用户文件失败,则输入用户个数0到fp1fclose(fp1);printf("\n不存在flight.txt,正在创建!\n");fp=fopen("flight.txt","a");printf("创建完成!\n");system("cls");read();//perror("Open file fail");//getch();}if((fp1=fopen("howmanyflights.txt","rb"))==NULL)//读写方式打开文件,若文件不存在,则m=0{//printf("创建文件失败!\n\n");//打印出错提示m=0;}else{fp1=fopen("howmanyflights.txt","r");fscanf(fp1, "%d",&m);//读取fp1中的用户个数fclose(fp1);for(i=0;i<m;i++){fread(&s[i],sizeof(struct air),1,fp);//从文件中读取信息}fclose(fp);//关闭文件}void print()//屏幕打印航班信息模块{read();//调用读取文件函数if(m==0)printf("\n\n目前没有航班信息!\n");else{printf("航班信息如下:\n");printf("航班号起始站终点站时间余票数票价\n");for(i=0;i<m;i++){printf(PRINT);//打印信息}}printf("\n请按任意键回车键结束返回主菜单");getchar();getchar();}void paixu()//对所有航班按航班价格排序{int j;struct pai{int no;char name1[20];char name2[20];char time[20];int count;int prize;}p[1];//临时定义结构体,作为排序时的第三变量read();//调用读取信息函数for(j=0;j<(m-1);j++){for(i=0;i<(m-(1+j));i++){if(s[i].prize>s[i+1].prize) //按价格升序排列,p[0]为中间变量{p[0].no=s[i].num;//替换航班号strcpy(p[0].name1,s[i].start);//替换其始站strcpy(p[0].name2,s[i].over);//替换终点站strcpy(p[0].time,s[i].time);//替换时间p[0].count=s[i].count;//替换机票数p[0].prize=s[i].prize;//替换票价s[i]=s[i+1];s[i+1].num=p[0].no;//替换航班号strcpy(s[i+1].start,p[0].name1);//替换其始站strcpy(s[i+1].over,p[0].name2);//替换终点站strcpy(s[i+1].time,p[0].time);//替换时间s[i+1].count=p[0].count;//替换机票数s[i+1].prize=p[0].prize;}}}save();//调用保存函数system("cls");printf("排序后,");print();}void search()//按航班号查询模块{char ii[10];int no,k;read();//调用读取函数do{system("cls");k=0;//每次查找都初始化k为0printf("请输入你要找的航班号:");//打印查询方式菜单scanf("%d",&no);//航班号for(i=0;i<m;i++){if(s[i].num==no)//按航班号判断输出条件{k=1;system("cls");printf("\n查找航班信息成功!\n");printf("航班号起始站终点站时间余票数票价\n");printf(PRINT);//打印信息break;}}no=0;//将航班号重新赋值为0if(k==0){printf("没有您需要的信息\n");}printf("\n是否继续查找?请键入yes或no以回车键结束\n");scanf("%s",ii);}while(strcmp(ii,"yes")==0);//判断结束}void dingpiao()//订票模块{int n;char a[10];search();//调用查询模块do{printf("请输入您要订的机票数以回车键结束:\n");scanf("%d",&n);//读取所订机票数if(n<0){printf("请输入有效的机票数!\n");//判断机票数是否出错break;}if(s[i].count!=0&&s[i].count>=n)//判断是否出错{s[i].count=s[i].count-n;save();//调用保存函数printf("订票成功!\n\n");break;}if(s[i].count<n)//判断是否出错{printf("余票不足,请输入有效的机票数!\n");getchar();}printf("是否继续订票?请输入yes或no以回车键结束:\n");//判断是否继续订票scanf("%s",a);}while(!strcmp(a,"yes"));//判断结束getchar();printf("按ENTER键返回用户主界面。
/*1、用户和管理员及航班信息请以英文字母或数字输入*//*2、管理员账户为:boss,密码为:123。
保存在txt文件中,需要修改请于程序中修改*//*3、部分文件读写为二进制读写,所以打开文件时会看到乱码*/#include <>#include <>#include <>#include<>#define N 1000void zhujiemian();um,s[i].start,s[i].over,s[i].time,s[i].count,s[i].prize umber=0;strcpy(user[0].Name,"boss");strcpy(user[0].sexual,"male");user[0].age=22;user[0].power=1;strcpy(user[0].ps,"123");fwrite(&user[0],sizeof(user),1,fp);fclose(fp);}elsefclose(fp);again:printf("请输入管理员姓名:");scanf("%s",;ame,==0&&strcmp(user[i].ps,==0){success=1;break;}}if(success==1) umber=={printf("该身份证号码已被使用过!\n请重新输入身份证号:");scanf("%ld",&;i=0;umber=;printf("姓名:");scanf("%s",&user[i].Name);user[i].Name[19]='\0';printf("性别:");scanf("%s",&user[i].sexual);printf("用户密码:");scanf("%s",&user[i].ps);printf("年龄:");scanf("%d",&user[i].age);n++;入航班信息☆-------- -------------------**\n\n" " **-------- ----☆2. 浏览航班信息☆----- ------------------**\n\n" " **-------- ☆ 3. 查找航班信息-☆-------- ------------**\n\n" " **-------- ---☆ 4.对航班按航班票价排序---☆-----------------------**\n\n" " **-------- ------☆ 5. 订票信息-☆-------- -----------------**\n\n" " **-------- ----------☆0.退出-☆-------- ---------------------**\n\n" " **-------- ---------------☆☆-------- -------------------------**\n\n" " **-------- -----------------☆-------- --------------------------**\n\n" " **-------- ---------------☆☆-------- --------------------------**\n\n");printf("===================================================================== ===========\n");printf("请在0-5中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1:input();浏览航班信息☆----- ------------------**\n\n" " **-------- ☆ 2. 查找航班信息-☆-------- ------------**\n\n" " **-------- ---☆ 3.对航班按航班票价排序---☆-----------------------**\n\n" " **-------- ------☆ 4. 订票信息-☆-------- -----------------**\n\n" " **-------- ----------☆0.退出-☆-------- ---------------------**\n\n" " **-------- ---------------☆☆-------- -------------------------**\n\n" " **-------- -----------------☆-------- --------------------------**\n\n" " **-------- ---------------☆☆-------- --------------------------**\n\n");printf("===================================================================== ===========\n");printf("请在0-5中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1:system("cls");print();um=={printf("该航班已经存在!\n请重新输入:");scanf("%d",&;i=0;um=;printf("请输入起始站:\n");scanf("%s",s[i].start);ver);ime);ount);rize);rize>s[i+1].prize)o=s[i].num;ame1,s[i].start);ame2,s[i].over);ime,s[i].time);ount=s[i].count;rize=s[i].prize;um=p[0].n o;tart,p[0].name1);ver,p[0].name2);ime,p[0].time);ount=p[0].count;rize=p[0].prize;}}}save();um==no)ount!=0&&s[i].count>=n)ount=s[i].count-n;save();ount<n)//判断是否出错{printf("余票不足,请输入有效的机票数!\n");getchar();}printf("是否继续订票?请输入yes或no以回车键结束:\n");//判断是否继续订票scanf("%s",a);}while(!strcmp(a,"yes"));//判断结束getchar();printf("按ENTER键返回用户主界面。
仲恺农业工程学院C语言程序设计报告航班信息管理系统课程名称C语言程序设计姓名XXX院(系)信息科学与技术学院专业班级网络工程XX学号201320XX指导教师XXX仲恺农业工程学院教务处制目录1 需求分析 (1)2 系统总框图和功能模块说明 (1)2.1 系统总框图 (1)2.2 功能模块说明 (2)3 系统设计 (3)3.1 主要结构体 (3)3.2主要功能函数 (3)3.3 关键函数的流程图 (4)4 系统调试 (5)5 总结 (7)6 源程序清单 (7)1 需求分析航班信息包括航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号、票价,八项信息。
试设计航班信息管理系统,使之能提供以下功能:●系统以菜单方式工作●航班信息录入功能(航班信息用文件保存)--输入●航班信息浏览功能--输出●航班信息查询功能-算法(其中查询方式可以按学历查询、按职工号查询等)●航班信息排序、筛选功能2 系统总框图和功能模块说明2.1 系统总框图图1 系统总框图2.2 功能模块说明输入航班信息模块,完成航班信息的录入。
航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。
检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;把航班信息一一输入后,判断其有没有存入文件中。
排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。
查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。
其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。
筛选航班信息模块,筛选模板分为四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。
利用字符串函数strcmp比较输入的筛选条件与文件中字符串是否一致为判断,利用循环结构把筛选条件与有效字符串一一作比较。
3 系统设计3.1 主要结构体航班编号、起飞点、到达点、班期、起飞时间、达到时间、型号、价格struct fly{int no; /*航班号*/char startpoint[M]; /*起飞点*/char finalpoint[M]; /*到达点*/int banqi; /*班期*/char startime[M]; /*起飞时机*/char finaltime[M]; /*到达时间*/char tipe[M]; /*型号*/float price; /*价格*/};3.2主要功能函数void in(); /*航班信息输入系统*/void order(); /*航班价格排序系统*/void search(); /*航班信息查询系统*/void menu(); /*信息展现函数*/void startpoint(); /*起点站筛选系统*/void finalpoint(); /*达到站筛选系统*/ void startime(); /*起点时间筛选系统*/void finaltime(); /*到达时间筛选系统*/ 3.3 关键函数的流程图4 系统调试1、航班信息的输入2、输入航班号,对航班信息进行查找3、输入到达站,对航班信息进行筛选5 总结在程序的编写中,导致程序出现逻辑错误,我个人经验不足,所以一旦出现错误就添加一些语句,比如添加printf("测试语句|\n");在程序中,断定其程序中哪一些地方出现错误,发现其中的错误,修改后再删除掉。
由于忘记了函数的调用方法,导致程序show无法调用,查看网上类似的程序,终于发现错误。
6 源程序清单#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 15#define M 20#define LEN sizeof(struct fly)typedef struct fly{int no;/*航班号*/char startpoint[M];char finalpoint[M];int banqi[M];char startime[M];char finaltime[M];char tipe[M];float price;};struct fly f[N];void in();void show(int i);void order(int); /*排序*/void search(); /*编号查询系统*/void menu();void startpoint(); /*起点站查询系统*/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:finaltime();break;default:break;}getch();menu();scanf("%d",&n);}}void menu(){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):______");}void in(){int i,m=0;char ch[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<m;i++)show(i);}if((fp=fopen("data","wb"))==NULL){printf("不能打开文件\n ");return;}for(i=0;i<m;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<m;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");}void search() /*编号查询系统*/{FILE *fp;int snum,i,m=0;char ch[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<m;i++)if(snum==f[i].no){printf("已经找到该记录,是否显示?显示请按—Y—");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){show(i);break;}elseprintf("没有相关的记录\n");return;}}void startpoint() /*起点站查询系统*/{FILE *fp;int i,m=0;char snum[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<m;i++)if(strcmp(f[i].startpoint,snum)==0){show(i);continue;}elseprintf("没有相关的记录\n");return;}}void finalpoint() /*到达站查询系统*/{FILE *fp;int i,m=0;char snum[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<m;i++)if(strcmp(f[i].finalpoint,snum)==0){show(i);continue;}elseprintf("没有相关的记录\n");return;}void startime() /*起点时间查询系统*/{int i,m=0;char snum[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<m;i++)if(strcmp(f[i].startime,snum)==0){show(i);continue;}elseprintf("没有相关的记录\n");return;}void finaltime() /*达到时间查询系统*/{FILE *fp;int i,m=0;char snum[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<m;i++)if(strcmp(f[i].finaltime,snum)==0){show(i);continue;}elseprintf("没有相关的记录\n");return;}void show(int i){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");}void order(int i){int j;float temp;for(i=0;i<N-1;i++){for(j=i+1;j<N;j++)if(f[i].price<f[j].price){temp=f[i].price;f[i].price=f[j].price;f[j].price=temp;}}}。