航空管理系统的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语言在航空航天系统中的应用

C语言在航空航天系统中的应用C语言作为一种高级编程语言,在航空航天系统中具有广泛的应用。

它的高效性、强大的功能以及跨平台的特点,使得C语言成为了这个领域中不可或缺的工具。

本文将探讨C语言在航空航天系统中的应用,并重点介绍其在航空导航、飞行控制和通信系统中的具体案例。

一、航空导航系统航空导航是航班安全和准确性的关键。

而C语言的低级别操作以及对硬件的直接访问能力,使得它在航空导航系统中扮演着重要的角色。

一种示例是利用C语言编写导航算法,以计算航班的目标位置、速度和高度。

C语言的灵活性和强大的计算能力,使得这些计算过程能够高效地完成。

二、飞行控制系统飞行控制系统是确保航班的安全和稳定的关键。

C语言广泛应用于飞行控制系统的开发和实现过程中。

通过C语言,开发人员可以编写各种控制算法和模型,以实现对飞机各个部件的控制。

C语言的高效性和实时性使得飞行控制系统能够快速地响应外部环境变化和飞行员的指令,确保飞行的顺利进行。

三、通信系统航空航天系统中的通信系统承担着飞机与地面控制中心之间的信息传递任务。

而C语言则为通信协议的设计和实现提供了强大的支持。

通过C语言,开发人员可以编写各种通信协议的解析器和构建器,以实现飞机和地面控制中心之间的数据交换。

此外,C语言还可以用于开发实时通信系统,确保信息的准确性和实时性。

总结:C语言在航空航天系统中具有广泛的应用。

通过C语言,开发人员能够快速高效地开发和实现各种算法、控制系统和通信系统,以确保航班的安全和准确性。

C语言的高效性、强大的功能以及跨平台的特点,使得它成为了航空航天系统开发的重要工具。

随着技术的不断发展,C语言在这个领域中的应用将会越来越广泛。

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程序课程设计报告题目:航班管理系统班级:学号::指导教师:年月日一、问题描述 (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语言的航空订票系统的设计与实现

基于C语言的航空订票系统的设计与实现航空订票系统是通过计算机技术对航空公司的航班信息和乘客信息进行管理和处理的系统。

本文将介绍基于C语言的航空订票系统的设计与实现。

具体包括系统的需求分析、系统的设计与架构、系统的实现和功能特点等方面。

一、系统的需求分析在设计和实现航空订票系统之前,需要明确系统的需求,包括基本功能和用户需求等。

基本功能包括航班查询、座位预订、票价计算、乘客信息管理等。

用户需求包括操作简便、查询快速、信息准确等。

二、系统的设计与架构1.系统架构设计航空订票系统采用客户端/服务器(Client/Server)架构设计。

客户端负责与用户进行交互,接收用户的输入并向服务器发送请求。

服务器负责处理客户端的请求,访问数据库获取相应的数据并返回给客户端。

2.数据库设计三、系统的实现1.用户界面设计在客户端实现用户界面,提供菜单和命令行交互的方式供用户操作。

菜单包括航班查询、座位预订、票价计算、乘客信息管理等功能选项。

2.功能实现(1)航班查询功能用户输入出发地和目的地,系统从数据库中查询符合条件的航班信息,并显示在用户界面上。

用户可以选择其中一条航班进行预订。

(2)座位预订功能用户选择一条航班后,系统显示该航班的座位信息,并提示用户选择座位号。

用户选择座位后,系统生成一个订单号,并将订单信息保存到数据库中。

(3)票价计算功能用户选择一条航班后,系统显示该航班的票价信息,并提示用户输入乘客人数和票价类型。

系统根据输入的信息计算总票价并显示给用户。

(4)乘客信息管理功能用户可以添加、修改和删除乘客信息。

当用户进行座位预订时,系统要求用户输入乘客信息,可以选择已有的乘客信息或新添加乘客信息。

四、系统的功能特点1.操作简便:用户可以通过菜单方式选择需要的功能,操作简单快捷。

2.查询快速:系统利用数据库索引技术,提高了查询速度,用户可以快速获取所需信息。

3.信息准确:系统通过数据库管理相关信息,并通过数据校验保证数据的准确性。

航空信息管理和检索系统--数据结构课程设计(C语言版)

航空信息管理和检索系统--数据结构课程设计(C语言版)

#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>typedef struct node{char username[20];char userlock[20];struct node *next;}user;typedef struct tnode{char number[20];char airstart[20];char airend[20];char startime[20];char arrivetime[20];struct tnode* next;}airplane,*plane;void administerlogin();void userlogin();void administerlogin();void administer();void save(void *head1) //save information{ airplane* head=(airplane*)(head1);airplane *p;FILE *f;p=head;if(p!=NULL){f=fopen("data.txt","w+");do{fprintf(f,"%-21.21s%-11.11s%-21.21s%-21s%-21s\n",p->number,p->airstart,p->airend,p->startime ,p->arrivetime);p=p->next;}while(p!=NULL);fclose(f);}}void save1(void *head1) //save information{ user* head=(user*)(head1);user *p;FILE*f;p=head;if(p!=NULL){f=fopen("user.txt","w+");do{fprintf(f,"%-21.21s%-21s\n",p->username,p->userlock);p=p->next;}while(p!=NULL);fclose(f);}}void print(airplane *head) //pinrt information{airplane *f;f=head;printf("\n\n");if(f!=NULL){do{printf("|%6s |%10s | %10s | %10s | %10s |\n",f->number,f->airstart,f->airend,f->startime,f->arrivetime);f=f->next;}while(f!=NULL);}}void userprint(user *head) //pinrt information{user *f;f=head;printf("\n\n");if(f!=NULL){do{printf("|%10s | %10s | \n",f->username,f->userlock);f=f->next;}while(f!=NULL);}}void inlist() //create information file{airplane *p,*q;airplane *head;int n=0;char ch;printf("是否添加新信息:");getchar();scanf("%c",&ch);printf("请输入航班号起点站终点站出发时间到达时间:\n");p=q=(airplane*)malloc(sizeof(airplane));scanf("%s%s%s%s%s",p->number,p->airstart,p->airend,p->startime,p->arrivetime);head=NULL;while(1){n=n+1;if(n==1)head=p;elseq->next=p;q=p;printf("是否继续添加新信息:");getchar();scanf("%c",&ch);if(ch=='n')break;printf("请输入航班号起点站终点站出发时间到达时间:\n");p=(airplane*)malloc(sizeof(airplane));scanf("%s%s%s%s%s",p->number,p->airstart,p->airend,p->startime,p->arrivetime);q->next=NULL;save(head);}void adinsertNode(airplane *head,airplane *newNode) // insert new node {airplane *f;f=head;while(f->next!=NULL){f=f->next;}f->next=newNode;newNode->next=NULL;}void insertNode(user *head,user *newNode) // insert new node{user *f;f=head;while(f->next!=NULL){f=f->next;}f->next=newNode;newNode->next=NULL;}void *administeread() //read information from file{FILE *fp;airplane *f,*head=NULL;char str[128];fp=fopen("data.txt","r+");fgets( str , sizeof(str) , fp );head=(airplane*)malloc(sizeof(airplane));if(head==NULL){printf("分配内存失败!\n");fclose(fp);exit(0);}head->next=NULL;sscanf(str,"%s %s %s %s %s",head->number,head->airstart,head->airend,head->startime,head->ar rivetime) ;while (fgets( str , sizeof(str) , fp ) != NULL){f=(airplane*)malloc(sizeof(airplane));f->next=NULL;sscanf(str,"%s %s %s %s %s",f->number,f->airstart,f->airend,f->startime,f->arrivetime) ;adinsertNode(head,f);}fclose(fp);return head;}user *useread(){FILE *fp;user *f,*head=NULL;char str[128];fp=fopen("user.txt","r+");fgets( str , sizeof(str) , fp );head=(user*)malloc(sizeof(user));if(head==NULL){printf("分配内存失败!\n");fclose(fp);exit(0);}head->next=NULL;sscanf(str,"%s%s",head->username,head->userlock) ;while (fgets( str , sizeof(str) , fp ) != NULL){f=(user*)malloc(sizeof(user));f->next=NULL;sscanf(str,"%s%s",f->username,f->userlock) ;insertNode(head,f);}fclose(fp);return head;}void manageflight(airplane *head){char numbers[20];char ch;airplane * p=head,*q;printf("请输入航班号: ");scanf("%s",numbers);//printf("error1");while(!strcmp(p->next->number,numbers)||p->next==NULL)p=p->next;// printf("error2");q=p;p=p->next;printf("A 删除该航班 B 修改该航班\n");getchar();scanf("%c",&ch);if(ch=='a'||ch=='A'){q->next=p->next;free(p);}else if(ch=='b'||ch=='B'){printf("|%6s |%10s | %10s | %10s | %10s |\n",p->number,p->airstart,p->airend,p->startime,p->arrivetime);printf("请输入新的航班信息航班号起点站终点站出发时间到达时间:\n");scanf("%s%s%s%s%s",p->number,p->airstart,p->airend,p->startime,p->arrivetime);}save(head);}void inquire(int n,char str[])//查找{//航班号//起点站//终点站//起飞时间//到达时间airplane *p;airplane *head=(airplane*)administeread();p=head;switch(n)case 1:while(!strcmp(p->number,str)){p=p->next;}printf("|%6s |%10s | %10s | %10s | %10s |\n",p->number,p->airstart,p->airend,p->startime,p->arrivetime);break;case 2:while(!strcmp(p->airstart,str)){p=p->next;}printf("|%6s |%10s | %10s | %10s | %10s |\n",p->number,p->airstart,p->airend,p->startime,p->arrivetime);break;case 3:while(!strcmp(p->airend,str)){p=p->next;}printf("|%6s |%10s | %10s | %10s | %10s |\n",p->number,p->airstart,p->airend,p->startime,p->arrivetime);break;case 4:while(!strcmp(p->startime,str)){p=p->next;}printf("|%6s |%10s | %10s | %10s | %10s |\n",p->number,p->airstart,p->airend,p->startime,p->arrivetime);break;case 5:while(!strcmp(p->arrivetime,str)){p=p->next;}printf("|%6s |%10s | %10s | %10s | %10s |\n",p->number,p->airstart,p->airend,p->startime,p->arrivetime);break;}}int main() //主函数{char str;printf("A 管理员登陆:\nB 用户登录:\n");scanf("%c",&str);system("cls");if(str=='a'||str=='A')administerlogin();//管理员登陆else if(str=='b'||str=='B')userlogin();//用户登陆return 0;}void sort(airplane *head){airplane *endpt; //控制循环比较airplane *p; //临时指针变量airplane *p1,*p2;p1 = (airplane *) malloc (sizeof(airplane));p1->next = head; //注意理解:我们增加一个节点,放在第一个节点的前面,主要是为了便于比较。

航空管理系统

航空管理系统

void main()//主函数{int c;do{printf("\n航空订票系统\n");printf("\n\t**************************\n");printf("\n 1录入航班信息\n");printf("\n 2修改航班信息\n");printf("\n 3查询航班信息\n");printf("\n 4显示航班信息\n");printf("\n 5订票\n");printf("\n 6退票\n");printf("\n 7显示订票信息\n");printf("\n 0退出系统\n");printf("\n\t**************************\n");printf("请选择操作: ");scanf("%d",&c);switch(c){case 1:printf("您选择录入航班信息:\n");insert();break;case 2:printf("您选择修改航班信息:\n");modify();break;case 3:printf("您选择查询航班信息:\n");query();break;case 4:printf("您选择显示航班信息:\n");showf();break;case 5:printf("您选择订票:\n");booktk();break;case 6:printf("您选择退票:\n");backtk();break;case 7:printf("您选择显示订票信息:\n");showb();break;case 0:printf("您选择退出订票系统:\n");break;default:fprintf(stderr,"select error!\n");}}while(c!=0);printf("\n*****谢谢您的使用!欢迎您的下次使用*****\n");void booktk()//订票{int n,x,y,i;char a[10];FILE *fp,*fb;//定义文件指针char name1[20], ii[10];bookticket b[N];do{printf("\n请输入终点站名称:");scanf("%s",name1);//读取终点站if((fp=fopen("flight.dat","rb"))==NULL){fprintf(stderr,"can not open the file!\n");exit(-1);}rewind(fp);for(i=0;i<N;i++)fread(&air[i],sizeof(struct flight),1,fp);for(i=0;i<N;i++){if(strcmp(air[i].destination,name1)==0)//按终点站起始站判定输出条件{y=i;printf("查找航班信息成功! \n");printf("\n航班号起飞时间降落时间起点终点票价折扣余票量\n");printf(PRINT);break;}}printf("\n没有您需要的信息或查找完毕! 是否继续查找 ?请键入 yes 或 no 以回车键结束 ");scanf("%s",ii);}while(strcmp(ii,"yes")==0);//判定结束fclose(fp);if((fb=fopen("bt.dat","ab"))==NULL)//打开文件,并判定是否出错{printf("创建文件失败!");//打印出错提示getchar();return;}i=0;while((fread(&b[i],sizeof(struct bookticket),1,fb)==1) && i<N){fread(&b[i],sizeof(struct bookticket),1,fb);i++;x=i;}fclose(fb);do{printf("\n请输入您要订的机票数以回车键结束:");scanf("%d",&n);//读取所订机票数if(n<0){printf("\n请输入有效的机票数!");//判定机票数是否出错break;}if(air[y].capcity <n)//判定是否出错{printf("\n请输入有效的机票数:");break;}if(air[y].capcity!=0 && air[y].capcity>=n)//判定是否出错{air[y].capcity =air[y].capcity-n;//航班中可载客量减去订票数wr();printf("\n请输入订单号 :");scanf("%d",&bt.ticketnum);printf("\n");printf("请输入客户姓名:");scanf("%s",bt.clientname);printf("\n");printf("请输入客户证件号:");scanf("%s",bt.clientnum);printf("\n");bt.total =n;bt.fnum =air[y].fnum ;}break;printf("\n是否继续?请输入yes或no以回车键结束: ");//判定是否继续订票scanf("%s",a);}while(!strcmp(a,"yes"));//判定结束if((fb=fopen("bt.dat","rb+"))==NULL)//打开文件,并判定是否出错{printf("创建文件失败!");//打印出错提示getchar();return;}i=0;while(i<x){fseek(fb,i*sizeof(struct bookticket),SEEK_SET);fwrite(&b[i],sizeof(struct bookticket),1,fb);i++;}fseek(fb,0L,SEEK_END);//将输入的写入位置放到文件尾fwrite(&bt,sizeof(bt),1,fbfwrite(&bt,sizeof(struct bookticket),1,fb);printf("\n订票成功 !");fclose(fb);}void backtk()//退票模块{int i=0,n;char name[MAX];char a[MAX];FILE *fb,*fp;if((fb=fopen("bt.dat","wb"))==NULL)//打开文件,并判定是否出错{printf("创建文件失败 !");//打印出错提示getchar();return;}printf("\n请输入您的姓名:");scanf("%s%*c",name);rewind(fb);while(!feof(fb) && !ferror(fb)){fread(&bt,sizeof(struct bookticket),1,fb);if(!strcmp(name,bt.clientname)){ printf("\n您的订票信息如下:\n");printf(PRINT1);break;}else printf("\n没有您需要的信息!");break;exit(-1);}fclose(fb);do{printf("\n请输入您要退的机票数以回车键结束:");scanf("%d",&n);//读取所订机票数if(n<0){printf("\n请输入有效的机票数!");//判定机票数是否出错break;}if(bt.total<n){printf("\n请输入有效的机票数:");break;}if((fp=fopen("flight.dat","r+w"))==NULL){fprintf(stderr,"can not open the file!\n");exit(-1);}rewind(fp);for(i=0;i<N;i++){fread(&air[i],sizeof(struct flight),1,fp);if(air[i].fnum ==bt.fnum )//判定是否出错{air[i].capcity =air[i].capcity+n;break;}}fclose(fp);wr();printf("\n是否继续?请输入yes或no以回车键结束: ");//判定是否继续订票scanf("%s",a);}while(!strcmp(a,"yes"));//判定结束if((fb=fopen("bt.dat","rb+"))==NULL) //打开文件,并判定是否出错{printf("创建文件失败 !");//打印出错提示getchar();return;}bt.total =bt.total-n;//这个地方还有点问题, 只能保存一个订票信息fseek(fb,0L,SEEK_END);//将输入的写入位置放到文件尾fwrite(&bt,sizeof(struct bookticket),1,fb);fclose(fb);printf("\n退票成功 !");}void wr()//将航班flight.dat信息写入文件{FILE *ff;//定义文件指针int i;if((ff=fopen("flight.dat","wb"))==NULL)//打开文件并判定是否出错{printf("创建文件失败 !");//打印出错提示getchar();return;}for(i=0;i<N;i++)if(fwrite(&air[i],sizeof(struct flight),1,ff)==0) //向文件写入数据,并判定是否出错printf("向文件输入数据失败!\n ");fclose(ff);//关闭文件}void query()//查询航班信息{char name1[20];char ii[10];int n,no,i;FILE *fp;do{printf("请选择查找方式:\n");//打印查询方式菜单printf("1.按航班号查找\n");printf("2.按终点站查找 \n");printf("0.返回 \n");printf("\n请在 0-2 中选择: ");scanf("%d",&n);//读取查找方式if(n==0) break;switch(n){case 1:printf("请输入航班号 :");scanf("%d",&no);//航班号break;case 2:printf("请输入终点站名称:");scanf("%s",name1);//读取终点站break;}if((fp=fopen("flight.dat","rb"))==NULL){fprintf(stderr,"can not open the file!\n");exit(-1);}rewind(fp);for(i=0;i<N;i++)fread(&air[i],sizeof(struct flight),1,fp);for(i=0;i<N;i++){if(strcmp(air[i].destination,name1)==0)//按终点站起始站判定输出条件{printf("查找航班信息成功! \n");printf("航班号起飞时间降落时间起点终点票价折扣余票量\n");printf(PRINT);printf("\n");break;}if(air[i].fnum ==no)//按航班号判定输出条件{printf("查找航班信息成功! \n");printf("\n票价折扣航班号余票量起飞时间\n");降落时间起点终点printf(PRINT);printf("\n");break;}}printf("\n没有您需要的信息或查找完毕! 是否继续查找?请键入yes或no以回车键结束");scanf("%s",ii);}while(strcmp(ii,"yes")==0);//判定结束fclose(fp);。

c语言实现机票管理系统源代码

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]; //管理员/用户XXchar sexual[10];//用户性别char ps[8]; // 用户密码int age; //用户年龄long Number; //用户XXint 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].prize //定义输出格式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("请输入管理员XX:");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("请输入用户XX:");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输入XX注意XX不能为0!\n");printf("请输入XX:");scanf("%ld",&up.Number);i=0;//再次初始化i为0//判断XX号是否存在while(i<n){if(user[i].Number==up.Number){printf("该XX已被使用过!\n请重新输入XX号:");scanf("%ld",&up.Number);i=0;//continue;}elsei++;}//经循环比照后,i的值仍和n相等,将新注册的信息参加数组末位user[i].Number=up.Number;printf("XX:");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键返回用户主界面。

C语言版航空系统

C语言版航空系统

//readme:when you login as administrator,please login the name:admin and the password admin. // as in vc the time is not as same as the TC,so I give up showing the time.// if there are only little comments in files,it may be in dead rolling,because I have not judge the end of the file.#include<stdio.h>#include<string.h>void displaymainmenu(); //显示主菜单void displayadminmenu(); //显示管理人菜单void loginadmin(); //管理员验证void displayusermenu(); //显示用户菜单void loginuser(); //用户身份验证void storeflight(); //存储航班信息void adminviewflights(); //管理员显示航班信息void userviewflights(); //用户显示航班信息void storeuser(); //存储用户信息void booktickets(); //订票函数void viewtickets(); //显示订票信息int index; //登陆用户的位置FILE *pflight; //航班文件FILE *pticket; //票文件FILE *puser; //用户文件FILE *padmin; //管理员文件//定义user的结构体struct user{char name[20];char email[20];char password[20];char phone[15];}user[20];//定义flight的结构体struct flight{char flightnumber[20];char airline[20];char source[20];char destination[20];float price;}flight[20];struct ticket{char flightnumber[20];char name[30];int passages;//Struct date dateofjourneydouble totalamount;}ticket[20];void main(){printf("Welcome to visit the ticket sold system:\n");displaymainmenu();}//主菜单函数void displaymainmenu(){int choice;printf("1.Login as administrator:\n");printf("2.Login as user:\n");printf("3.New user:\n");printf("4.Exit\n ");printf("\n");printf("Enter your choice:\n");scanf("%d",&choice);switch(choice){case 1:loginadmin(); //需要判断管理员身份,在文件中设置一个管理员的账号,由这个验证函数进行验证.displayadminmenu(); //显示管理人菜单后可能还需要再显示主菜单,这个要注意测试一下break;case 2:loginuser(); //用户身份验证displayusermenu(); //显示用户菜单break;case 3:storeuser(); //存储用户信息break;case 4:exit(1);break;default:displaymainmenu();break;}}//管理人菜单函数void displayadminmenu(){int choice;printf("1.Register Flights information\n");printf("2.View Flights:\n");printf("3.Exit:\n ");printf("\n");printf("Enter your choice:\n");scanf("%d",&choice);switch(choice){case 1:storeflight(); //存储航班信息break;case 2:adminviewflights(); //显示航班信息break;case 3:printf("Thanks for your using.\n");displaymainmenu(); //显示主菜单break;default:displayadminmenu(); //显示主菜单break;}}//存储新用户void storeuser(){struct user user1,*u;u=&user1;puser=fopen("d:\\users.txt","a");printf("==============New user registration please enter details==============");printf("Enter your name:\n");scanf("%s",&);printf("Enter your e-mail:\n");scanf("%s",&user1.email);printf("Enter your password:\n");scanf("%s",&user1.password);printf("Enter your phone number:\n");scanf("%s",&user1.phone);//向文件中输入信息fprintf(puser,"%s %s %s %s ",,user1.email,user1.password,user1.phone);// fwrite(u,sizeof(struct user),1,puser);printf("Store success.\n");fclose(puser);displaymainmenu();}//管理员登陆void loginadmin() //比较登陆{struct user admin;char s[20];char t[20];padmin=fopen("d:\\admin.txt","r");printf("Enter your name:\n");scanf("%s",&);printf("Enter your password:\n");scanf("%s",&admin.password);//比较的过程fscanf(padmin,"%s%s%s",&s,&t,&t);if(!(strcmp(s,))&&!(strcmp(t,admin.password)))printf("Welcome administrator.\n");else{printf("Sorry,your enter is wrong!\n");displaymainmenu();}}//用户登陆void loginuser(){int i=0;char s[20];char t[20];puser=fopen("d:\\users.txt","r");printf("Enter your name:\n");scanf("%s",&s);printf("Enter your password:\n");scanf("%s",&t);for(i=0;i<20;i++){fscanf(puser,"%s%s%s%s",&user[i].name,&user[i].email,&user[i].password,&user[i].phone);if(!(strcmp(s,user[i].name))&&!(strcmp(t,user[i].password))){printf("Welcome %s.\n",s);index=i;break;}}if(i>=20){printf("Sorry,your enter is wrong.\n");displaymainmenu();}}void storeflight() //存储航班信息{struct flight flightx;pflight=fopen("d:\\flights.txt","a");printf("===========New Flight Registeration Please Enter Details==========\n");printf("Enter the flightnumber:\n");scanf("%s",&flightx.flightnumber);printf("Enter airline:\n");scanf("%s",&flightx.airline);printf("Enter source:\n");scanf("%s",&flightx.source);printf("Enter destination:\n");scanf("%s",&flightx.destination);printf("Enter the price:\n");scanf("%f",&flightx.price);fprintf(pflight,"%s %s %s %s %f ",flightx.flightnumber,flightx.airline,flightx.source,flightx.destination,flightx.price);printf("Flight Registered success.\n");fclose(pflight);displayadminmenu();}void adminviewflights() //管理员查询航班信息the information of flights to administration{int i=0;char s[20];pflight=fopen("d:\\flights.txt","r");printf("Enter flightnumber:\n");scanf("%s",&s);for(i=0;i<20;i++){fscanf(pflight,"%s%s%s%s%f",&flight[i].flightnumber,&flight[i].airline,&flight[i].source,&f light[i].destination,&flight[i].price);if(!(strcmp(flight[i].flightnumber,s))){printf("%s--%s--%s--%s--%f\n",flight[i].flightnumber,flight[i].airline,flight[i].source,flight[i].destination,flight[i].price);break;}}if(i>=20)printf("Sorry,there is no this airline\n");displayadminmenu();}void userviewflights() //用户查询航班信息the information of flights to users{int i=0;char s[20];pflight=fopen("d:\\flights.txt","r");printf("Enter flightnumber:\n");scanf("%s",&s);for(i=0;i<20;i++){fscanf(pflight,"%s%s%s%s%f",&flight[i].flightnumber,&flight[i].airline,&flight[i].source,&f light[i].destination,&flight[i].price);if(!(strcmp(flight[i].flightnumber,s))){printf("%s--%s--%s--%s--%f\n",flight[i].flightnumber,flight[i].airline,flight[i].source,flight[i] .destination,flight[i].price);break;}}if(i>=20)printf("Sorry,there is no this airline\n");displayadminmenu();}void displayusermenu() //user menu{int choice;printf("1.View flights:\n");printf("2.Book tickets:\n");printf("3.View tickets:\n");printf("4.back:\n");printf("\n");do{printf("Enter your choice please:\n");scanf("%d",&choice);}while(choice<0||choice>9);switch(choice){case 1:userviewflights();break;case 2:booktickets();break;case 3:viewtickets();break;case 4:displaymainmenu();break;default:displayusermenu();break;}}void booktickets() //the function of booking ticket {int i,j=0;pticket=fopen("d:\\tickets.txt","a");pflight=fopen("d:\\flights.txt","r");printf("Enter the flight number:\n");scanf("%s",&ticket[j].flightnumber);printf("Enter your name:\n");scanf("%s",&ticket[j].name);printf("Enter the number of passages:\n");scanf("%d",&ticket[j].passages);for(i=0;i<20;i++){fscanf(pflight,"%s%s%s%s%f",&flight[i].flightnumber,&flight[i].airline,&flight[i].source,&f light[i].destination,&flight[i].price);if(!(strcmp(flight[i].flightnumber,ticket[j].flightnumber))){ticket[j].totalamount=ticket[j].passages*flight[i].price;printf("Total number is %f\n",ticket[j].totalamount);fprintf(pticket,"%s %s %d %f ",ticket[j].flightnumber,ticket[j].name,ticket[j].passages,ticket[j].totalamount); //读入file中printf("store success.\n");break;}}if(i>=20)printf("sorry,there is no this flight.\n");displayusermenu();}void viewtickets() //the information without date.{int j;pticket=fopen("d:\\tickets.txt","r");for(j=0;j<20;j++){fscanf(pticket,"%s%s%d%f",&ticket[j].flightnumber,&ticket[j].name,&ticket[j].passages,&ti cket[j].totalamount);if(!(strcmp(ticket[j].name,user[index].name))){printf("Yout booked ticket is :%s--%s--%d--%f\n",ticket[j].flightnumber,ticket[j].name,ticket[j].passages,ticket[j].totalamoun t);}}displayusermenu();}。

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语言源代码)#include "stdio.h"#include "stdlib.h"#include "time.h"typedef struct node{int oiltime;int waittime;struct node *next;}planenode;planenode *airhead,*landhead;int maxlen,maxoil,maxwait,maxtime;int n1=0,n2=0;int Random(int,int);planenode* intialize(void);void Print(int);void planedown(void);void planeup(void);void emergency(planenode *);int running(void);void loading(void);int main(){printf("欢迎进入飞机场管理系统\n");printf("loading...\n");srand((unsigned)time(NULL));loading();printf("谢谢使用!\n\n");return 0;}void loading(void){int time=0,flag=1;printf("请您输入模拟结束时间:");scanf("%d",&maxtime);getchar(); printf("\n请您输入飞机队列的最大容量:"); scanf("%d",&maxlen);getchar();printf("\n请您输入飞机最大油量:"); scanf("%d",&maxoil);getchar();printf("\n请您输入飞机最长等待时间:"); scanf("%d",&maxwait);getchar(); airhead=intialize();landhead=intialize();while((time<=maxtime)&&flag){Print(time);flag=running();getchar();time++;}}int running(void){planenode *p,*q;int i;if(airhead->next==NULL){if(airhead->oiltime==0){printf("油量不足,紧急迫降!\n");return 0;}else if(airhead->waittime==0){printf("等待时间已到,飞机成功降落!\n"); return 0;}}else if(airhead->next!=NULL){for(p=airhead,i=0;p!=NULL;p=p->next) if(p->oiltime==0){i++;q=p;}if(i>1){printf("多架飞机油量不足,系统崩溃!\n"); return 0;}else if(i==1){if(q!=airhead)emergency(q);elseplanedown();}else if(airhead->waittime==0)planedown();}else if(landhead->waittime==0)planeup();airhead->waittime--;for(p=airhead;p!=NULL;p=p->next)p->oiltime--;return 1;}planenode* intialize(void){planenode *p,*head;int i;i=Random(1,maxlen);head=(planenode *)malloc(sizeof(planenode)); head->oiltime=Random(1,maxoil);head->waittime=Random(1,maxwait);head->next=NULL;p=head;while(--i){p->next=(planenode *)malloc(sizeof(planenode)); p=p->next;p->oiltime=Random(1,maxoil);p->waittime=0;p->next=NULL;}return (head);}void Print(int time){int i,j;planenode *p;printf("**********time%d***********\n",time); printf("空中队列信息\n");printf("编号\t剩油量\n");for(p=airhead,i=1;p!=NULL;p=p->next)printf("%4d\t%4d\n",i++,p->oiltime);printf("\n机场队列信息\n");printf("编号\t剩油量\n");for(p=landhead,j=1;p!=NULL;p=p->next) printf("%4d\t%4d\n",j++,p->oiltime);printf("空中队列平均等待时间:%f\n",(float)n1/i); printf("机场队列平均等待时间:%f\n",(float)n2/j); n1+=i;n2+=j;}void planedown(){planenode *p;p=airhead;airhead=airhead->next;airhead->waittime=Random(1,maxwait);free(p);printf("等待时间已到,飞机成功降落!\n");}void planeup(){planenode *p;p=landhead;landhead=landhead->next;landhead->waittime=Random(1,maxwait); free(p);printf("等待时间已到,飞机成功起飞!\n");}void emergency(planenode *q){planenode *p;for(p=airhead;p->next!=q;p=p->next);q=p;p=p->next;q->next=p->next;free(p);printf("油量不足,紧急迫降!\n");}int Random(int x,int y){int n;n=rand()%(y-x+1)+x;return n;}。

c语言航班管理系统代码

c语言航班管理系统代码

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语言航班订票管理系统设计报告

C语言航班订票管理系统设计报告

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语⾔实现-航空订票系统(飞机订票系统)开发环境:CodeBlocks开发语⾔:C实现功能:登录,订票,退票数据存储:⽂本读写涉及⽂件:相关⽂件下载:码云: GitHub:相关图⽚(仅供参考):程序是没有涉及旅⾏社的ER图:数据库:类图:⽤例图:订票顺序图:订票状态图:登录活动图:以上图⽚仅供参考,请⾃⾏斟酌程序主界⾯:源码如下:1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #include <stdbool.h>5//#include "getch.h"6 #include <conio.h>7#define MAX_Flight 508#define MAX_Passenger 209#define MAX_Order 501011 typedef struct Flight12{13char fid[20]; //航班号14char fname[20]; //航班名称15char start[10]; //起点16char end[10]; //终点17int fnum; //票数18}Flight;1920 typedef struct Passenger21{22char pid[20]; //⾝份证23char pname[10]; //姓名24char password[20]; //密码25char tell[20]; //电话26}Passenger;2728 typedef struct Order29{30char pid[20]; //⾝份证31char fid[20]; //航班号32int num; //票数33}Order;3435 Flight *FLI;36 Passenger *PAS;37 Order *ORD;3839char start[10]; //起点40char end[10]; //终点41char search_fid[50][20]; //符合条件的航班号42int search_fnum[50]; //符合条件的航班票数43int online = 0; //是否登录的变量44char online_pid[20]; //在线⽤户的⾝份证45int search_num = 0; //符合条件的航班数4647void init_sys(void); // 系统初始化48void show_flight(void); // 显⽰航班表49void start_sys(void); // 系统开始运⾏50void exit_sys(void); // 退出系统51void menu(void); // ⽣成主菜单52void login(void); // 登录53void logout(void); //⽤户登出54void passenger_info(void); //查询旅客信息55bool change_pas_info(void); //修改旅客信息56void search_start(void); // ⽣成查询页⾯57bool search(void); // 查询航班58void order_list(void); // ⽣成订单表59void del_order(void); // 退票60void clear_stdin(void); // 清除输⼊缓冲区61char* get_str(char* str,size_t len); // 获取字符串62char get_cmd(char start,char end); // 获取cmd命令 6364int main()65{66 init_sys();67 start_sys();68 exit_sys();69return0;70}7172// 系统初始化73void init_sys(void)74{75// 申请堆内存、加载数据76 FLI = calloc(MAX_Flight,sizeof(Flight));77 PAS = calloc(MAX_Passenger,sizeof(Passenger));78 ORD = calloc(MAX_Order,sizeof(Order));79 printf("system_init...\n");8081 FILE* ofrp = fopen("order.txt","r");82int i=0;83for(i=0; i<MAX_Order; i++) //读取⽂本中的数据到内存84 { int num = 0;85 num = fscanf(ofrp,"%s %s %d\n",ORD[i].pid,ORD[i].fid,&ORD[i].num);86 }8788 FILE* ffrp = fopen("flight.txt","r");89for(i=0; i<MAX_Flight; i++)90 {91int num = 0;92 num = fscanf(ffrp,"%s %s %s %s %d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,&FLI[i].fnum);93 }9495 FILE* pfrp = fopen("passenger.txt","r");96for(i=0; i<MAX_Passenger; i++)97 {98int num = 0;99 num = fscanf(pfrp,"%s %s %s %s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell);100 }101}102103// 显⽰航班表104void show_flight(void)105{106int i = 0;107for(i=0; i<MAX_Flight; i++)108 {109if(strlen(FLI[i].fid) != 0)110 {111 printf("id:%s name:%s start:%s end:%s fnum:%d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,FLI[i].fnum); 112 }113 }114}115116// 系统开始运⾏117void start_sys(void)118{119// 进⼊系统的业务流程控制120//printf("系统开始运⾏...\n");121//show_flight();122while(true)123 {124 menu();125switch(get_cmd('0','7'))126 {127case'1': search_start(); break;128case'2': order_list(); break;129case'3': del_order(); break;130case'4': passenger_info(); break;131case'5': change_pas_info(); break;132case'6': login(); break;133case'7': logout(); break;134case'0': return;135 }136 }137}138139// 系统结束140void exit_sys(void)141{142 printf("data insert...\n");143 FILE* ofwp = fopen("order.txt","w");144 printf("ready insert order.txt\n");145int i= 0;146for(i=0; i<MAX_Order; i++) //数据存储回本地147 {148int num = 0;149if(strlen(ORD[i].pid) != 0)150 {151 num = fprintf(ofwp,"%s %s %d\n",ORD[i].pid,ORD[i].fid,ORD[i].num);152//printf("insert order.txt success\n");153 }154 }155156 FILE* ffwp = fopen("flight.txt","w");157 printf("insert flight.txt\n");158for(i=0; i<MAX_Flight; i++)159 {160int num = 0;161if(strlen(FLI[i].fid) != 0)162 {163 num = fprintf(ffwp,"%s %s %s %s %d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,FLI[i].fnum); 164//printf("insert flight.txt success\n");165 }166 }167168 FILE* pfwp = fopen("passenger.txt","w");169 printf("insert passenger.txt\n");170for(i=0; i<MAX_Passenger; i++)171 {172int num = 0;173if(strlen(PAS[i].pid) != 0)174 {175 num = fprintf(pfwp,"%s %s %s %s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 176//printf("insert passenger.txt success\n");177 }178 }179// 释放内存、保存数据180free(FLI);181free(PAS);182free(ORD);183 printf("exit...\n");184}185186// ⽣成主菜单187void menu(void)188{189 printf("\n");190 printf("********************************\n");191 printf("| |\n");192 printf("| flight order system |\n");193 printf("* 1.search_flight *\n"); //查询航班194 printf("| 2.order_list |\n"); //查询订票信息195 printf("* 3.del_order *\n"); //退订196 printf("| 4.passenger_info |\n"); //查询旅客信息197 printf("* 5.change_pas_info *\n"); //修改旅客信息198 printf("| 6.login |\n"); //⽤户登录199 printf("* 7.logout *\n"); //⽤户登出200 printf("| 0.exit_sys |\n"); //退出系统201 printf("| |\n");202 printf("********************************\n");203//printf("\n");204}205206// 登录207void login(void)208{209if(online == 0) //如果没有登录210 {211int i=0;212int time = 0;213while(time<3)215char entry_pid[20]; //临时变量⾝份证216char entry_pw[20]; //临时变量密码217 printf("please login!\n");218 printf("please entry pid:");219 get_str(entry_pid,20);220 printf("please entry password:");221 get_str(entry_pw,20);222for(i=0; i<MAX_Passenger; i++)223 {224if(strlen(entry_pid)==0 || strlen(entry_pw)==0)225 {226 printf("pid or password can't be empty\n");227 time++;228break;229 }230else if(strcmp(PAS[i].pid,entry_pid) == 0 && strcmp(PAS[i].password,entry_pw) == 0) 231 {232 printf("login success!\n");233 strcpy(online_pid,entry_pid);234 online = 1;235return;236 }237else if(i==MAX_Passenger-1)238 {239 printf("pid or password error\n");240 time++;241 }242 }243 }244 online = -1;245 printf("you have been locked,you can use this system now\n");246 }247else if(online ==1)248 {249 printf("you have been login\n");250 }251else252 {253 printf("you have been locked,you can use this system now\n");254 }255256}257258// ⽤户登出259void logout(void)260{261if(online == 1) //如果已经登录262 {263 online = 0;264 printf("logout success\n");265 }266else if(online == -1)267 {268 printf("you have been locked,you can use this system now\n");269 }270else271 {272 printf("you have not login\n");273 }274}275276// 查询旅客信息277void passenger_info(void)278{279if(online == 1) //如果已经登录280 {281//printf("online_pid:");282//puts(online_pid);283int i = 0;284for(i=0; i<MAX_Passenger; i++)286if(strcmp(online_pid,PAS[i].pid)==0)287 {288 printf("pid:%s, pname:%s, password:%s, tell:%s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 289break;290 }291 }292 }293else if(online == -1)294 {295 printf("you have been locked,you can use this system now\n");296 }297else298 {299 printf("you have not login\n");300 }301}302303//修改旅客信息304bool change_pas_info(void)305{306if(online == 1) //如果已经登录307 {308 printf("your old info:\n");309int i = 0;310for(i=0; i<MAX_Passenger; i++)311 {312if(strcmp(online_pid,ORD[i].pid)==0)313 {314 printf("pid:%s, pname:%s\npassword:%s, tell:%s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 315break;316 }317 }318char new_pid[20];319char new_pname[10];320char new_password[20];321char new_tell[20];322 printf("please entry new pid:");323 get_str(new_pid,20);324 printf("please entry new pname:");325 get_str(new_pname,10);326 printf("please entry new password:");327 get_str(new_password,20);328 printf("please entry new tell:");329 get_str(new_tell,20);330 strcpy(PAS[i].pid,new_pid);331 strcpy(PAS[i].pname,new_pname);332 strcpy(PAS[i].password,new_password);333 strcpy(PAS[i].tell,new_tell);334 printf("change success\n");335 }336else if(online == -1)337 {338 printf("you have been locked,you can use this system now\n");339 }340else341 {342 printf("you have not login\n");343 }344}345346// 开始查询航班347void search_start(void)348{349if(search())350 {351 printf("1.order\n");352 printf("0.back\n");353char cmd = get_cmd('0','1');354if(cmd == '0')355 {356return;357//start_sys();358 }359else360 {361char fid[20]; // 选择的航班号362if(online == 1) // 如果已经登录363 {364 printf("please entry fid:");365 get_str(fid,20);366if(0 == strlen(fid))367 {368 printf("fid is empty\n");369 }370int i = 0;371for(i=0; i<search_num; i++)372 {373//printf("fid:%s s_fid:%s num:%d\n",fid,search_fid[i],search_fnum[i]); 374if(strcmp(fid,search_fid[i])==0 && search_fnum[i]>0) //查询到对应航班375 {376 printf("order success\n");377int j=0;378for(j=0; j<MAX_Flight; j++) // 遍历航班表379 {380if(strcmp(fid,FLI[j].fid)==0)381 {382 FLI[j].fnum--; //票数减1383break;384 }385 }386int k=0;387for(k=0; k<MAX_Order; k++) // 遍历订票表388 {389//printf("ready insert...\n");390if(strlen(ORD[k].pid) == 0) // 在空位置插⼊数据391 {392 strcpy(ORD[k].pid,online_pid); // 插⼊当前⽤户⾝份证393 strcpy(ORD[k].fid,search_fid[i]); // 插⼊当前选择的航班号394 ORD[k].num = 1;395 printf("insert_to_order success\n");396break;397 }398 }399return;400 }401else if(strcmp(fid,search_fid[i])==0 && search_fnum[i] == 0)402 {403 printf("no ticket\n");404 search_start();405 }406else if(i==MAX_Flight-1)407 {408 printf("don't have this fid\n");409 search_start();410 }411 }412 }413else if(online == -1)414 {415 printf("you have been locked,you can use this system now\n");416 }417else418 {419 login();420 }421 }422 }423}424425// 查询航班426bool search(void)427{428 printf("start: \n");429 get_str(start,10);430 printf("end: \n");431 get_str(end,10);432int i=0;433 search_num = 0;434for(i=0; i<MAX_Flight; i++)435 {436if(strlen(start) == 0 || strlen(end) == 0)437 {438 printf("start or end can't be empty\n");439return false;440 }441if(strcmp(FLI[i].start,start)==0 && strcmp(FLI[i].end,end)==0)442 {443 printf("fid:%s, ticket_num:%d\n",FLI[i].fid,FLI[i].fnum);444 strcpy(search_fid[search_num],FLI[i].fid);445 search_fnum[search_num] = FLI[i].fnum;446//printf("search_fid[%d]:%s, search_fun[%d]:%d\n",search_num,search_fid[search_num],search_num,search_fnum[search_num]); 447 ++search_num;448 }449if(0 == search_num && i == MAX_Flight-1)450 {451 printf("no flight\n");452return false;453 }454if(search_num > 0 && i == MAX_Flight-1)455 {456//show_flight();457return true;458 }459 }460}461462// 输出订单信息463void order_list(void)464{465if(online == 1)466 {467int i=0;468for(i=0; i<MAX_Order; i++)469 {470if(strcmp(online_pid,ORD[i].pid)==0)471 {472//printf("online_pid:%s\n",online_pid);473 printf("fid:%s, pid:%s, ticket:%d\n",ORD[i].fid,ORD[i].pid,ORD[i].num);474 }475 }476 }477else if(online == -1)478 {479 printf("you have been locked,you can use this system now\n");480 }481else482 {483 login();484 }485}486487// 删除订单488void del_order(void)489{490if(online == 1)491 {492char fid[20];493 printf("order_list:\n");494 order_list();495 printf("please entry del_order fid:");496 get_str(fid,20);497int i=0;498for(i=0; i<MAX_Order; i++)499 {500if(strlen(fid)==0) //判空501 {502 printf("del_order fid can't be empty\n");503return;504 }505if(strcmp(fid,ORD[i].fid)==0)506 {507 memset(ORD[i].pid,'\0',sizeof(ORD[i].pid));508int j=0;509for(j=0; j<MAX_Flight; j++)510 {511if(strcmp(fid,FLI[j].fid)==0)512 {513 FLI[j].fnum++; // 返还飞机票514break;515 }516 }517 printf("delete success\n");518return;519 }520 }521 }522else if(online == -1)523 {524 printf("you have been locked,you can use this system now\n"); 525 }526else527 {528 login();529 }530531}532533// 清理输⼊缓冲区534/*void clear_stdin(void)535{536 stdin->_IO_read_ptr = stdin->_IO_read_end;//清理输⼊缓冲区537}538*/539540// 读取输⼊字符串541char* get_str(char* str,size_t len)542{543if(NULL == str)544 {545 puts("empty ptr!");546return NULL;547 }548549char *in=fgets(str,len,stdin);550551 size_t cnt = strlen(str);552if('\n' == str[cnt-1])553 {554 str[cnt-1] = '\0';555 }556else557 {558 scanf("%*[^\n]");559 scanf("%*c");560 }561562//clear_stdin();563564return str;565}566567// 获取cmd命令568char get_cmd(char start,char end)569{570//clear_stdin();571572 printf("please entry cmd:"); 573while(true)574 {575char val = getch();576if(val >= start && val <= end) 577 {578 printf("%c\n",val);579return val;580 }581 }582 }。

航空管理系统1

航空管理系统1

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0#define OVERFLOW -2#define PR printftypedef int status;typedef struct airline{char line_num[8];//航班号char plane_num[8];//飞机号char end_place[20];//目的的int total;//座位总数int left;//剩余座位struct airline *next;//下一个结点}airline;typedef struct customer{char name[9];//顾客名char line_num[8];//航班号int seat_num;//座位号struct customer *next;//下一个结点}customer;airline *init_airline(){//初始化链表airline *l;l=(airline*)malloc(sizeof(airline)); if(l==NULL){exit(0);}l->next=NULL;return l;}customer * init_customer(){//初始化链表 customer *l;l=(customer*)malloc(sizeof(customer)); if(l==NULL){exit(0);}l->next=NULL;return l;}status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->line_num , line_num);strcpy(q->plane_num , plane_num);strcpy(q->end_place , end_place);q->total =total;q->left =left;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}status insert_customer(customer **p,char *name,char *line_num,int seat){//customer 链表插入操作customer *q;q=(customer*)malloc(sizeof(customer));/* {PR("内存分配失败\n");return OVERFLOW;}*/strcpy(q->name , name);strcpy(q->line_num , line_num);q->seat_num =seat;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}airline *modefy_airline(airline *l,char *line_num)//修改airline链表中的数据{airline *p;p=l->next ;for(;p!=NULL;p=p->next ){if(strcmp(line_num,p->line_num )==0){p->left ++;// PR("modefy %s\n",p->line_num );return l;}}PR("没有这个航班,无法完成修改任务!\n");return 0;}status delete_airline(airline *h,char *line_num)//删除航班{airline *p,*pr;pr=h;p=pr->next ;while(p!=NULL){if(strcmp(line_num,p->line_num )==0){pr->next =p->next ;PR("删除 %s 航班\n",p->line_num );return OK;}pr=pr->next ;p=pr->next ;}PR("无此航班,无法删除!\n");return ERROR;}status delete_customer(customer *h,char *line_num)//删除顾客{customer *p,*pr;pr=h;p=pr->next ;while(p!=NULL){if(strcmp(line_num,p->line_num )==0){pr->next =p->next ;}pr=pr->next ;p=pr->next ;}// PR("无此航班,无法删除!\n");return OK;}status delete_cus(customer *h,airline *l,char *name)//顾客退票{customer *p,*pr;char line_num[8];// qr=h;pr=h;p=pr->next ;// PR("开始删除\n");while(p!=NULL){if(strcmp(name,p->name )==0){strcpy(line_num,p->line_num );l=modefy_airline(l,line_num);pr->next =p->next ;PR("顾客 %s 退票成功!\n",p->name );return OK;}pr=pr->next ;p=pr->next ;}PR("无此顾客,无法退票!\n");return ERROR;}status save_airline(airline *l)//保存airline.dat{FILE *fp_airline;char ch='#';airline *p=l->next ;char filename[]="c:\\airline.dat";if((fp_airline=fopen(filename,"wb"))==NULL){printf("can not open file to write:%s\n",filename);return ERROR;}for(;p!=NULL;p=p->next ){//printf("%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );fprintf(fp_airline,"%s,%s,%s,%d,%d%c\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left ,ch);}fclose(fp_airline);return OK;}status save_customer(customer *l)//保存顾客信息 customer.dat{FILE *fp_customer;char ch='#';customer *p=l->next ;char filename[]="c:\\customer.dat";if((fp_customer=fopen(filename,"wb"))==NULL){printf("can not open file to write:%s\n",filename);return ERROR;}for(;p!=NULL;p=p->next ){// PR("%s,%s,%d\n",p->name ,p->line_num ,p->seat_num );fprintf(fp_customer,"%s,%s,%d%c",p->name ,p->line_num ,p->seat_num ,ch);}fclose(fp_customer);return OK;}int changStrInt(char *ch)//把字符串转化为整型{int a=1,b=0,c=0,i;for (i=strlen(ch)-1;i>=0;i--){if (ch[i]<58&&ch[i]>47){b=a*(ch[i]-48);a=a*10;c=c+b;}else{PR("%c 不合法,无法将此字符串转化为整形!\n",ch[i]);return 0;}// printf("the c is %d\n",c);}return c;}status insert_air(airline *l,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->line_num , line_num);strcpy(q->plane_num , plane_num);strcpy(q->end_place , end_place);q->total =total;q->left =left;q->next=l->next ;l->next=q;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}status insert_cus(customer *l,char *name,char *line_num,int seat){//customer链表插入操作customer *q;q=(customer*)malloc(sizeof(customer));strcpy(q->name , name);strcpy(q->line_num , line_num);q->seat_num =seat;q->next=l->next ;l->next=q;return OK;}status load_airline(airline *l){FILE *fp_airline;int flag=0,i=0;char ch;char line_num[8];//航班号char plane_num[8];//飞机号char end_place[20];//目的的char total_str[5];char left_str[5];int total;//座位总数int left;//剩余座位// airline *p=l;char filename[]="c:\\airline.dat";if((fp_airline=fopen(filename,"rb"))==NULL){printf("can not open file to load:%s\n",filename); return ERROR;}while(!feof(fp_airline)){ch=fgetc(fp_airline);if(ch!='#'){if(flag==0&&ch!=','){line_num[i]=ch;i++;}else if(flag==1&&ch!=','){plane_num[i]=ch;i++;}else if(flag==2&&ch!=','){end_place[i]=ch;i++;}else if(flag==3&&ch!=','){total_str[i]=ch;i++;}else if(flag==4&&ch!=','){left_str[i]=ch;i++;}else if (ch==','){flag++;i=0;}/* else{PR("错误\n");return ERROR;}*/}else{flag=0;i=0;total=changStrInt(total_str);left=changStrInt(left_str);PR("%8s%8s%8s%9d%9d\n",line_num ,plane_num ,end_place ,total ,left ); insert_air(l,line_num,plane_num,end_place,total,left);}}fclose(fp_airline);return OK;}status load_customer(customer *l){FILE *fp_customer;int flag=0,i=0;char ch;char name[9];char line_num[8];//航班号char seat_num_str[5];int seat_num;//座位// customer *p=*l;char filename[50]="c:\\customer.dat";if((fp_customer=fopen(filename,"rb"))==NULL){printf("can not open file to load:%s\n",filename);return ERROR;}while(!feof(fp_customer)){ch=fgetc(fp_customer);printf("%c\n",ch);if(ch!='#'){if(flag==0&&ch!=','){name[i]=ch;i++;}else if(flag==1&&ch!=','){line_num[i]=ch;i++;}else if(flag==2&&ch!=','){seat_num_str[i]=ch;i++;}else if (ch==','){flag++;i=0;}else{PR("错误\n");return ERROR;}}else{flag=0;seat_num=changStrInt(seat_num_str);PR("%10s %10s %d\n",name ,line_num ,seat_num ); insert_cus(l,name,line_num,seat_num);// p=p->next ;}}fclose(fp_customer);return OK;}status creat_airline(airline **l)//创建airline单链表{airline *p=*l;int i=0;char *line_num[3]={"bjnc01","bjsh02","shgz03"};char *plane_num[3]={"plane1","plane2","plane3"};char *end_place[3]={"nc","sh","gz"};int total[3]={100,100,100};int left[3]={51,50,78};for (i=0;i<3;i++){insert_airline(&p,line_num[i],plane_num[i],end_place[i],total[i],left[i]); }return OK;}status creat_customer(customer **l)////创建customer单链表{customer *p=*l;int i=0;char *name[3]={"ouyangj0","yhl","fs"};char *line_num[3]={"bjnc01","bjsh02","shgz03"};int seat_num[3]={1,5,10};for (i=0;i<3;i++){insert_customer(&p,name[i],line_num[i],seat_num[i]);}return OK;}status increase_air(airline *l,char *line_num,char *plane_num,char *end_place,int total)//增加航线{airline *p=l->next ;for(;p->next !=NULL;p=p->next){}insert_airline(&p,line_num,plane_num,end_place,total,total);PR("增加航班 %s 成功!\n",line_num);return OK;}status book(airline *l,char *line_num,customer *c,char *name)//订票{airline *p=l;customer *q=c->next ;p=l->next ;for(;q->next !=NULL;q=q->next){}// PR("%s\n",q->name );for(;p!=NULL;p=p->next ){if(strcmp(line_num,p->line_num )==0){if(p->left >0){PR("恭喜您!订票成功!\n");PR("你的座位号是: %d\n",(p->total -p->left +1));insert_customer(&q,name,line_num,p->total -p->left +1);p->left --;return OK;}else PR("对不起,座位已满!\n");return 0;}}PR("对不起,没有这个航班号!\n");return ERROR;}status print_airline(airline *l)//打印航线信息{airline *p=l->next ;for(;p!=NULL;p=p->next ){PR("%8s%8s%8s%9d%9d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->lef t );}return OK;}status print_customer(customer *l)//打印顾客信息{customer *p=l->next ;for(;p!=NULL;p=p->next ){PR("%10s %10s %d\n",p->name ,p->line_num ,p->seat_num );}return OK;}void main(){char choice,choice2,name[9],line_num[8],password[9],plane_num[8],end_place[9]; char pass[9]="wj024",re_pass_1[9],re_pass_2[9];int t=1,tt=1,total;airline *air=init_airline();customer *cus=init_customer();PR("欢迎进入航空订票系统\n");creat_airline(&air);creat_customer(&cus);// save_airline(air);// save_customer(cus);while(t==1){PR("*----------------------------*\n");PR("*--航空订票系统选择菜单------*\n");PR("* 订票-------0 *\n");PR("* 退票-------1 *\n");PR("* 查询-------2 *\n");PR("* 修改航线---3 *\n");PR("* 读入文件---4 *\n");PR("* 退出-------5 *\n");PR("*----------------------------*\n");PR("请选择: ");choice = getch();PR("%c\n",choice);if(choice=='0'){PR("请输入你要订的航班号: ");scanf( "%s",line_num);PR("请输入你的姓名: ");scanf( "%s",name);book(air,line_num,cus,name);save_airline(air);save_customer(cus);}else if(choice=='1'){PR("\n请输入你的姓名: ");scanf( "%s",name);delete_cus(cus,air,name);save_airline(air);save_customer(cus);}else if(choice=='2'){PR("\n 航班号飞机号终点站名总票数余票数\n"); print_airline(air);PR(" 姓名航班号座位号\n");print_customer(cus);}else if(choice=='3'){tt=1;PR("请输入密码: ");scanf("%s",password);if(strcmp(password,pass)==0){while (tt==1){PR("\n*------------------------------*\n");PR("*-------航线信息修改:----------*\n");PR("* 增加航班号-----'0' *\n");PR("* 删除航班号-----'1' *\n");PR("* 修改密码-------'2' *\n");PR("* 查询航线信息---'3' *\n");PR("* 退出航线修改---'4' *\n");PR("*------------------------------*\n");PR("请选择: ");choice2=getch();PR("%c\n",choice2);if(choice2=='0'){PR("请输入你要增加的航班号: ");scanf("%s",line_num);PR("请输入飞机号: ");scanf("%s",plane_num);PR("请输入目的地: ");scanf("%s",end_place);PR("请输入座位总数: ");scanf("%d",&total);increase_air(air,line_num,plane_num,end_place,total); save_airline(air);save_customer(cus);}else if (choice2=='1'){PR("请输入你要删除的航班号: ");scanf("%s",line_num);delete_airline(air,line_num);delete_customer(cus,line_num);save_airline(air);save_customer(cus);}else if(choice2=='2')PR("注意:密码不能超过8位!\n");PR("请输入新密码:");scanf("%s",re_pass_1);PR("请再输入一次: ");scanf("%s",re_pass_2);if(strcmp(re_pass_1,re_pass_2)==0){strcpy(pass,re_pass_1);PR("密码修改成功!请记住.\n");}else {PR("你两次输入的密码不一致!\n");}}else if(choice2=='3'){PR("\n 航班号飞机号目的地总票数余票数\n"); print_airline(air);}else if(choice2=='4'){tt=0;}else {PR("你的输入有误\n");tt=0;}}//end while}//end ifelse {PR("对不起!你输入的密码不正确!\n");}}//end else if 修改else if(choice=='4'){load_airline(air);load_customer(cus);}else if(choice=='5'){PR("再见!");t=0;}{PR("你的输入有误\n"); }}getch();}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("抵达时间:");
gets(p->etime);
printf("头等舱座位数:");
scanf("%d",&p->num1);
printf("经济舱座位数:");
scanf("%d",&p->num2);
printf("头等舱票价:");
{ SN *q; Node *t; SE *w; Queue *y;
int n,v,j,k;
n=v=j=k=0;
for(q=h->next;q&&strcmp(p->linenum,q->linenum)!=0;q=q->next);
if(q==NULL)
printf("程序错误!");
else
printf("\t头等舱所剩座位数: %d\n",p->num1-v);
if(p->num2<n)
printf("\t经济舱所剩座位数: 0\n");
else
printf("\t经济舱所剩座位数: %d\n",p->num2-n);
p->n=m->n;
p->next=NULL;
q->next=p;
}
printf("请稍后等待退票!\n");
}
void print1(Inf *p)
{
printf("\t\t航班编号: %s\n",p->linenum);
printf("始发站: %s\t",p->from);
printf("程序错误!Sorry....");
else
{ for(q=w->waitter;q->next;q=q->next);
p=(Queue *)malloc(sizeof(Queue));
strcpy(p->name,m->name);;
p->v=m->v;
v=v+t->next->v;
}
if(m->v>p->num1-v||m->n>p->num2-n)
{
printf("剩余座位不够,是否等票!(Y/N)");
scanf("%c",&choice);
scanf("%c",&choice);
for(w=l->next;w&&strcmp(p->linenum,w->linenum)!=0;w=w->next);
if(y==NULL)
printf("程序错误!");
else
{
for(y=w->waitter->next;y;y=y->next)
struct line * next;
}Inf;
void menu()
{ printf("\n\n\t\t***************欢迎进入航空订票系统***************\n\n");
printf("\t\t\t\t1:订票业务\n\n");
printf("\t\t\t\t2:退票业务\Байду номын сангаас\n");
int v;
int n;
struct queue * next;
}Queue;
typedef struct SE
{ char linenum[10];
queue * waitter;
struct SE * next;
}SE;
typedef struct line
}
}
void book(Inf *r,SN **h,SE **l)
{ Inf * p; SN *q;
Node *m,*t; int n,v;
char end[10],choice;
fflush(stdin);
printf("请输入终点站: ");
printf("\t\t\t\t3:查询航班最新信息\n\n");
printf("\t\t\t\t4:显示\n\n");
printf("\t\t\t\t5:保存信息\n\n");
printf("\t\t\t\t0:退出 ");
}
void Creat(Inf **r,SN **h,SE **l)
printf("航班编号: ");
gets(p->linenum);
printf("始发站:");
gets(p->from);
printf("终点站:");
gets(p->end);
printf("起飞时间:");
gets(p->ftime);
gets(end);
for(p=r->next;p&&strcmp(p->end,end)!=0;p=p->next);
if(p==NULL)
printf("无此航班!");
else
{ print1(p);
(*l)=z=(SE *)malloc(sizeof(SE));
q->next=NULL;
printf("请输入今日航班信息");
getchar();
getchar();
while(1)
{ fflush(stdin);
p=(Inf *)malloc(sizeof(Inf));
{ j=j+y->n;
k=k+y->v;
}
printf("\t目前:头等舱票透支%d张\t经济舱票透支%d张\n",k,j);
}
}
else
{ if(p->num1<v)
printf("\t头等舱所剩座位数: 0\n");
{ char linenum[10];
char from[20];
char end[20];
char ftime[10];
char etime[10];
int num1;
int num2;
int money1;
int money2;
scanf("%c",&n);
scanf("%c",&n);
if(n=='N'||n=='n')
break;
}
for(p=(*r)->next;p;p=p->next)
{ fflush(stdin);
w=(SN *)malloc(sizeof(SN));
print2(p,*h,*l);
}
printf("是否订票!(Y/N)");
scanf("%c",&choice);
if(choice=='y'||choice=='Y')
{ fflush(stdin);
n=v=0;
scanf("%d",&m->n);
for(q=(*h)->next;q&&strcmp(p->linenum,q->linenum)!=0;q=q->next);
if(q!=NULL)
for(t=q->data;t->next;t=t->next)
{ n=n+t->next->n;
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
typedef struct inf
{
char name[20];
int v;
int n;
int Nnumbre;
int Vnumber;
scanf("%d",&p->money1);
printf("经济舱票价:");
scanf("%d",&p->money2);
p->next=NULL;
q->next=p;
q=p;
printf("是否继续?(Y/N)");
else
{
for(t=q->data->next;t;t=t->next)
{ n=n+t->n;
v=v+t->v;
}
}
if(p->num1<=v&&p->num2<=n)
{
printf("\t\t该航班票已定空!\n");
struct inf * next;
相关文档
最新文档