收藏 分销(赏)

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

上传人:二*** 文档编号:4495820 上传时间:2024-09-25 格式:DOC 页数:9 大小:33KB
下载 相关 举报
C语言课程设计——飞机订票系统源代码.doc_第1页
第1页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、#include/标准输入、输出头文件#include/包含字符串函数处理头文件#include/包含access函数的头文件#define N 9999/定义最多的航班数#define PRINT %dtt%stt%stt星期%stt%dn ,si.num,si.start,si.over,si.time,si.count /宏定义输出格式struct air /定义结构体数组int num;/定义航班号char start20;/航班起始站char over20;/终点站char time10;/飞行时间int count;/机票数量sN;int i,m=0;/定义全局变量char ii1

2、0;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();/

3、系统初始化判断是否存在原始数据文件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

4、();/调用查找模块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();elseread();void build()/定义建立数据文件函数FILE *fp;/定义文件指针if(fp=fopen(hangban

5、.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);/输入时间p

6、rintf(请输入机票数: );scanf(%d,&si.count);/输入机票数fwrite(&si,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)fre

7、ad(&si,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;im;i+)/逐块保存数据fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定义增加航班信息函数doprintf(请依次输入您要增加的航班信息(以回车键结束): n); /打印提示信息print

8、f(- n);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(添加完毕,是否继续添加?请键入y或n以回车键结束:);scanf(%s,ii);while(!strcmp(ii,y);/判断是否继续添加void ou

9、tput()/定义输出格式函数printf(航班号tt起始站tt终点站tt时间tt机票数n);/信息标题 for(i=0;im;i+)printf(PRINT);/打印出信息void print()/定义显示航班信息函数printf(n目前我们有如下航班:n);output();/调用输出格式函数printf(n请按回车键返回上层菜单 );getchar();getchar();void search()/定义查询函数int n;doprintf(n请输入航班号: );scanf(%d,&n);/输入查询的航班号for(i=0;im;i+) if(si.num=n)/按航班号判定输出条件 pr

10、intf(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 a10=y;dosearch();/调用查询模块if(!strcmp(ii,n)print

11、f(对不起!没有找到您所需要的航班,所以不能订票。n);/未查找到所需航班printf(n请按回车键返回上层菜单 );getchar();getchar();strcpy(ii,n);break;doprintf(请输入您要订的机票数(以回车键结束): );scanf(%d,&n);/输入所订机票数if(n=n)/判定机票数是否大于等于订票数si.count=si.count-n;printf(订票成功! );break;else if(si.countn)/判定机票数是否小于订票数 printf(对不起,你所选择的航班只剩 %dX机票n, si.count);printf(是否需要重新输入机

12、票数?请输入y或n以回车键结束: );/判定是否重新输入订票数scanf(%s,a);while(!strcmp(a,y);printf(是否需要订其他航班的机票?请输入y或n以回车键结束: );scanf(%s,a);while(!strcmp(a,y);/判定是否继续订票void tuipiao()/定义退票函数int n;char a10;dosearch();/调用查询函数if(!strcmp(ii,n)printf(对不起!没有找到您所需要的航班,所以不能退票。n);printf(n请按回车键返回上层菜单 );getchar();getchar();strcpy(ii,n);brea

13、k;printf(请输入您要退的机票数目: );scanf(%d,&n);/输入所退票数if(n=0)/判定票数是否有效printf(输入错误!至少需退1X机票。 );else si.count=si.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-

14、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;im;i+)/选择法排序k=i;for(j=i+1;jsj.num)k=j;if(i!=k)t=sk;sk=si;si=t;void paixu2()/定义从大到小排序函数int k,j;struct air t;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;9 / 9

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服