飞机订票系统.docx
- 文档编号:5963397
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:25
- 大小:427.17KB
飞机订票系统.docx
《飞机订票系统.docx》由会员分享,可在线阅读,更多相关《飞机订票系统.docx(25页珍藏版)》请在冰豆网上搜索。
飞机订票系统
C语言课程设计
-----飞机订票系统
院系:
姓名:
学号:
班号:
指导教师:
一、题目要求
假定民航机场共有n个航班,每个航班有一航班号,确定的航线(起始点,终点站),确定的飞行时间(星期几)和一定的成员订额.试设计一民航订票系统,使之能提供下列服务:
1、航班信息录入功能(航班信息用文件保存)
2、航班信息浏览功能
3、查询航线:
(1)、按航班号查询
(2)、按起点站查询
(3)、按终点站查询
(4)、按飞行时间查询
二、需求分析
航班信息用文件保存;航班信息浏览功能需要提供显示操作;要查询航线需要提供查找功能,可提供按照航班号,起点站,终点站和飞行时间查询;另外要提供键盘式选择菜单以实现功能选择。
三、总体设计
根据需求分析,可以将这个系统的设计分为如下五大模块:
输入航班信息,保存航班信息,浏览航班信息,查找航班信息,退出。
飞机订票系统
飞机订票系统
四、详细设计
1、结构体设计
建立航班结构体,结构体成员包括航班号,起点站,终点站,飞行时间(星期几),
预售票总数.
structair
{intfir_num;
charstart[20];
charterminus[20];
charfir_time[10];
intcount;
}s[N];/*s[N]中每个数组元素依次对应一个航班信息*/
[注意]
s[N]中的N为学生个数,程序中采用宏定义的方式,可以随时在源程序宏定义中改,本程序宏定义#defineN10000.
2、主函数
流程图:
显示一系列功能选项
主要程序:
main()//主函数
{
intj;
printf("---欢迎您到飞机订票系统---\n");
printf("********************************************************************************\n");
do
{printf("1.请输入预定的飞机信息\n\n"
"2.浏览所要预定的飞机信息\n\n"
"3.查询所要预定的飞机信息\n\n"
"0.退出系统\n\n");
printf("********************************************************************************\n");
printf("注意:
这个飞机订票系统仅仅支持最近几个星期的航班信息!
!
!
\n\n");
printf("请在0—3之间选择一个数字,然后按Enter:
\n\n");
scanf("%d",&j);
switch(j)//利用枚举而选择其结构体中的一种
{
case1:
input();
break;
case2:
print();
break;
case3:
search();
break;
case0:
break;}
}while(j!
=0);
printf("谢谢您使用我们的飞机订票系统\n");}
3、各功能模块设计
(1)、输入航班信息模块
流程图:
主要代码:
voidinput()//输入函数的定义
{
charf[]="朱海侨";
inty;
printf("请输入密码,然后再按Enter:
\n\n");
scanf("%s",f);
if(strcmp(f,"朱海侨")==0)
{printf("请按顺序输入飞机航班信息(飞机航班的信息是以0结尾的):
\n\n");
printf("********************************************************************************\n");
for(i=0;i { printf("请输入飞机号: \n"); scanf("%d",&s[i].fir_num); printf("请输入出发地: \n"); scanf("%s",s[i].start); printf("请输入终点: \n"); scanf("%s",s[i].terminus); printf("请输入飞行时间: \n"); scanf("%s",s[i].fir_time); printf("请输入飞机票序列号(序列号应该是以0结尾): \n",m); scanf("%d",&s[i].count); m++; printf("该组信息已经建立! 请按任意键继续,按0结束! ",m); scanf("%d",&y); if(y==0) { save(); print(); break; } } } else printf("密码错误! ! ! 请在此输入您的密码,谢谢! \n\n");} voidsave()//存储函数的定义 { FILE*fp,*fp1; if((fp=fopen("chen.dat","wb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } if((fp1=fopen("hao.dat","wb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } for(i=0;i if(fwrite(&s[i],sizeof(structair),1,fp)==0) printf("在文件中输入数据失败\n\n"); fprintf(fp1,"%d",m); fclose(fp); fclose(fp1); } (2)、保存信息模块 流程图: 主要代码: voidsave()//存储函数的定义 { FILE*fp,*fp1; if((fp=fopen("chen.dat","wb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } if((fp1=fopen("hao.dat","wb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } for(i=0;i if(fwrite(&s[i],sizeof(structair),1,fp)==0) printf("在文件中输入数据失败\n\n"); fprintf(fp1,"%d",m); fclose(fp); fclose(fp1); } (3)、信息浏览模块 流程图: 主要代码: voidread()//读写函数的定义 { FILE*fp,*fp1; if((fp=fopen("chen.dat","rb"))==NULL) { printf("错误: 请确定文件是存在的! 请输入任意键返回菜单! "); getchar(); } if((fp1=fopen("hao.dat","rb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } fscanf(fp1,"%d",&m); fclose(fp1); for(i=0;i { fread(&s[i],sizeof(s),1,fp);} fclose(fp); } voidprint() { charw[10]; read(); printf("航班号始发地终点时间飞机票号\n"); for(i=0;i { printf(PRINT);} printf("请输入任意键返回上一级菜单: \n"); scanf("%s",w); } (4)查询信息模块 流程图: 显示查询方式菜单 主要代码: voidsearch()//查询函数的定义 { charname1[20]; charname2[20]; charii[10]; charctime[10]; intn,no; do { printf("请选择一种你想要查找的方式: \n\n"); printf( "1.根据航班号查找\n\n" "2.根据终点地查找\n\n" "3.根据始发地查找\n\n" "4.根据飞行时间查找\n\n" "0.返回\n\n"); printf("请在0—4中间选择一个整数: \n\n" "请输入任意键返回开始菜单: \n\n"); scanf("%d",&n); if(n==0) break; switch(n) {case1: printf("请输入航班号: \n"); scanf("%d",&no); break; case2: printf("请输入终点: \n"); scanf("%s",name2); break; case3: printf("请输入始发地: \n"); scanf("%s",name1); break; case4: printf("请输入飞行时间: \n"); scanf("%s",ctime); break; } read(); for(i=0;i { if(strcmp(s[i].start,name1)==0||strcmp(s[i].terminus,name2)==0) { printf("\n成功查找到了航班信息! \n"); printf("航班号始发地终点时间飞机票号\n"); printf(PRINT); } if(s[i].fir_num==no) {printf("\n成功查找到了航班信息! \n"); printf("航班号始发地终点时间飞机票号\n"); printf(PRINT); } if(strcmp(s[i].fir_time,ctime)==0) {printf("\n成功查找到了航班信息! \n"); printf("航班号始发地终点时间飞机票号\n"); printf(PRINT); } } no=0; printf("不能找到您所需要的信息! : \n\n" "您还需要继续服务,请输入“YES”或者“NO”,然后再按Enter\n"); scanf("%s",ii); }while(strcmp(ii,"yes")==0); } 五、上机操作 1、输入数据 管理员输入航班信息: 航班号起点站终点站飞行时间票数 100武汉西安7.890 101武汉北京7.9780 102上海西安7.9340 103广州武汉7.810 103广州武汉7.9500 2、编译、连接、运行 3、结果显示 (1)主菜单: (2)、输入密码: (3)、输入信息 (4)、浏览信息 (5)、信息查询 (5.1)按航班号查询 (5.2)按终点站查询 (5.3)按起点站查询 (5.4)、按时间查询 六、总结 通过这次课程设计,我重新温习了C语言的知识,加深了对书上知识的理解,系统地运用已学的知识,掌握了模块化设计方法以及用流程图表示算法,扩张自己在C语言方面视野,提高了自己用C语言进行程序设计的能力。 相信通过此次C语言课程设计所学的知识,在以后我能够在实际生活中解决所遇到的问题。 七、附录 源程序: //飞机订票系统.cpp: Definestheentrypointfortheconsoleapplication. // #include"stdafx.h" #include #include #include #defineN1000 structair//定义一个结构体 { intfir_num; charstart[20]; charterminus[20]; charfir_time[10]; intcount; }s[N]; inti; intm=0; #definePRINT"%-d%23s%15s%10s%10d\n",s[i].fir_num,s[i].start,s[i].terminus,s[i].fir_time,s[i].count voidinput();//声明一些功能函数 voidprint(); voidsave(); voidread(); voidsearch(); voidmain()//主函数 { intj; printf("---欢迎您到飞机订票系统---\n"); printf("********************************************************************************\n"); do {printf("1.请输入预定的飞机信息\n\n" "2.浏览所要预定的飞机信息\n\n" "3.查询所要预定的飞机信息\n\n" "0.退出系统\n\n"); printf("********************************************************************************\n"); printf("注意: 这个飞机订票系统仅仅支持最近几个星期的航班信息! ! ! \n\n"); printf("请在0—3之间选择一个数字,然后按Enter: \n\n"); scanf("%d",&j); switch(j)//利用枚举而选择其结构体中的一种 { case1: input(); break; case2: print(); break; case3: search(); break; case0: break;} }while(j! =0); printf("谢谢您使用我们的飞机订票系统\n");} voidinput()//输入函数的定义 { charf[]="朱海侨"; inty; printf("请输入密码,然后再按Enter: \n\n"); scanf("%s",f); if(strcmp(f,"朱海侨")==0) {printf("请按顺序输入飞机航班信息(飞机航班的信息是以0结尾的): \n\n"); printf("********************************************************************************\n"); for(i=0;i { printf("请输入飞机号: \n"); scanf("%d",&s[i].fir_num); printf("请输入起点站: \n"); scanf("%s",s[i].start); printf("请输入终点站: \n"); scanf("%s",s[i].terminus); printf("请输入飞行时间: \n"); scanf("%s",s[i].fir_time); printf("请输入飞机票数(序列号应该是以0结尾): \n",m); scanf("%d",&s[i].count); m++; printf("该组信息已经建立! 请按任意键继续,按0结束! ",m); scanf("%d",&y); if(y==0) { save(); print(); break; } } } else printf("密码错误! ! ! 请在此输入您的密码,谢谢! \n\n");} voidsave()//存储函数的定义 { FILE*fp,*fp1; if((fp=fopen("chen.dat","wb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } if((fp1=fopen("hao.dat","wb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } for(i=0;i if(fwrite(&s[i],sizeof(structair),1,fp)==0) printf("在文件中输入数据失败\n\n"); fprintf(fp1,"%d",m); fclose(fp); fclose(fp1); } voidread()//读写函数的定义 { FILE*fp,*fp1; if((fp=fopen("chen.dat","rb"))==NULL) { printf("错误: 请确定文件是存在的! 请输入任意键返回菜单! "); getchar(); } if((fp1=fopen("hao.dat","rb"))==NULL) { printf("建立文件失败! \n\n"); getchar(); return; } fscanf(fp1,"%d",&m); fclose(fp1); for(i=0;i { fread(&s[i],sizeof(s),1,fp);} fclose(fp); } voidprint() { charw[10]; read(); printf("航班号起点站终点站时间票数\n"); for(i=0;i { printf(PRINT);} printf("请输入任意键返回上一级菜单: \n"); scanf("%s",w); } voidsearch()//查询函数的定义 { charname1[20]; charname2[20]; charii[10]; charctime[10]; intn,no; do { printf("请选择一种你想要查找的方式: \n\n"); printf( "1.根据航班号查找\n\n" "2.根据终点站查找\n\n" "3.根据起点站查找\n\n" "4.根据飞行时间查找\n\n" "0.返回\n\n"); printf("请在0—4中间选择一个整数: \n\n" "请输入任意键返回开始菜单: \n\n"); scanf("%d",&n); if(n==0) break; switch(n) {case1: printf("请输入航班号: \n"); scanf("%d",&no); break; case2: printf("请输入终点站: \n"); scanf("%s",name2); break; case3: printf("请输入起点站: \n"); scanf("%s",name1); break; case4: printf("请输入飞行时间: \n"); scanf("%s",ctime); break; } read(); for(i=0;i { if(strcmp(s[i].start,name1)==0||strcmp(s[i].terminus,name2)==0) { printf("\n成功查找到了航班信息! \n"); printf("航班号起点站终点站时间票数\n"); printf(PRINT); } if(s[i].fir_num==no) {printf("\n成功查找到了航班信息! \n"); printf("航班号起点站终点站时间票数\n"); printf(PRINT); } if(strcmp(s[i].fir_time,ctime)==0) {printf("\n成功查找到了航班信息! \n"); printf("航班号起点站终点站时间票数\n"); printf(PRINT); } } no=0; printf("不能找到您所需要的信息! : \n\n" "您还需要继续服务,请输入“YES”或者“NO”,然后再按Enter\n"); scanf("%s",ii); }while(strcmp(ii,"yes")==0); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 订票 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)