C语言课程设计

上传人:m**** 文档编号:131183646 上传时间:2022-08-06 格式:DOCX 页数:8 大小:18.73KB
返回 下载 相关 举报
C语言课程设计_第1页
第1页 / 共8页
C语言课程设计_第2页
第2页 / 共8页
C语言课程设计_第3页
第3页 / 共8页
点击查看更多>>
资源描述
#include#include#include#defineN9999/标准输入、输出头文件/包含字符串函数处理头文件包含access函数的头文件/定义最多的航班数#definePRINT%dtt%stt%stt星期%stt%dn,si.num,si.start,si.over,si.time,si.count/宏定义输出格式structairintnum;charstart20;charover20;chartime10;intcount;sN;/定义结构体数组/定义航班号/航班起始站/终点站/飞行时间/机票数量inti,m=0;/定义全局变量charii10;voidadd();/函数声明增加航班信息函数voidprint();/显示航班信息voidsearch();/查找航班信息voiddingpiao();/订票业务voidtuipiao();/退票voidread();/读取文件voidsave();/保存文件voidoutput();/输出格式voidpaixu();/航班排序voidchushihua();/系统初始化voidbuild();/建立数据文件voidpaixu1();/按航班号从小到大排序voidpaixu2();/从大到小voidmain()intj;/主函数chushihua();/系统初始化判断是否存在原printf(欢迎使用飞机订票系统don);/打印出系统主界面printf(=);printf(1.增加航班信息nt2.浏览航班信息ntt3.查找航班信息(按航班号)tt、(丿_3)厂nttt4.航班排序(按航班号)ntttt5.订票业务nto()ottt6.退票业务ntttttt0.退出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();elseread();voidbuild()/定义建立数据文件函数FILE*fp;/定义文件指针if(fp=fopen(hangban.dat,wb)=NULL)/打开文件并判定是否出错printf(创建文件失败!);/打印出错提示getchar();return;printf(请依次输入航班信息(以回车键结束):n);/打印提示信息printf(n);for(i=0;iN;i+)printf(请输入航班号:);scanf(%d,&si.num);/输入航班号printf(请输入起始站:);scanf(%s,si.start);/输入起始站printf(请输入终点站:);scanf(%s,si.over);/输入终点站printf(请输入时间(星期几):);scanf(%s,si.time);/输入时间printf(请输入机票数:);scanf(%d,&si.count);/输入机票数fwrite(&si,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(&si,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;im;i+)/逐块保存数据fwrite(&si,sizeof(structair),1,fp);fclose(fp);voidadd()/定义增加航班信息函数do/打印提示信printf(请依次输入您要增加的航班信息(以回车键结束):n)息n);/读取航班号/读取起始站/读取终点站/读取时间/读取机票数?请键入y或n以回车键结束:);printf(printf(请输入航班号:);scanf(%d,&sm.num);printf(请输入起始站:);scanf(%s,sm.start);printf(请输入终点站:);scanf(%s,sm.over);printf(请输入时间:);scanf(%s,sm.time);printf(请输入机票数:);scanf(%d,&sm.count);m+;printf(添加完毕,是否继续添加/判断是否继续添加scanf(%s,ii);while(!strcmp(ii,y);voidoutput()/定义输出格式函数printf(航班号tt起始站tt终点站tt时间tt机票数n);信息标题for(i=0;im;i+)printf(PRINT);/打印出信息voidprint()/定义显示航班信息函数printf(n目前我们有如下航班:n);output();/调用输出格式函数printf(n请按回车键返回上层菜单);getchar();getchar();voidsearch()/定义查询函数intn;doprintf(n请输入航班号:);scanf(%d,&n);/输入查询的航班号for(i=0;im;i+)if(si.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);/判定是否重新查找voiddingpiao()/定义订票业务函数intn;chara10=y;dosearch();/调用查询模块if(!strcmp(ii,n)printf(对不起!没有找到您所需要的航班,所以不能订票。n);/未查找到所需航班printf(n请按回车键返回上层菜单);getchar();getchar();strcpy(ii,n);break;doprintf(请输入您要订的机票数(以回车键结束):);scanf(%d,&n);/输入所订机票数if(n=n)/判定机票数是否大于等于订票数si.count=si.count-n;printf(订票成功!);break;elseif(si.countn)/判定机票数是否小于订票数printf(对不起,你所选择的航班只剩%d张机票n,si.count);printf(是否需要重新输入机票数?请输入y或n以回车键结束:);/判定是否重新输入订票数scanf(%s,a);while(!strcmp(a,y);printf(是否需要订其他航班的机票?请输入y或n以回车键结束:”);scanf(%s,a);while(!strcmp(a,y);/判定是否继续订票voidtuipiao()/定义退票函数intn;chara10;dosearch();/调用查询函数if(!strcmp(ii,n)printf(对不起!没有找到您所需要的航班,所以不能退票。n);printf(n请按回车键返回上层菜单);getchar();getchar();strcpy(ii,n);break;printf(请输入您要退的机票数目:);scanf(%d,&n);/输入所退票数if(n=0)/判定票数是否有效printf(输入错误!至少需退1张机票。);elsesi.count=si.count+n;printf(退票成功!);printf(是否继续?请键入y或n以回车键结束:);判定是否继续退票scanf(%s,a);while(!strcmp(a,y);/判定并跳出循环voidpaixu()/定义排序函数intn;printf(n*H);printf(1.按航班号从小到大排序nt2.按航班号从大到小排序n);printf(*);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;im;i+)/选择法排序k=i;for(j=i+1;jsj.num)k=j;if(i!=k)t=sk;sk=si;si=t;intk,j;structairt;for(i=0;im;i+)k=i;for(j=i+1;jm;j+)if(sk.numsj.num)k=j;if(i!=k)t=sk;sk=si;si=t;
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!