C语言程序设计-航班管理系统

合集下载

C语言航班管理程序标准系统

C语言航班管理程序标准系统

//---------------------航班管理程序系统---------------------//#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语言课程设计报告_航班管理系统方案

C语言课程设计报告_航班管理系统方案

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语言实现

#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");。

航班查询系统C语言源程序

航班查询系统C语言源程序

#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语言课程设计-航班信息管理系统

C语言课程设计-航班信息管理系统

课程设计课程名称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语言程序设计-航班管理系统

仲恺农业工程学院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. 学会使用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语言航班系统课程设计

c语言航班系统课程设计

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. 第七周:程序调试与优化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

仲恺农业工程学院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;}}}。

相关文档
最新文档