第一篇:C语言机票订票管理系统源代码
#include //包含access函数的头文件 #include //定义最多的航班数 #define PRINT “%dtt%stt%stt星”,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式 struct air { int num; char start[20];char over[20];char time[10];int count; }s[N]; int i,a,m=0;char ii[10];//定义结构体数组 //定义航班号 //航班起始站 //终点站 //飞行时间 //机票数量 期%stt%dn //定义全局变量 void add();//函数声明增加航班信息函数 void print(); //显示航班信息 void search();//查找航班信息 void dingpiao();//订票业务 void tuipiao();//退票 void read();//读取文件 void save();//保存文件 void output();//输出格式 void paixu();//航班排序 void chushihua();//系统初始化 void build();//建立数据文件 void paixu1();//按航班号从小到大排序 void paixu2();//从大到小 int head();//进入订票系统 int main()//主函数 { int j; system(“color b0”);chushihua();//系统初始化判断是否存在原始数据文件 system(“cls”); head();//打印出系统主界面 system(“cls”);do { printf(“================================== ”); printf(“1.增加航班信息n” “t2.浏览航班信息n” “tt3.查找航班信息(按航班号)ttn” “ttt4.航班排序(按航班号)n” “tttt5.订票业务n” “ttttt6.退票业务n” “tttttt0.退出n”);printf(“================================== ”); printf(“请在0-6中选择以回车键结束: ”);scanf(“%d”,&j);switch(j){ } case 1: add();system(“cls”); break; //调用增加航班函数 case 2:print();system(“cls”);//调用显示模块 break;case 3:search();system(“cls”);//调用查找模块 break;case 4:paixu();system(“cls”);//调用排序函数 break;case 5:dingpiao();system(“cls”);break; //调用订票模块 case 6:tuipiao();system(“cls”);//调用退票模块 break; case 0: //退出系统 save();system(“cls”); printf(“nnnttttnnt谢谢使用,再见!”); printf(“nnnnnnnnnnnnn”); break;} }while(j!=0);//判断是否调用其他函数 void chushihua()//定义系统初始化函数 { if(access(“hangban.dat”,0)){ build();} else read();} void build(){ //定义建立数据文件函数 FILE *fp;//定义文件指针 if((fp=fopen(“hangban.dat”,“wb”))==NULL){ //打开文件并判定是否出错 printf(“创建文件失败!”);//打印出错提示 getchar();return;} printf(“请依次输入航班信息(以回车键结束):n”); //打印提示信息 printf(“------------n”);for(i=0;i printf(“请输入航班号: ”); scanf(“%d”,&s[i].num);//输入航班号 printf(“请输入起始站: ”);scanf(“%s”,s[i].start);//输入起始站 printf(“请输入终点站: ”);scanf(“%s”,s[i].over);//输入终点站 printf(“请输入时间(星期几): ”);scanf(“%s”,s[i].time);//输入时间 printf(“请输入机票数: ”);scanf(“%d”,&s[i].count);//输入机票数 fwrite(&s[i],sizeof(struct air),1,fp);m++;printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”);scanf(“%s”,ii);if(strcmp(ii,“y”)!=0)//判断是否继续添加航班信息 { fclose(fp); //关闭文件 return;} } } void read() //定义读取文件函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“r”))==NULL){ } printf(“创建文件失败!”);getchar();return;} i=0;while(!feof(fp)){ fread(&s[i],sizeof(struct air),1,fp); i++;m++;//计算存在航班数 } m--;fclose(fp);printf(“请稍候,正在初始化”);for(a=0;a<3;a++){ printf(“.”); Sleep(600);} printf(“n”); //逐块读取数据 void save()//定义保存函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“wb”))==NULL) { printf(“创建文件失败!”);getchar();return;} for(i=0;i //逐块保存数据 fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);printf(“正在保存数据并退出”);for(a=0;a<3;a++) } { printf(“.”); Sleep(600);} printf(“n”);printf(“n”);void add(){ do{ 息 //定义增加航班信息函数 printf(“请依次输入您要增加的航班信息(以回车键结束): n”); //打印提示信printf(“------------n”); printf(“请输入航班号: ”); scanf(“%d”,&s[m].num);//读取航班号 printf(“请输入起始站: ”);scanf(“%s”,s[m].start);//读取起始站 printf(“请输入终点站: ”);scanf(“%s”,s[m].over);//读取终点站 printf(“请输入时间(星期几): ”);scanf(“%s”,s[m].time);//读取时间 printf(“请输入机票数: ”);scanf(“%d”,&s[m].count);//读取机票数 m++; printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”); scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判断是否继续添加 printf(“正在保存,请稍候”);for(a=0;a<5;a++) { printf(“.”); Sleep(600); } printf(“n”);} void output()//定义输出格式函数 { printf(“航班号tt起始站tt终点站tt时间tt机票数n”);//信息标题 for(i=0;i } printf(PRINT);//打印出信息 void print()//定义显示航班信息函数 { printf(“正在加载,请稍候”); for(a=0;a<5;a++) { printf(“.”); Sleep(400); } printf(“n”); system(“cls”);printf(“n目前我们有如下航班:nn”);output(); //调用输出格式函数 printf(“n请按回车键返回上层菜单 ”);getchar();getchar();} void search()//定义查询函数 { int n; do { printf(“n请输入航班号: ”); scanf(“%d”,&n);//输入查询的航班号 printf(“正在查询”); for(a=0;a<5;a++) { printf(“.”); Sleep(400); } printf(“n”); for(i=0;i { if(s[i].num==n)//按航班号判定输出条件 { printf(“n您所查找的航班信息为:n ”); printf(“航班号tt起始站tt终点站tt时间tt机票数 nn”); printf(PRINT);//显示信息 printf(“n查询完毕,按回车键继续”); getchar(); getchar(); return; } } printf(“n对不起,没有您需要的信息!n ”);printf(“是否重新查找?请键入y或n以回车键结束 ”);scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判定是否重新查找 } void dingpiao()//定义订票业务函数 { int n,x;char a[10]=“y”;do { search();//调用查询模块 if(!strcmp(ii,“n”)) { printf(“对不起!没有找到您所需要的航班,所以不能订票。n”);所需航班 printf(“n请按回车键返回上层菜单 ”); getchar(); getchar(); strcpy(ii,“n”); break; } do { printf(“请输入您要订的机票数(以回车键结束): ”); scanf(“%d”,&n);//输入所订机票数 printf(“请稍候,正在订票”); for(x=0;x<3;x++) { printf(“.”); Sleep(600); } printf(“n”); if(n<=0) //判定机票数是否出错 //未查找到 { printf(“输入错误!至少需订1张机票。n”);} else if(s[i].count==0)//判定机票是否售完 { } printf(“对不起,你所选择的航班的机票已售完!n”);break;else if(s[i].count!=0&&s[i].count>=n)//判定机票数是否大于等于订票数 { s[i].count=s[i].count-n;printf(“订票成功!”);break;} else if(s[i].count printf(“对不起,你所选择的航班只剩 %d张机票n”, s[i].count); printf(“是否需要重新输入机票数?n请输入y或n以回车键结束: ”);//判定是否重新输入订票数 scanf(“%s”,a); } printf(“请稍候,正在订票”); for(x=0;x<3;x++) { printf(“.”); Sleep(600); } printf(“n”); } }while(!strcmp(a,“y”));printf(“是否需要订其他航班的机票?n请输入y或n以回车键结束: ”);scanf(“%s”,a);}while(!strcmp(a,“y”));//判定是否继续订票 void tuipiao()//定义退票函数 { int n,x;char a[10];do { search();//调用查询函数 if(!strcmp(ii,“n”)) { printf(“对不起!没有找到您所需要的航班,所以不能退票。n”);printf(“n请按回车键返回上层菜单 ”);getchar();getchar();strcpy(ii,“n”);break;} printf(“请输入您要退的机票数目: ”);scanf(“%d”,&n); //输入所退票数 printf(“请稍候,正在退票”);for(x=0;x<3;x++){ printf(“.”); Sleep(600);} printf(“n”);if(n<=0) //判定票数是否有效 printf(“输入错误!至少需退1张机票。”);else { s[i].count=s[i].count+n;printf(“退票成功!”);} printf(“是否继续? 请键入y或n以回车键结束: ”);scanf(“%s”,a); //判定是否继续退票 }while(!strcmp(a,“y”));//判定并跳出循环 } void paixu()//定义排序函数 { int n; printf(“n******************************************************************************** ”); printf(“1.按航班号从小到大排序n” “t2.按航班号从大到小排序n”);printf(“******************************************************************************** ”); printf(“请在1-2中选择以回车键结束: ”);scanf(“%d”,&n);//输入排序方式 switch(n){ case 1:paixu1();//调用从小到大排序函数 break; case 2:paixu2();//调用从大到小排序函数 break;} printf(“排序后的航班信息为:n”);output(); //显示排序后航班信息 printf(“n请按回车键返回上层菜单 ”); getchar();getchar();/*for(a=0;a<5;a++) { printf(“.”); Sleep(400); } printf(“n”);*/ } void paixu1()//定义从小到大排序函数 { int k,j;struct air t;for(i=0;i { k=i; for(j=i+1;j if(s[k].num>s[j].num) k=j; if(i!=k) { t=s[k]; s[k]=s[i]; s[i]=t; } } printf(“正在排序,请稍后”); for(a=0;a<5;a++) { printf(“.”); Sleep(400); } printf(“n”);} void paixu2()//定义从大到小排序函数 { int k,j;struct air t;for(i=0;i k=i; for(j=i+1;j if(s[k].num k=j; if(i!=k) { t=s[k]; s[k]=s[i]; s[i]=t; } } printf(“正在排序,请稍后”); for(a=0;a<5;a++){ printf(“.”); Sleep(400);} printf(“n”);} int head() //进入订票系统 { printf(“===================n”);printf(“* *n”); printf(“* 欢迎使用机票订票管理系统 *n”);printf(“* *n”);printf(“* 此处可以适当的加点文字 *n”);printf(“* *n”);printf(“===================n”);printf(“请按回车键进入界面”);getchar();printf(“正在进入系统选项”);for(a=0;a<3;a++){ printf(“.”);Sleep(600); } } printf(“n”);return 0; /* 1、用户和管理员及航班信息请以英文字母或数字输入*/ /* 2、管理员账户为:boss,密码为:123。保存在txt文件中,需要修改请于程序中修改*/ /* 3、部分文件读写为二进制读写,所以打开文件时会看到乱码*/ #include void zhujiemian();//主界面函数 void verify();//用户及管理员登录选择 void loginmanager();//管理员登录 void loginuser();//用户登录 void loginflightm();//管理员登录机票系统 void loginflightu();//用户登录机票系统 void creatfile();//创建用户信息模块 void saveuser();//用户信息保存模块程序 void input();//输入航班信息 void print();//输出航班信息 void save();//保存航班信息 void read();//读取航班信息 void paixu();// 对所有航班按航班号排序 void search();//查找航班信息 void dingpiao();//订票信息 struct users //管理员/用户信息结构体,管理员可以修改航班信息 { char Name[20];//管理员/用户姓名 char sexual[10];//用户性别 char ps[8]; // 用户密码 int age; //用户年龄 long Number; //用户身份证号码 int power; //power为1是管理员登录,为0是用户登录 }user[N],up,mg;//up为键盘输入用户信息,user[N]为文件保存的用户信息,mg为管理员结构体 int n;//所有用户个数,初始化为0 struct 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%10dn”,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中选择以回车键结束:nn”); 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 密码为:123n”); 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); } else fclose(fp);again: printf(“请输入管理员姓名:”); scanf(“%s”,up.Name);//输入用户名 up.Name[19]=' '; printf(“请输入管理员密码:”); fflush(stdin); for(i=0;i<7;i++)//输入密码,以*在屏幕显示 { up.ps[i]=getch(); up.ps[i+1]=' ';//字符要以' '结尾 if(up.ps[i]=='b') { i--; up.ps[i]=' ';//清除前一个字符 i--;//接收前一个字符 printf(“b ”); printf(“b”); continue; } if(up.ps[i]=='r') { up.ps[i]=' '; 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(); } else fread(&mg,sizeof(struct users),1,fp);//从文件中读取信息 fclose(fp);//关闭文件 if(strcmp(mg.Name,up.Name)==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(“创建文件失败!nn”);//打印出错提示 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到fp1 fclose(fp1);printf(“n目前没有用户信息,请按ENTER键返回主菜单先进行注册!n”);getchar();getchar();system(“cls”);zhujiemian();} for(i=0;i } fclose(fp);//关闭文件 //输入数据与文件中用户比对 again: printf(“请输入用户姓名:”); scanf(“%s”,up.Name);//输入用户名 up.Name[19]=' '; printf(“请输入用户密码:”); fflush(stdin); for(i=0;i<7;i++)//输入密码,以*在屏幕显示 { up.ps[i]=getch(); up.ps[i+1]=' ';//字符要以' '结尾 if(up.ps[i]=='b') { i--; up.ps[i]=' ';//清除前一个字符 i--;//接收前一个字符 printf(“b ”); printf(“b”); continue; } if(up.ps[i]=='r') { up.ps[i]=' '; break; } printf(“*”);} for(i=0;i { if(strcmp(user[i].Name,up.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(“创建文件失败!nn”);//打印出错提示 getchar();return; if((fp1=fopen(“howmanyusers.txt”,“w+”))==NULL)//打开文件并判断是否出错 { printf(“创建文件失败!nn”);//打印出错提示 getchar(); return;} for(i=0;i { printf(“向文件输入数据失败!nn”);} } fprintf(fp1,“%d”,n);//输入用户个数到fp1 fclose(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到fp1 fclose(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 fread(&user[i],sizeof(struct users),1,fp);//从文件中读取信息 } fclose(fp);//关闭文件 //如果成功打开文件,则提示输入用户相关信息 printf(“请输入用户信息n”); fflush(stdin); while(k) { //printf(“n输入身份证号码注意身份证号码不能为0!n”); printf(“请输入身份证号码:”); scanf(“%ld”,&up.Number); i=0;//再次初始化i为0 //判断身份证号是否存在while(i { if(user[i].Number==up.Number) { printf(“该身份证号码已被使用过!n请重新输入身份证号:”); scanf(“%ld”,&up.Number); i=0; //continue; } else i++;} //经循环对比后,i的值仍和n相等,将新注册的信息加入数组末位 user[i].Number=up.Number;printf(“姓名:”);scanf(“%s”,&user[i].Name);user[i].Name[19]=' ';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.输入航班信息 ☆---------------------------**nn” “ **------------☆ 2.浏 览 航 班 信 息 ☆-----------------------**nn” “ **--------☆ 3.查 找 航 班 信 息 -☆--------------------**nn” “ **-----------☆ 4.对航班按航班票价排序---☆-----------------------**nn” “ **--------------☆ 5.订 票 信 息-☆-------------------------**nn” “ **------------------☆ 0.退出 -☆-----------------------------**nn” “ **-----------------------☆ ☆---------------------------------**nn” “ **-------------------------☆----------------------------------**nn” “ **-----------------------☆ ☆----------------------------------**nn”); printf(“==================================n”); printf(“请在0-5中选择以回车键结束:nn”); 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.浏 览 航 班 信 息 ☆-----------------------**nn” “ **--------☆ 2.查 找 航 班 信 息 -☆--------------------**nn” “ **-----------☆ 3.对航班按航班票价排序---☆-----------------------**nn” “ **--------------☆ 4.订 票 信 息-☆-------------------------**nn” “ **------------------☆ 0.退出 -☆-----------------------------**nn” “ **-----------------------☆ ☆---------------------------------**nn” “ **-------------------------☆----------------------------------**nn” “ **-----------------------☆ ☆----------------------------------**nn”); printf(“==================================n”); printf(“请在0-5中选择以回车键结束:nn”); 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(“请依次输入航班信息(航班号,起始站,终点站,起飞时间,机票数,票价):nn”);//打印提示信息 printf(“------------n”); //fflush(stdin); while(k) { } } printf(“请输入航班号:n”); scanf(“%d”,&fnew.num);//读取航班号 i=0;//再次初始化i为0 //判断航班是否已经存在while(i if(s[i].num==fnew.num) { } printf(“该航班已经存在!n请重新输入:”); scanf(“%d”,&fnew.num); i=0; //continue;} else i++;//经循环对比后,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(“创建文件失败!nn”);//打印出错提示 getchar(); return;} if((fp1=fopen(“howmanyflights.txt”,“wb”))==NULL)//打开文件并判断是否出错 { printf(“创建文件失败!nn”);//打印出错提示 getchar(); return;} for(i=0;i if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件写入数据,并判断是否出错 printf(“向文件输入数据失败!nn”);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到fp1 fclose(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(“创建文件失败!nn”);//打印出错提示 m=0;} else { fp1=fopen(“howmanyflights.txt”,“r”); fscanf(fp1, “%d”,&m);//读取fp1中的用户个数 } fclose(fp1);for(i=0;i fread(&s[i],sizeof(struct air),1,fp);//从文件中读取信息 } fclose(fp);//关闭文件 } void print()//屏幕打印航班信息模块 { read();//调用读取文件函数 if(m==0) printf(“nn目前没有航班信息!n”);else { printf(“航班信息如下:n”); printf(“航班号 起始站 终点站 时间 for(i=0;i { printf(PRINT);//打印信息 } } printf(”n请按任意键回车键结束返回主菜单“); getchar();getchar();} void paixu()//对所有航班按航班价格排序 { int j;struct pai { int no; char name1[20]; 余票数 票价n”); } 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为0 printf(“请输入你要找的航班号:”);//打印查询方式菜单 scanf(“%d”,&no);//航班号 for(i=0;i { if(s[i].num==no)//按航班号判断输出条件 { k=1; system(“cls”); printf(“n查找航班信息成功!n”); printf(“航班号 起始站 终点站 时间 余票数 价n”); printf(PRINT);//打印信息 break; } } no=0;//将航班号重新赋值为0 if(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(“订票成功!nn”); 票 } } break;} if(s[i].count { printf(“余票不足,请输入有效的机票数!n”); getchar();} printf(“是否继续订票? 请输入yes或no以回车键结束:n”);//判断是否继续订票 scanf(“%s”,a); while(!strcmp(a,“yes”));//判断结束 getchar();printf(“按ENTER键返回用户主界面。”);getchar(); #include //包含access函数的头文件 #define N 9999 //定义最多的航班数 #define PRINT “%dtt%stt%stt星期%stt%dn ”,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式 struct air //定义结构体数组 { int num; //定义航班号 char start[20];//航班起始站 char over[20];//终点站 char time[10];//飞行时间 int count; //机票数量 }s[N]; int i,m=0; //定义全局变量 char ii[10]; void add();//函数声明增加航班信息函数 void print(); //显示航班信息 void search();//查找航班信息 void dingpiao();//订票业务 void tuipiao();//退票 void read();//读取文件 void save();//保存文件 void output();//输出格式 void paixu();//航班排序 void chushihua();//系统初始化 void build();//建立数据文件 void paixu1();//按航班号从小到大排序 void paixu2();//从大到小 void main()//主函数 { int j; chushihua();//系统初始化判断是否存在原始数据文件 printf(“ 欢迎使用飞机订票系统n”);//打印出系统主界面 do { printf(“================================== ”); printf(“1.增加航班信息n” “t2.浏览航班信息n” “tt3.查找航班信息(按航班号)tt╮(╯_╰)╭n” “ttt4.航班排序(按航班号)n” “tttt5.订票业务n” “to(︶︿︶)ottt6.退票业务n” “tttttt0.退出n”);printf(“================================== ”); printf(“请在0-6中选择以回车键结束: ”);scanf(“%d”,&j);switch(j){ case 1: add();//调用增加航班函数 break; case 2:print();//调用显示模块 break; case 3:search();//调用查找模块 break; case 4:paixu();//调用排序函数 break; case 5:dingpiao();//调用订票模块 break; case 6:tuipiao();//调用退票模块 break; case 0: //退出系统 save(); printf(“谢谢使用,再见!”); break;} }while(j!=0);//判断是否调用其他函数 } void chushihua()//定义系统初始化函数 { if(access(“hangban.dat”,0)){ build();} else read();} void build()//定义建立数据文件函数 { FILE *fp;//定义文件指针 if((fp=fopen(“hangban.dat”,“wb”))==NULL)//打开文件并判定是否出错 { printf(“创建文件失败!”);//打印出错提示 getchar(); return;} printf(“请依次输入航班信息(以回车键结束):n”); //打印提示信息 printf(“------------n”);for(i=0;i printf(“请输入航班号: ”); scanf(“%d”,&s[i].num);//输入航班号 printf(“请输入起始站: ”); scanf(“%s”,s[i].start);//输入起始站 printf(“请输入终点站: ”); scanf(“%s”,s[i].over);//输入终点站 printf(“请输入时间(星期几): ”); scanf(“%s”,s[i].time);//输入时间 printf(“请输入机票数: ”); scanf(“%d”,&s[i].count);//输入机票数 fwrite(&s[i],sizeof(struct air),1,fp); m++; printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”); scanf(“%s”,ii); if(strcmp(ii,“y”)!=0) //判断是否继续添加航班信息 { fclose(fp); //关闭文件 return; } } } void read() //定义读取文件函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“r”))==NULL){ printf(“创建文件失败!”); getchar(); return;} i=0;while(!feof(fp)){ fread(&s[i],sizeof(struct air),1,fp);//逐块读取数据 i++; m++;//计算存在航班数 } m--;fclose(fp);} void save()//定义保存函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“wb”))==NULL) { printf(“创建文件失败!”); getchar(); return;} for(i=0;i //逐块保存数据 fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);} void add()//定义增加航班信息函数 { do{ printf(“请依次输入您要增加的航班信息(以回车键结束): n”); //打印提示信息 printf(“------------n”); printf(“请输入航班号: ”); scanf(“%d”,&s[m].num);//读取航班号 printf(“请输入起始站: ”); scanf(“%s”,s[m].start);//读取起始站 printf(“请输入终点站: ”); scanf(“%s”,s[m].over);//读取终点站 printf(“请输入时间: ”); scanf(“%s”,s[m].time);//读取时间 printf(“请输入机票数: ”); scanf(“%d”,&s[m].count);//读取机票数 m++; printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”); scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判断是否继续添加 } void output()//定义输出格式函数 { printf(“航班号tt起始站tt终点站tt时间tt机票数n”);//信息标题 for(i=0;i printf(PRINT);//打印出信息 } void print()//定义显示航班信息函数 { printf(“n目前我们有如下航班:n”);output(); //调用输出格式函数 printf(“n请按回车键返回上层菜单 ”);getchar();getchar();} void search()//定义查询函数 { int n; do { printf(“n请输入航班号: ”); scanf(“%d”,&n);//输入查询的航班号 for(i=0;i { if(s[i].num==n)//按航班号判定输出条件 { printf(“n您所查找的航班信息为:n ”); printf(“航班号tt起始站tt终点站tt时间tt机票数 nn”); printf(PRINT);//显示信息 printf(“n查询完毕,按回车键继续”); getchar(); getchar(); return; } } printf(“n对不起,没有您需要的信息!n ”);printf(“是否重新查找?请键入y或n以回车键结束 ”);scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判定是否重新查找 } void dingpiao()//定义订票业务函数 { int n;char a[10]=“y”;do { search();//调用查询模块 if(!strcmp(ii,“n”)) { printf(“对不起!没有找到您所需要的航班,所以不能订票。n”);//未查找到所需航班 printf(“n请按回车键返回上层菜单 ”); getchar(); getchar(); strcpy(ii,“n”); break; } do { printf(“请输入您要订的机票数(以回车键结束): ”); scanf(“%d”,&n);//输入所订机票数 if(n<=0) //判定机票数是否出错 { printf(“输入错误!至少需订1张机票。n”); } else if(s[i].count==0)//判定机票是否售完 { printf(“对不起,你所选择的航班的机票已售完!n”); break; } else if(s[i].count!=0&&s[i].count>=n)//判定机票数是否大于等于订票数 { s[i].count=s[i].count-n; printf(“订票成功!”); break; } else if(s[i].count { printf(“对不起,你所选择的航班只剩 %d张机票n”, s[i].count); printf(“是否需要重新输入机票数?请输入y或n以回车键结束: ”);//判定是否重新输入订票数 scanf(“%s”,a); } }while(!strcmp(a,“y”)); printf(“是否需要订其他航班的机票?请输入y或n以回车键结束: ”); scanf(“%s”,a);}while(!strcmp(a,“y”));//判定是否继续订票 } void tuipiao()//定义退票函数 { int n;char a[10];do { search();//调用查询函数 if(!strcmp(ii,“n”)) { printf(“对不起!没有找到您所需要的航班,所以不能退票。n”); printf(“n请按回车键返回上层菜单 ”); getchar(); getchar(); strcpy(ii,“n”); break; } printf(“请输入您要退的机票数目: ”); scanf(“%d”,&n);//输入所退票数 if(n<=0) //判定票数是否有效 printf(“输入错误!至少需退1张机票。”); else { s[i].count=s[i].count+n; printf(“退票成功!”); } printf(“是否继续? 请键入y或n以回车键结束: ”);//判定是否继续退票 scanf(“%s”,a);}while(!strcmp(a,“y”));//判定并跳出循环 } void paixu()//定义排序函数 { int n; printf(“n******************************************************************************** ”); printf(“1.按航班号从小到大排序n” “t2.按航班号从大到小排序n”);printf(“******************************************************************************** ”); printf(“请在1-2中选择以回车键结束: ”);scanf(“%d”,&n);//输入排序方式 switch(n){ case 1:paixu1();//调用从小到大排序函数 break; case 2:paixu2();//调用从大到小排序函数 break;} printf(“排序后的航班信息为:n”);output(); //显示排序后航班信息 printf(“n请按回车键返回上层菜单 ”); getchar(); getchar();} void paixu1()//定义从小到大排序函数 { int k,j;struct air t;for(i=0;i { k=i; for(j=i+1;j if(s[k].num>s[j].num) k=j; if(i!=k) { t=s[k]; s[k]=s[i]; s[i]=t; } } } void paixu2()//定义从大到小排序函数 { } int k,j;struct air t;for(i=0;i if(s[k].num k=j;if(i!=k){ t=s[k]; s[k]=s[i]; s[i]=t;} } 火车订票系统源码 #include intshoudsave=0;int count1=0,count2=0,mark=0,mark1=0;/*定义存储火车信息的结构体*/ struct train { char num[10];/*列车号*/ char city[10];/*目的城市*/ char takeoffTime[10];/*发车时间*/ char receiveTime[10];/*到达时间*/ int price;/*票价*/ intbookNum;/*票数*/ };/*订票人的信息*/ struct man { charnum[10];/*ID*/ char name[10];/*姓名*/ intbookNum;/*需求的票数*/ };/*定义火车信息链表的结点结构*/ typedefstruct node { struct train data;struct node * next;}Node,*Link;/*定义订票人链表的结点结构*/ typedefstruct people { struct man data;struct people*next;}bookMan,*bookManLink;/* 初始界面*/ voidprintInterface(){ puts(“********************************************************”);puts(“* Welcome to use the system of booking tickets *”);puts(“********************************************************”);puts(“* You can choose the operation: *”);puts(“* 1:Insert a train information *”);puts(“* 2:Inquire a train information *”);puts(“* 3:Book a train ticket *”);puts(“* 4:Update the train information *”);puts(“* 5:Advice to you about the train *”);puts(“* 6:save information to file *”);puts(“* 7:quit the system *”);puts(“********************************************************”);} /*添加一个火车信息*/ voidInsertTraininfo(Link linkhead){ struct node *p,*r,*s;charnum[10]; r = linkhead; s = linkhead->next;while(r->next!=NULL) r=r->next;while(1) { printf(“please input the number of the train(0-return)”);scanf(“%s”,num);if(strcmp(num,“0”)==0)break; /*判断是否已经存在*/ while(s) { if(strcmp(s->data.num,num)==0) { printf(“the train '%s'has been born!n”,num);return; } s = s->next; } p =(struct node*)malloc(sizeof(struct node));strcpy(p->data.num,num);printf(“Input the city where the train will reach:”);scanf(“%s”,p->data.city);printf(“Input the time which the train take off:”);scanf(“%s”,p->data.takeoffTime);printf(“Input the time which the train receive:”);scanf(“%s”,&p->data.receiveTime);printf(“Input the price of ticket:”);scanf(“%d”,&p->data.price);printf(“Input the number of booked tickets:”);scanf(“%d”,&p->data.bookNum);p->next=NULL;r->next=p; r=p;shoudsave = 1; } } /*打印火车票信息*/ voidprintTrainInfo(struct node*p){ puts(“nThe following is the record you want:”);printf(“>>number of train: %sn”,p->data.num);printf(“>>city the train will reach: %sn”,p->data.city);printf(“>>the time the train take off: %snthe time the train reach: %sn”,p->data.takeoffTime,p->data.receiveTime);printf(“>>the price of the ticket: %dn”,p->data.price);printf(“>>the number of booked tickets: %dn”,p->data.bookNum);} struct node * Locate1(Link l,charfindmess[],char numorcity[]){ Node*r;if(strcmp(numorcity,“num”)==0) { r=l->next;while(r) { if(strcmp(r->data.num,findmess)==0)return r; r=r->next; } } else if(strcmp(numorcity,“city”)==0) { r=l->next;while(r) { if(strcmp(r->data.city,findmess)==0)return r; r=r->next; } } return 0;} /*查询火车信息*/ voidQueryTrain(Link l){ Node *p;intsel;char str1[5],str2[10];if(!l->next) { printf(“There is not any record!”);return; } printf(“Choose the way:n>>1:according to the number of train;n>>2:according to the city:n”);scanf(“%d”,&sel);if(sel==1) { printf(“Input the the number of train:”);scanf(“%s”,str1); p=Locate1(l,str1,“num”);if(p) { printTrainInfo(p); } else { mark1=1;printf(“nthe file can't be found!”); } } else if(sel==2) { printf(“Input the city:”);scanf(“%s”,str2); p=Locate1(l,str2,“city”);if(p) { printTrainInfo(p); } else { mark1=1;printf(“nthe file can't be found!”); } } } /*订票子模块*/ voidBookTicket(Link l,bookManLink k){ Node*r[10],*p;charch,dem;bookMan*v,*h;int i=0,t=0;charstr[10],str1[10],str2[10]; v=k;while(v->next!=NULL) v=v->next;printf(“Input the city you want to go: ”);scanf(“%s”,&str); p=l->next;while(p!=NULL) { if(strcmp(p->data.city,str)==0) { r[i]=p;i++; } p=p->next; } printf(“nnthe number of record have %dn”,i);for(t=0;t { printf(“ndo you want to book it?<1/0>n”);scanf(“%d”,&ch);if(ch == 1) { h=(bookMan*)malloc(sizeof(bookMan));printf(“Input your name: ”);scanf(“%s”,&str1);strcpy(h->data.name,str1);printf(“Input your id: ”);scanf(“%s”,&str2);strcpy(h->data.num,str2);printf(“Input your bookNum: ”);scanf(“%d”,&dem);h->data.bookNum=dem;h->next=NULL;v->next=h; v=h;printf(“nLucky!you have booked a ticket!”);getch();shoudsave=1; } } } bookMan*Locate2(bookManLinkk,charfindmess[]){ bookMan*r; r=k->next;while(r) { if(strcmp(r->data.num,findmess)==0) { mark=1;return r; } r=r->next; } return 0;} /*修改火车信息*/ voidUpdateInfo(Link l){ Node*p;charfindmess[20],ch;if(!l->next) { printf(“nthere isn't record for you to modify!n”);return; } else { QueryTrain(l);if(mark1==0) { printf(“nDo you want to modify it?n”);getchar();scanf(“%c”,&ch);if(ch=='y'); { printf(“nInput the number of the train:”);scanf(“%s”,findmess); p=Locate1(l,findmess,“num”);if(p) { printf(“Input new number of train:”);scanf(“%s”,&p->data.num);printf(“Input new city the train will reach:”);scanf(“%s”,&p->data.city);printf(“Input new time the train take off”);scanf(“%s”,&p->data.takeoffTime);printf(“Input new time the train reach:”);scanf(“%s”,&p->data.receiveTime);printf(“Input new price of the ticket::”);scanf(“%d”,&p->data.price);printf(“Input new number of people who have booked ticket:”);scanf(“%d”,&p->data.bookNum);printf(“nmodifying record is sucessful!n”);shoudsave=1; } else printf(“tttcan't find the record!”); } } else mark1=0; } } /*系统给用户的提示信息*/ voidAdvicedTrains(Link l){ Node*r;charstr[10];int mar=0; r=l->next;printf(“Iuput the city you want to go: ”);scanf(“%s”,str);while(r) { if(strcmp(r->data.city,str)==0&&r->data.bookNum<200) { mar=1;printf(“nyou can select the following train!n”);printf(“nnplease select the fourth operation to book the ticket!n”);printTrainInfo(r); } r=r->next; } if(mar==0)printf(“ntttyou can't book any ticket now!n”);} /*保存火车信息*/ voidSaveTrainInfo(Link l){ FILE*fp; Node*p;int count=0,flag=1;fp=fopen(“c: rain.txt”,“wb”);if(fp==NULL) { printf(“the file can't be opened!”);return; } p=l->next;while(p) { if(fwrite(p,sizeof(Node),1,fp)==1) { p=p->next;count++; } else { flag=0;break; } } if(flag) { printf(“the number of the record which have been saved is %dn”,count);shoudsave=0; } fclose(fp);} /*保存订票人的信息*/ voidSaveBookmanInfo(bookManLink k){ FILE*fp;bookMan*p;int count=0,flag=1;fp=fopen(“c:man.txt”,“wb”);if(fp==NULL) { printf(“the file can't be opened!”);return; } p=k->next;while(p) { if(fwrite(p,sizeof(bookMan),1,fp)==1) { p=p->next;count++; } else { flag=0;break; } } if(flag) { printf(“the number of the record which have been saved is %dn”,count);shoudsave=0; } fclose(fp);} int main(){ FILE*fp1,*fp2; Node*p,*r;char ch1,ch2; Link l;bookManLink k;bookMan*t,*h;intsel; l=(Node*)malloc(sizeof(Node));l->next=NULL; r=l; k=(bookMan*)malloc(sizeof(bookMan));k->next=NULL; h=k; fp1=fopen(“c: rain.txt”,“ab+”);if((fp1==NULL)) { printf(“can't open the file!”);return 0; } while(!feof(fp1)) { p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp1)==1) { p->next=NULL;r->next=p; r=p;count1++; } } fclose(fp1); fp2=fopen(“c:man.txt”,“ab+”);if((fp2==NULL)) { printf(“can't open the file!”);return 0; } while(!feof(fp2)) { t=(bookMan*)malloc(sizeof(bookMan));if(fread(t,sizeof(bookMan),1,fp2)==1) { t->next=NULL;h->next=t; h=t;count2++; } } fclose(fp2);while(1) { system(“cls”);printInterface();printf(“please choose the operation: ”);scanf(“%d”,&sel);system(“cls”);if(sel==8) { if(shoudsave==1) { getchar();printf(“nthe file have been changed!do you want to save it(y/n)?n”);scanf(“%c”,&ch1);if(ch1=='y'||ch1=='Y') { SaveBookmanInfo(k);SaveTrainInfo(l); } } printf(“nThank you!You are welcome toon”);break; } switch(sel) { case 1 : InsertTraininfo(l);break;case 2 : QueryTrain(l);break;case 3 : BookTicket(l,k);break;case 4 : UpdateInfo(l);break;case 5 : AdvicedTrains(l);break;case 6 : SaveTrainInfo(l);SaveBookmanInfo(k);break;case 7 : return 0; } printf(“nplease press any key to continue.......”);getch(); } return 0;} 公司出差机票订票管理办法 1. 总则 1.1:目的 为了加强公司规范化管理,合理的订购飞机票、火车票(包含国内、国际机票),并结合公司实际情况,规范公司的机票订购流程,提高工作效率,节约差旅成本费用,制定本管理规定,公司所有人需严格遵守本管理办法。1.2:适用范围 本规定适用总公司员工及各地分公司 2.职责 2.1、申请人职责 2.1.1:填写出差申请表 2.1.2详细填写申购机票的姓名,所属团队,公差原因,客户信息,起始地、数量、身份证或护照号及预订时间 2.1.3:订票信息可以以邮件方式发送至行政部 2.1.4:除紧急情况外,订票信息通常至少提前2天发送至行政部 2.2:行政部职责 2.2.1:负责按照规定对飞机票订购的各项事务进行管理和汇总登记 2.2.2:确认出差申请已获批复后,负责对机票请购人的主要信息进行核对 2.2.3:认真核实机票订购的各项工作,达到高效、合理、节约的目的 2.2.4对航班号,起始时间、起始地、中转地做好登记 2.2.5行政部根据实际航班,通知乘机人并安排相关工作 3订票管理 3.1 飞机票订票管理 3.1.1 公司订票事务由行政部完成 3.1.2 申请人员需向公司提供订票所需证件的原件及复印件 3.1.3 行政部每月对上月机票的订购记录进行汇总核准,报领导查阅 3.2机票订票流程,详见【机票预订及付款流程】 4费用支付 4.1 机票费用按月支付,一月支付一次,相关费用由行政部统一报销 4.2机票第一次改签免费,因个人原因导致退票或者改签,产生费用由个人承担,因公司原因造成误机,费用公司负责,由个人原因造成误机费费用自理。第二篇:c语言实现机票管理系统源代码
第三篇:C语言课程设计——飞机订票系统源代码
第四篇:C语言编程---火车订票系统源代码
第五篇:公司出差机票订票管理