C语言课程设计飞机订票系统源代码.docx

上传人:b****2 文档编号:3456052 上传时间:2023-05-05 格式:DOCX 页数:10 大小:32.64KB
下载 相关 举报
C语言课程设计飞机订票系统源代码.docx_第1页
第1页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第2页
第2页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第3页
第3页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第4页
第4页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第5页
第5页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第6页
第6页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第7页
第7页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第8页
第8页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第9页
第9页 / 共10页
C语言课程设计飞机订票系统源代码.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计飞机订票系统源代码.docx

《C语言课程设计飞机订票系统源代码.docx》由会员分享,可在线阅读,更多相关《C语言课程设计飞机订票系统源代码.docx(10页珍藏版)》请在冰点文库上搜索。

C语言课程设计飞机订票系统源代码.docx

C语言课程设计飞机订票系统源代码

#include//标准输入、输出头文件

#include//包含字符串函数处理头文件

#include〃包含access函数的头文件

#defineN99//定义最多的航班数

#definePRINT"%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//宏定义输出格式

structair//定义结构体数组{intnum;//定义航班号

charstart[20];//航班起始站

charover[20];//终点站

chartime[10];//飞行时间

intcount;//机票数量

}s[N];

inti,m=0;//定义全局变量

charii[10];

voidadd();〃函数声明增加航班信息函数

voidprint();//显示航班信息

voidsearch();〃查找航班信息

voiddingpiao();〃订票业务

voidtuipiao();//退票

voidread();〃读取文件

voidsave();〃保存文件

voidoutput();//输出格式

voidpaixu();//航班排序

voidchushihua();//系统初始化

voidbuild();//建立数据文件

voidpaixu1();//按航班号从小到大排序

voidpaixu2();//从大到小

voidmain()//主函数{intj;

chushihua();//系统初始化判断是否存在原始数据文件

printf("欢迎使用飞机订票系统\n");//打印出系统主界面do{printf("================================================================================");

printf("

1.增加航班信息\n"

"\t

2.浏览航班信息\n"

"\t\t

3•查找航班信息(按航班号)\t\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){case1:

add();//调用增加航班函数

break;

case2:

print();//调用显示模块

break;

case3:

search();〃调用查找模块

break;

case4:

paixu();〃调用排序函数

break;

case5:

dingpiao();〃调用订票模块

break;

case6:

tuipiao();〃调用退票模块

break;

case0:

//退出系统

save();

printf("谢谢使用,再见!

");

break;}}while(j!

=0);//判断是否调用其他函数}voidchushihua()//定义系统初始化函数{if(access("hangban.dat",0)){build();}else

read();}voidbuild()〃定义建立数据文件函数{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("请输入终点站:

");

seanf("%s",s[i].over);〃输入终点站

printf("请输入时间(星期几):

");

scanf("%s",s[i].time);//输入时间

printf("请输入机票数:

");

scanf("%d",&s[i].count);//输入机票数

fwrite(&s[i],sizeof(structair),1,fp);

m++;

printf("添加完毕,是否继续添加?

请键入y或n以回车键结束:

");

scanf("%s",ii);

if(strcmp(ii,"y")!

=0)//判断是否继续添加航班信息{fclose(fp);//关闭文件return;}}}voidread()//定义读取文件函数{FILE*fp;if((fp=fopen("hangban.dat","r"))==NULL){printf("创建文件失败!

");getchar();

return;}i=0;

while(!

feof(fp)){fread(&s[i],sizeof(structair),1,fp);//逐块读取数据

i++;

m++;//计算存在航班数}m--;

fclose(fp);}voidsave()//定义保存函数{FILE*fp;if((fp=fopen("hangban.dat","wb"))==NULL){printf("创建文件失败!

");

getchar();

return;}for(i=0;i

\n");//打印提示信息

\n");

printf("

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"));//判断是否继续添加}voidoutput()//定义输出格式函数{printf(”航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n");〃信息标题

for(i=0;i

printf(PRINT);//打印出信息}voidprint()〃定义显示航班信息函数{printf("\n目前我们有如下航班:

\n");

output();//调用输出格式函数

printf("\n请按回车键返回上层菜单");

getchar();

getchar();}voidsearch()〃定义查询函数{intn;

do{printf("\n请输入航班号:

");

scanf("%d",&n);//输入查询的航班号

for(i=0;i

\n");

printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n\n");

printf(PRINT);//显示信息

printf("\n查询完毕,按回车键继续");

getchar();

getchar();

return;}}

printf("\n对不起,没有您需要的信息!

\n");

printf("是否重新查找?

请键入y或n以回车键结束");

scanf("%s",ii);

}while(!

strcmp(ii,"y"));〃判定是否重新查找}voiddingpiao()〃定义订票业务函数{intn;

chara[10]="y";

do{search();〃调用查询模块

if(!

strcmp(ii,"n")){printf("对不起!

没有找到您所需要的航班,所以不能订票。

\n");//未查找到所需航班

printf("\n请按回车键返回上层菜单");

getchar();

getchar();

strcpy(ii,"n");

break;}do{printf("请输入您要订的机票数(以回车键结束):

");

scanf("%d",&n);//输入所订机票数

if(nv=0)〃判定机票数是否出错{printf("输入错误!

至少需订1张机票。

\n");}elseif(s[i].count==O)〃判定机票是否售完{printf("对不起,你所选择的航班的机票已售完!

\n");

break;}elseif(s[i].count!

=O&&s[i].count>=n)〃判定机票数是否大于等于订票数

{

s[i].count=s[i].count-n;

printf("订票成功!

");

break;}elseif(s[i].count

请输入y或n以回车键结束:

");//判定是否重新输入订票数

scanf("%s",a);}}while(!

strcmp(a,"y"));

printf("是否需要订其他航班的机票?

请输入y或n以回车键结束:

");

scanf("%s",a);

}while(!

strcmp(a,"y"));〃判定是否继续订票}voidtuipiao()//定义退票函数{intn;

chara[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"));〃判定并跳出循环}voidpaixu()〃定义排序函数{intn;

printf("

1.按航班号从小到大排序\n"

"\t

2.按航班号从大到小排序\n");

printf("请在1-2中选择以回车键结束:

);

scanf("%d",&n);//输入排序方式switch(n){case1:

paixu1();//调用从小到大排序函数break;

case2:

paixu2();〃调用从大到小排序函数

break;}printf("排序后的航班信息为:

\n");

output();//显示排序后航班信息

printf("\n请按回车键返回上层菜单");

getchar();

getchar();}voidpaixu1()〃定义从小到大排序函数{intk,j;structairt;

for(i=0;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;}}}voidpaixu2()//定义从大到小排序函数{}intk,j;

structairt;

for(i=0;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;}}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2