基于Linux的航班管理系统

📅 2026/7/14 13:17:42
基于Linux的航班管理系统
该系统用了三个文件来写main.c文件Flight_system.h头文件Flight_system.c文件。mian.c文件主要调用Fligth_system.c文件的各个函数功能Flight_system.h文件主要编写航班管理系统的功能的定义Flight_system.c文件主要编写航班系统的各个功能的实现以及初始化该系统分为管理员和用户模式。需要管理员添加航班信息用户才能购买。管理员是提前定义好的管理员账户TJC密码是123登录时不验证密码如需验证可在登录模块中自行添加判断语句。管理员登录后有1.添加航班2、删除航班。3、修改航班。4、查询航班。4个功能。需要先添加航班信息该系统才能激活各个模块。当然也对应着各个模块的错误反馈。用户模式用户在管理员添加航班后有4个功能。1、查询航班。2、购票。3、退票。4、改签。代码main.c文件#includeFlight_system.cint main(){Customer *pArr NULL;Customer *p NULL;pArr (Customer *)malloc(9*sizeof(Customer));//注册的用户较多就改变9的值p pArr;Plane *qArr NULL;Plane *q NULL;qArr (Plane *)malloc(9*sizeof(Plane));//注册的航班较多就改变9的值q qArr;int mkWellcome();while(1){switch(mk){case 1 :Estimate(p,User_num,q,Plane_num);break;case 2 :Input(p,User_num); break;case 3 : exit(0); break;default : printf(输入有误\n);}printf(1.登录 2.注册 3 退出\n);int op;scanf(%d,op);mkop;}return 0;}Flight_system.h文件#includestdio.hstatic char Admin_id[10]TJC;static char Admin_psw[10] 123tjc;static int User_num 1;//记录用户数static int Plane_num 1;//记录航班数static int Ticket_number[10]{0};//记录航班票数static char User_number[10][10]{{000}};static int Ticket_change 1;//记录改签情况typedef struct Fight{char Flight_number[10];char Fly_space[10];char Fall_space[10];char Fly_time[10];char Fall_time[10];float Fares;}Plane;typedef struct User{char User_id[10];char User_psw[10];char serial[10];//装票的航班号}Customer;int Wellcome();char *Log();void Input(Customer *pArr,int len);void Estimate(Customer *pArr,int len,Plane *qArr, int len1);//管理员登录void fun1(Plane *qArr, int len);void Add_flight(Plane *qArr, int len);//增加航班void Delete_flight(Plane *qArr, int len);//删除航班void Change_flight(Plane *qArr, int len);//修改航班void Search_flight(Plane *qArr, int len);//查找航班//普通用户void fun2(Customer *pArr,int len,Plane *qArr, int len1);void Check_flight(Plane *qArr, int len);//查看航班void Buy_ticket(Plane *qArr, int len,Customer *pArr ,int len1);//购票void Back_ticket(Plane *qArr, int len,Customer *pArr ,int len1);//退票void Change_ticket(Plane *qArr, int len,Customer *pArr ,int len1);//改签Flight_system.c文件#includestdio.h#includeFlight_system.h#includestdlib.h#includestring.h#pragma warning(disable:4996)int Wellcome(){printf(\t\t\t欢迎来到航班管理系统按任意建进入\n);getchar();system(clear);printf(--------------------- 请选择要操作的命令--------------------------------\n\n);printf(-------------------------- 1 登录---------------------------------------\n\n);printf(-------------------------- 2 注册---------------------------------------\n\n);printf(-------------------------- 3 退出---------------------------------------\n\n);int n;printf(请输入命令\n);scanf(%d,n);return n;}char *Log(){printf(请输入您的用户名:);static char user_id1[10];scanf(%s,user_id1);char user_psw[10];printf(请输入您的密码:);scanf(%s,user_psw);return user_id1;}void Input(Customer *pArr,int len){char x[10];char y[10];int m 1;while(m){printf(请输入用户名:);scanf(%s,x);printf(请输入密码:);scanf(%s,y);for (int i 0; i len; i){if (0strcmp(x,pArr[i].User_id)){printf(该用户名已被使用\n);break;}else if(i(len-1)){system(clear);printf(注册成功\n);strcpy(pArr[len-1].User_id,x);strcpy(pArr[len-1].User_psw,y);User_num;m0;break;}}}}void Estimate(Customer *pArr,int len,Plane *qArr, int len1){char * p1 Log();int i;if(!strcmp(Admin_id,p1)){system(clear);printf(您好管理员\n请输入您的选项\n);fun1(qArr,len1);}else {for ( i 0; i len; i){if(!strcmp(p1,pArr[i].User_id)){if(0strlen(qArr[0].Flight_number)){system(clear);printf(顾客您好当前暂无航班请联系管理员登录增加航班\n);break;}system(clear);printf(顾客您好请输入您的选项\n);fun2(pArr,len,qArr,len1);}else if(i(len-1)){system(clear);printf(没有该用户请重新输入\n);}}}}void fun1(Plane *qArr, int len){int m1;while(m){printf(1.增加航班\n2.删除航班\n3.修改航班\n4.查询航班\n5.退出系统\n6.返回上一层\n);int temp;scanf(%d,temp);switch(temp){case 1 :Add_flight(qArr,Plane_num);break;case 2 :Delete_flight(qArr,Plane_num);break;case 3 :Change_flight(qArr,Plane_num); break;case 4 :Search_flight(qArr,Plane_num); break;case 5 :exit(0); break;case 6 :m0; break;default:printf(输入有误\n);}}}void fun2(Customer *pArr,int len,Plane *qArr, int len1){while(1){printf(1.查看航班\n2.购票\n3.退票\n4.改签\n5.退出系统\n);int temp;scanf(%d,temp);switch(temp){case 1 :Search_flight(qArr,Plane_num); break;case 2 :Buy_ticket(qArr,Plane_num,pArr,User_num); break;case 3 :Back_ticket(qArr,Plane_num,pArr,User_num); break;case 4 :Change_ticket(qArr,Plane_num,pArr,User_num); break;case 5 :exit(0); break;default:printf(输入有误\n);}}}void Add_flight(Plane *qArr, int len){printf(请输入航班号:);char name[10];int temp0;scanf(%s,name);for (int i 0; i len; i){if(0strcmp(name,qArr[i].Flight_number))temp 1;}if(temp){system(clear);printf(已有该航班请重新输入\n);}else {strcpy(qArr[len-1].Flight_number,name);printf(请输入航班起飞地点:);scanf(%s,qArr[len-1].Fly_space);printf(请输入航班落地地点:);scanf(%s,qArr[len-1].Fall_space);printf(请输入航班起飞时间:);scanf(%s,qArr[len-1].Fly_time);printf(请输入航班落地时间:);scanf(%s,qArr[len-1].Fall_time);printf(请输入航班票价:);scanf(%f,qArr[len-1].Fares);printf(请输入航班票数:);scanf(%d,Ticket_number[len-1]);Plane_num;system(clear);printf(增加成功\n);}}void Search_flight(Plane *qArr, int len){printf(1.查询所有航班\n2.查询单个航班\n);int m1;while(m){int s;scanf(%d,s);if(s1){system(clear);printf(航班号\t起飞地点\t落地地点\t起飞时间\t落地时间\t票数\n);for (int i 0; i len-1; i){printf(%s\t%s\t\t%s\t\t%s\t\t%s\t\t%d\n,qArr[i].Flight_number,qArr[i].Fly_space,qArr[i].Fall_space,qArr[i].Fly_time,qArr[i].Fall_time,Ticket_number[i]);}m0;}else if(s2){system(clear);Check_flight(qArr,len);m0;}else{system(clear);printf(输入有误\n);m0;}}}void Check_flight(Plane *qArr, int len){printf(请输入你要查询的航班号);char s[10];int l;int n;scanf(%s,s);for ( l 0; l len-1; l){if (0strcmp(s,qArr[l].Flight_number)){nl;system(clear);printf(航班号\t起飞地点\t落地地点\t起飞时间\t落地时间\t票数\n);printf(%s\t%s\t\t%s\t\t%s\t\t%s\t\t%d\n,qArr[n].Flight_number,qArr[n].Fly_space,qArr[n].Fall_space,qArr[n].Fly_time,qArr[n].Fall_time,Ticket_number[n]);break;}else if(l(len-2)){system(clear);printf(没有此航班\n);}}}void Delete_flight(Plane *qArr, int len){printf(请输入您要删除的航班号:);char name[10];scanf(%s,name);int i;int n;for(i0;ilen;i){if(0strcmp(name,qArr[i].Flight_number)){n i;for(i n1 ;ilen;i){qArr[i - 1] qArr[i];}Plane_num--;system(clear);printf(删除成功\n);break;}else if(i(len-1)){system(clear);printf(没有该航班\n);}}}void Change_flight(Plane *qArr, int len){printf(请输入您要修改的航班号:);char name[10];scanf(%s,name);int i;int n;for(i0;ilen;i){if(0strcmp(name,qArr[i].Flight_number)){n i;printf(请输入航班号:);scanf(%s,qArr[n].Flight_number);printf(请输入航班起飞地点:);scanf(%s,qArr[n].Fly_space);printf(请输入航班落地地点:);scanf(%s,qArr[n].Fall_space);printf(请输入航班起飞时间:);scanf(%s,qArr[n].Fly_time);printf(请输入航班落地时间:);scanf(%s,qArr[n].Fall_time);printf(请输入航班票价:);scanf(%f,qArr[n].Fares);printf(请输入航班票数:);scanf(%d,Ticket_number[n]);system(clear);printf(修改成功\n);break;}else if(i(len-1)){system(clear);printf(没有该航班\n);}}}void Buy_ticket(Plane *qArr, int len,Customer *pArr ,int len1){printf(请输入姓名);int j;int i,n,m-1;char user_name[10];scanf(%s,user_name);for (j 0; j len1; j){if(0strcmp(user_name,pArr[j].User_id)){m j;}}if(m(-1)){system(clear);printf(没有此用户请重新输入\n);}else{printf(请输入您要购买的航班号);char name[10];scanf(%s,name);for (i 0; i len; i){if(0strcmp(name,qArr[i].Flight_number)){n i;Ticket_number[n]--;strcpy(pArr[m].serial,qArr[i].Flight_number);system(clear);printf(购买成功\n);break;}else if(i(len-1)){system(clear);printf(没有该航班\n);}}}}void Back_ticket(Plane *qArr, int len,Customer *pArr ,int len1){printf(请输入姓名);int j;int i,n,m-1;char user_name[10];scanf(%s,user_name);for (j 0; j len1; j){if(0strcmp(user_name,pArr[j].User_id)){m j;}}if(m(-1)){system(clear);printf(没有此用户请重新输入\n);}else{printf(请输入您要退的航班号);char name[10];scanf(%s,name);for (i 0; i len; i){if(0strcmp(name,qArr[i].Flight_number)){n i;Ticket_number[n];strcpy(pArr[m].serial,000);system(clear);printf(退票成功\n);break;}else if(i(len-1)){system(clear);printf(没有该航班\n);}}}}void Change_ticket(Plane *qArr, int len,Customer *pArr ,int len1){if(Ticket_change){printf(只能改签一次不能重复改签\n);printf(请输入姓名);int j;int i,n,m-1;int mn;char user_name[10];scanf(%s,user_name);for (j 0; j len1; j){if(0strcmp(user_name,pArr[j].User_id)){m j;}}if(m(-1)){system(clear);printf(没有此用户请重新输入\n);}else {for ( mn 0; mn len; mn){if(0strcmp(pArr[m].serial,qArr[mn].Flight_number)){Ticket_number[mn];break;}}printf(请输入您要改签的航班号);char name[10];scanf(%s,name);for (i 0; i len; i){if(0strcmp(name,qArr[i].Flight_number)){n i;Ticket_number[n]--;strcpy(pArr[mn-1].serial,qArr[i].Flight_number);system(clear);printf(改签成功\n);break;}else if(i(len-1)){system(clear);printf(没有该航班\n);}}}Ticket_change0;}else {printf(不能重复改签\n);}}