航空售票管理系统.docx

上传人:b****2 文档编号:24123414 上传时间:2023-05-24 格式:DOCX 页数:31 大小:43.30KB
下载 相关 举报
航空售票管理系统.docx_第1页
第1页 / 共31页
航空售票管理系统.docx_第2页
第2页 / 共31页
航空售票管理系统.docx_第3页
第3页 / 共31页
航空售票管理系统.docx_第4页
第4页 / 共31页
航空售票管理系统.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

航空售票管理系统.docx

《航空售票管理系统.docx》由会员分享,可在线阅读,更多相关《航空售票管理系统.docx(31页珍藏版)》请在冰豆网上搜索。

航空售票管理系统.docx

航空售票管理系统

《C语言程序设计》

 

题目航空售票管理系统

 

一、内容

实现了方便快捷的查询,订票,退票等操作,可以根据进入后的界面要求进行操作,规则均为简单的数字操作。

二、上机环境

操作系统:

windowsxp

开发工具:

vc6.0

三、函数调用关系图

exit()

四、各函数功能说明

1.main()主函数

2.voidmenu菜单函数

3.voidenter输入函数

4.voidorder命令函数

5.voidinput录入函数

6.voidbrowse浏览函数

7.voidsearch查询函数

8.voidbook订票函数

9.voidback返回函数

10.voidsave存储函数

11.voidload载入函数

第五部分:

函数流程图

结束

(1)menu()函数

NY

YY

退出

n=8

NY

w1=1

w1=0

输入新航班

浏览

航班操作

订票

退票

保存

载入

清屏(cls)

intn,w1

NY

n=3

n=7

n=5

n=6

n=4

n=2

n=1

输出n(1-8)

NY

YY

While(w==1)

YY

YY

YY

YY

YY

YY

YY

NY

NY

NY

NY

NY

NY

YY

ifn<1||n>8

输出n

输出目录

开始

(2)enter

Y

i

开始

函数

inti

清屏(cls)

请输入航班的数目n

请输入数据m

i=0

 

N

请输入第n次航班记录

调用input()函数

i++

返回menu()

结束

开始

(3)Order函数

inti,j

清屏(cls)

i=0

NY

i

调用browse()

YY

j=i+1

结束

NY

j

i++

YY

strcmp(ti[i].data,ti[j].data)>0

NY

YY

s=ti[i];

ti[i]=ti[j]

ti[j]=s

j++

开始

返回menu()

结束

请输入航班的票价

请输入航班的最大载客人数

请输入起飞时间

请输入降落地点

请输入起飞地点

请输入航班代号

(4)input函数

(5)browse函数

开始

inti

清屏(cls)

i=0

i++

Y

N

i

调用printf_one(i)

返回menu()

输出

结束

inti,m

开始

Y

(6)Search_time

Y

函数

清屏(cls)

输入时间

i=0

返回menu1()

N

i

Y

N

S==ti[i]

i++

Y

结束

m++

(m!

=0)&&(m%10==0)

按任意键继续进行

回车换行

调用函数printf_one()

inti,m

开始

Y

(7)Search_end函数

清屏(cls)

输入要到达的地方

i=0

返回menu()

i

Y

N

S==ti[i]

i++

结束

Y

m++

(m!

=0)&&(m%10==0)

按任意键继续进行

回车换行

调用函数printf_one(i)

开始

(8)search函数

inti,k

k=-1

i

输入起飞,降落地点和时间

清屏(cls)

i=0

Y

k==-1

N

i++

Y

Y

输出“NOexist!

strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].data)==0

N

返回search()=-1

返回search()=k

跳出(break)

调用printf_one(k)

k=i

结束

Y

(9)voidmenu1函数

结束

menu()

serch_end()

search_time()

order()

w1=0

w1=1

清屏(cls)

intn,w1

NY

NY

NY

YY

YY

YY

YY

n=4

n=3

n=2

n=1

输出n

NY

YY

while(w1==1)

NY

YY

输出n(1-4)

输出目录2

ifn<1||n>4

开始

(10)book函数

开始

返回menu()

i=search()

清屏(cls)

inti

N

Y

N

Y

结束

ti[i].num>=ti[i].max

i!

=-1

输出“欢迎进入售票窗口”

ti[i].num++

输出“该航班不存在!

输出“该趟航班票已售完”

输出

“订票成功”

开始

(11)back函数

inti,k=-1

输出

“NOexist!

输出

“退票成功!

清屏(cls)

ti[i].num--

结束

menu()

k=i

i=0

N

Y

N

Y

N

Y

strcmp(s.ID,ti[i].ID)==0

输入

“输入航班代号”

输入

“欢迎进入退票窗口”

k==-1

i

i++

调用printf_one(k)

开始

(12)save函数

结束

intw=1,FILE*fp,i

 

输出“Cannotopenfile”

清屏(cls)

返回menu()

(fp=fopen("\\ticket.txt","wt"))==NULL

Y

N

输出“filewriteerror”

输出“filesaveok!

N

Y

Y

N

调用fclose(fp)

Y

w==1

N

i++

w=0

fwrite(&ti[i],sizeof(structplane),1,fp)!

=1plane),1,fp)!

=1

i

i=0

 

load

n++

开始

函数

(13)

FILE*fpinti,w=1

i++

fread(&ti[i],sizeof(structplane),1,fp)

Y

N

!

feof(fp)

清屏(cls)

N

n=n-1

fclose(fp)

Y

w==1

输出“Loadfileok!

输出“Cannotopenfile”

N

i=0

n=0

Y

结束

返回

w=0

(fp=fopen("\\ticket.txt","rt"))==NULL

(fp=fopen("\\ticket.txt","rt"))==NULL

FILE*fpinti,w

返回menu()

六、程序运行效果图

1---浏览所有输入航班

2---订票

3---退票

4---航班操作

七、总结

通过对C语言课程设计的学习,自己有很大的收获,将<>应用得到了实践,将所学的各种语句紧密的联系起来,得到了融汇和贯通,使我对C语言有了更深一步的学习和认识。

C语言课程设计更能明显的体现出我们对C语言学习掌握的熟练程度。

因为我们只有在读懂程序的情况下才能更好的做出流程图。

经过一个多星期的上机实践学习,我觉得要想学好它则重在实践,要通过不断地上机操作才能更好的掌握理解。

在学习的同时,也发现了自己学习的许多不足之处,比如,对读程序还不够熟练,对有些语句还没有掌握,再者,自己在指法上还不行,打字过慢而直接影响阅读速度,特别是在运行程序时所出现的错误很难顺利的去找出来并加以纠正,等等。

这些通过学习也有所改进。

通过实践的学习,我认识到学好计算机要重视实践操作,不仅是学习C语言,还是其他语言,以及其他的计算机方面的知识都要重在实践。

所以以后在学习过程中,我会更加注重实践操作,以更好的学习好专业课。

通过对《飞机订票系统》的学习设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法,把死板的课本知识变得生动有趣,激发了我们学习的积极性。

经过自己设

计的流程图将知识表示出来,再加上老师精心的讲解和辅导,加深了我们对理论知识

理解。

课程设计中程序比较复杂,在调试时必须仔细认真,这是最深的感受!

对我们更是一种锻炼!

课程设计的学习,在找出各自不懂和不足积累经验的同时,为我们以后的学习提出了更明确目的和要求:

不仅要读懂程序,而且更重要的是能会熟练地编写程序进而去设计程序。

八、参考文献

李春葆,c语言程序设计教程(第二版),清华大学出版社,2011。

九、程序清单

#include

#include

#include

#defineN1000

typedefstructplane

{

charID[10];/*航班代号*/

charBePlace[10];/*飞机起飞地点*/

charEnPlace[10];/*飞机降落终点*/

chardata[15];/*飞机起飞时间*/

intmax;/*飞机最大乘客人数*/

intprice;/*飞机票价*/

intnum;/*飞机已售票数*/

}PLANE;

PLANEti[N];

intn;/*当前的航班数目*/

voidmenu();

voidmenu1();

voidinput(inti)

{

printf("请输入航班代号:

\n");

scanf("%s",ti[i].ID);

printf("请输入起飞地点:

\n");

scanf("%s",ti[i].BePlace);

printf("请输入降落地点:

\n");

scanf("%s",ti[i].EnPlace);

printf("请输入起飞时间:

\n");

scanf("%s",ti[i].data);

printf("请输入航班的最大载客人数:

\n");

scanf("%d",&ti[i].max);

printf("请输入航班的票价:

\n");

scanf("%d",&ti[i].price);

ti[i].num=0;

}

 

voidenter()

{

inti;

system("cls");

printf("请输入航班的数目(0-%d)?

:

",N);

scanf("%d",&n);/*要输入的记录个数*/

printf("\n请输入数据\n\n");

for(i=0;i

{

printf("\n请输入第%d航班记录.\n",i+1);

input(i);/*调用输入函数*/

}

getchar();

menu();

}

 

voidprintf_one(inti)/*显示一个记录的函数*/

{

printf("%11s%6s%10s%6s%6d%6d%6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);

}

 

voidbrowse()

{

inti;

system("cls");

puts("\n--------------------------------------------------------------------");

printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");

for(i=0;i

{

printf_one(i);

printf("\n");

}

getchar();

getchar();

menu();

}

voidorder()/*排序模块(按平均成绩)*/

{

inti,j;

structplanes;

system("cls");

for(i=0;i

{

for(j=i+1;j

if(strcmp(ti[i].data,ti[j].data)>0)

{

s=ti[i];

ti[i]=ti[j];

ti[j]=s;}

}

browse();

}

 

voidsearch_time()

{

inti,m=0;

structplanes;

system("cls");

printf("\n\nEnterthetime:

");

scanf("%s",s.data);/*输入出发的时间*/

puts("\n--------------------------------------------------------------------");

printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");

for(i=0;i

{

if(strcmp(s.data,ti[i].data)==0)

{

m++;

if((m!

=0)&&(m%10==0))/*目的是分屏显示*/

{

printf("\n\nPressanykeytocontiune...");

getchar();

puts("\n\n");

}

printf_one(i);

printf("\n");

/*调用显示一个记录的函数*/

}

}

puts("\n--------------------------------------------------------------------");

getchar();/*按任意健*/

getchar();

menu1();

}

 

voidserch_end()

{

inti,m=0;

structplanes;

system("cls");

printf("\n\nEntertheendPlace:

");

scanf("%s",s.EnPlace);/*输入要到达的地方*/

puts("\n--------------------------------------------------------------------");

printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");

for(i=0;i

{

if(strcmp(ti[i].EnPlace,s.EnPlace)==0)

{

m++;

if((m!

=0)&&(m%10==0))/*目的是分屏显示*/

{

printf("\n\nPressanykeytocontiune...");

getchar();

puts("\n\n");

}

printf_one(i);

printf("\n");

/*调用显示一个记录的函数*/

}

}

puts("\n--------------------------------------------------------------------");

getchar();/*按任意健*/

getchar();

menu1();

}

 

voidmenu1()

{

intn,w1;

do

{

system("cls");/*清屏*/

puts("\t\t\t\t飞机售票操作!

\n\n");

puts("\t\t*********************MENU*********************\n\n");

puts("\t\t\t\t1.按照时间排序");

puts("\t\t\t\t2.按照时间查找航班");

puts("\t\t\t\t3.按照地点查找航班");

puts("\t\t\t\t4.返回主菜单");

puts("\n\n\t\t**********************************************\n");

printf("Choiceyournumber(1-4):

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)/*对选择的数字作判断*/

{

w1=1;

printf("yourchoiceisnotbetween1and4,Pleaseinputagain:

");

getchar();

getchar();

}

elsew1=0;

}while(w1==1);

/*选择功能*/

 

switch(n)

{

case1:

order();break;

case2:

search_time();break;

case3:

serch_end();break;

case4:

menu();break;

}

}

 

intsearch()/*查找模块*/

{

inti,k;

structplanes;

k=-1;

system("cls");

printf("\n\n请输入要订票的起飞地点:

");

scanf("%s",s.BePlace);/*输入要到达的地方*/

printf("\n\n请输入要订票的降落地点:

");

scanf("%s",s.EnPlace);

printf("\n\n请输入要订票的起飞时间:

");

scanf("%s",s.data);/*输入出发的时间*/

for(i=0;i

{

if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].data)==0)

{

k=i;/*找到要修改的记录*/

printf_one(k);

break;/*调用显示一个记录的函数*/

}

}

if(k==-1)

{

printf("\n\nNOexist!

");

return-1;

}

else

returnk;

}

 

voidbook()

{

inti;

system("cls");

printf("欢迎进入售票窗口!

\n");

i=search();

if(i!

=-1)

{

if(ti[i].num>=ti[i].max)

{

printf("\n该趟航班票已售完!

");

}

else

{

ti[i].num++;

printf("\n订票成功!

\n");

}

}

else

printf("该航班不存在!

\n");

getchar();

getchar();/*按任意健*/

menu();

}

 

voidback()

{

inti,k=-1;

structplanes;

system("cls");

printf("欢迎进入退票窗口!

\n");

printf("\n\n输入航班代号:

");

scanf("%s",s.ID);/*输入要到达的地方*/

for(i=0;i

{

if(strcmp(s.ID,ti[i].ID)==0)

{

k=i;/*找到要修改的记录*/

printf_one(k);

break;/*调用显示一个记录的函数*/

}

}

if(k==-1)

{

printf("\n\nNOexist!

");

}

else

{

ti[i].num--;

printf("\n退票成功!

\n");

}

getchar();/*按任意健*/

getchar();/*按任意健*/

menu();

}

 

voidsave()

{

intw=1;

FILE*fp;

inti;

system("cls");

if((fp=fopen("\\ticket.txt","wt"))==NULL)/*以输出打开方式,在此前的记录被覆盖*/

{

printf("\nCannotopenfile\n");

return;

}

for(i=0;i

if(fwrite(&ti[i],sizeof(structplane),1,fp)!

=1)

{

printf("filewriteerror\n");

w=0;

}

if(w==1)

{

printf("filesaveok!

\n");

}

fclose(fp);

getchar();

getchar();

menu();

}

 

voidload()

{

FILE*fp;

inti,w;

w=1;

system("cls");

if((fp=fopen("\\ticket.txt","rt"))==NULL)

{

printf("\nCannotopenfile\n");

w=0;

return;

}

n=0;

for(i=0;!

feof(fp);i++)

{

fread(&ti[i],sizeof(structplane),1,fp);

n++;

}

n=n-1;

fclose(fp);

if(w==1)

printf("Loadfileok!

");

getchar();

getchar();

menu();

}

 

voidmenu()

{

intn,w1;

do

{

system("cls");/*清屏*//*清屏*/

puts("\t\t\t\t飞机售票管理系统!

\n\n");

puts("\t\t*********************MENU*********************\n\n");

puts("\t\t\t\t1.输入新航班");

puts("\t\t\t\t2.浏览");

puts("\t\t\t\t3.航班操作");

puts("\t\t\t\t4.

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

当前位置:首页 > 医药卫生 > 基础医学

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

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