飞机订票系统.docx

上传人:b****6 文档编号:5963397 上传时间:2023-01-02 格式:DOCX 页数:25 大小:427.17KB
下载 相关 举报
飞机订票系统.docx_第1页
第1页 / 共25页
飞机订票系统.docx_第2页
第2页 / 共25页
飞机订票系统.docx_第3页
第3页 / 共25页
飞机订票系统.docx_第4页
第4页 / 共25页
飞机订票系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

飞机订票系统.docx

《飞机订票系统.docx》由会员分享,可在线阅读,更多相关《飞机订票系统.docx(25页珍藏版)》请在冰豆网上搜索。

飞机订票系统.docx

飞机订票系统

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);

}

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

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1