C语言课程设计――飞机订票系统源代码
- 格式:docx
- 大小:22.45 KB
- 文档页数:12
#include
#include
#include
#define N 99//定义最多的航班数
#define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n
",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"
"\t
2.浏览航班信息\n"
"\t\t
3.查找航班信息(按航班号)\t\t╮(╯_╰)╭\n"
"\t\t\t
4.航班排序(按航班号)\n"
"\t\t\t\t
5.订票业务\n"
"\to(︶︿︶)o\t\t\t
6.退票业务\n"
"\t\t\t\t\t\t
0.退出\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 "); 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();