航空售票系统.docx

上传人:b****1 文档编号:13370366 上传时间:2023-06-13 格式:DOCX 页数:27 大小:225KB
下载 相关 举报
航空售票系统.docx_第1页
第1页 / 共27页
航空售票系统.docx_第2页
第2页 / 共27页
航空售票系统.docx_第3页
第3页 / 共27页
航空售票系统.docx_第4页
第4页 / 共27页
航空售票系统.docx_第5页
第5页 / 共27页
航空售票系统.docx_第6页
第6页 / 共27页
航空售票系统.docx_第7页
第7页 / 共27页
航空售票系统.docx_第8页
第8页 / 共27页
航空售票系统.docx_第9页
第9页 / 共27页
航空售票系统.docx_第10页
第10页 / 共27页
航空售票系统.docx_第11页
第11页 / 共27页
航空售票系统.docx_第12页
第12页 / 共27页
航空售票系统.docx_第13页
第13页 / 共27页
航空售票系统.docx_第14页
第14页 / 共27页
航空售票系统.docx_第15页
第15页 / 共27页
航空售票系统.docx_第16页
第16页 / 共27页
航空售票系统.docx_第17页
第17页 / 共27页
航空售票系统.docx_第18页
第18页 / 共27页
航空售票系统.docx_第19页
第19页 / 共27页
航空售票系统.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

航空售票系统.docx

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

航空售票系统.docx

航空售票系统

**理工大学

《C语言程序设计》

 

题目航空售票管理程序

 

指导教师:

**

姓名:

**

学号:

2011070**

班级:

计算机科学与技术111

专业:

计算机科学与技术

地点:

机房201

时间:

2012-06-25至2012-06-30

一、内容

航空票务管理程序:

本程序主要实现了查询航班、购买机票、退订机票。

通过选项提示来操作程序实现相关的功能。

二、上机环境

操作系统:

Windows7

开发工具:

VC6.0

三、函数调用关系图

4退出

1查询

3退票

2买票

四、各函数功能说明

voidmain()主函数

voidmenu(structflt*pr,structticket*pk);显示主菜单的函数

voidcheck(structflt*pr,structticket*pk);查询航班的函数

voidbuy(structflt*pr,structticket*pk);购买机票的函数

voidreturnt(structflt*pr,structticket*pk);退订机票的函数

五、算法描述

算法描述:

#include

#include

#include

#defineNUM100

structflt//记录各个航班的信息

{charairport[2][10];//起点、终点

charFltno[20];//航班号

chardate[20];

charTime1[100],Time2[100];//起飞时间、到达时间

intTounumb,Gongnumb,Jingnumb;//三个不同类型的机票的数量

intTouprice,Gongprice,Jingprice;//三种机票的价格

};

structticket//机票信息

{charbuyer[20];//购票者姓名

charID[20];//购买者身份证号

charsource[20],dest[20];//始点、终点

charfltno;//航班号

chartime1,time2;//起飞时间、到达时间

inttounumb,gongnumb,jingnumb;//三个不同类型的机票的数量

floattouprice,gongprice,jingprice;//三种机票的价格

};

voidmenu(structflt*pr,structticket*pk);//显示主菜单的函数

voidcheck(structflt*pr,structticket*pk);//查询航班的函数

voidbuy(structflt*pr,structticket*pk);//购买机票的函数

voidreturnt(structflt*pr,structticket*pk);//退订机票的函数

voidmain()//主函数

{

structticketcheque;//定义结构体变量

structticket*pk;//定义结构体指针

structfltairportinfor[NUM]={//对结构体进行初始化

{"qingdao","beijing","f111",

"2012.05.01","2012年05月01日12时00分",

"2012年05月01日15时00分",100,100,100,1000,800,500},

{"qingdao","shanghai","f112","2012.05.01",

"2012年05月01日12时00分",

"2012年05月01日16时00分",100,100,100,1000,800,500},

{"beijing","shanghai","f113","2012.05.01",

"2012年05月01日12时00分",

"2012年05月01日18时00分",100,100,100,1800,1500,1000}};

structflt*pr;//定义结构体指针

pr=airportinfor;//让指针pr指向airportinfor

pk=&cheque;//让指针pk指向cheque

menu(pr,pk);//调用菜单函数

}

voidmenu(structflt*pr,structticket*pk)//显示主菜单的函数

{inta;

printf("\n******************************************************************");

printf("\n\n-------欢迎来到青岛流亭机场--------\n");//输出菜单选项

printf("1,查询机票\n");

printf("2,购买机票\n");

printf("3,退订机票\n");

printf("4,退出程序\n");

printf("请输入序列号:

");

scanf("%d",&a);//输入选项

if(a==1)//判断是否查询机票

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

check(pr,pk);//调用查询机票的函数

menu(pr,pk);//调用菜单函数返回首页

}

elseif(a==2)//判断是否购买机票

buy(pr,pk);//调用购买机票的函数

elseif(a==3)//判断是否退订机票

returnt(pr,pk);//调用退订机票的函数

elseif(a==4)//判断是否退出程序

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

printf("谢谢使用!

\n");

printf("\n******************************************************************");

}

Else//输入不在1~4范围内重新输入

{system("cls");

printf("\n输入有误!

请重新输入!

");

menu(pr,pk);

}

}

voidcheck(structflt*pr,structticket*pk)//查询航班的函数

{

inti,flag=0;//i用于for循环flag作为标志

charsour[10],dest[10];//定义字符数组用于接收地址

charday[20];//定义字符数组用于接收输入的日期

printf("请输入起点:

");

scanf("%s",sour);

printf("请输入终点:

");

scanf("%s",dest);

printf("请输入日期:

");

scanf("%s",day);

if(day[4]!

=46||day[7]!

=46)//确保日期输入正确

{

do

{printf("日期格式输入有误,请重新输入!

(年月日之用点“.”隔开)\n");

printf("请输入日期:

");

scanf("%s",day);

}while(day[4]!

=46&&day[7]!

=46);

}

for(i=0;i

if(strcmp(pr[i].airport[0],sour)==0)

if(strcmp(pr[i].airport[1],dest)==0)

if(strcmp(pr[i].date,day)==0)

{

strcpy(pk->source,pr[i].airport[0]);printf("\n航班:

%s\n",pr[i].Fltno);//查找成功后输出航班信息

printf("出发地-------->目的地\n");

printf("%s-------->",pr[i].airport[0]);

printf("%s\n",pr[i].airport[1]);

printf("起飞时间%s\n",pr[i].Time1);

printf("到达时间%s\n",pr[i].Time2);

printf("头等舱公务舱经济舱\n");

printf("%d张%d张%d张\n",pr[i].Tounumb,pr[i].Gongnumb,pr[i].Jingnumb);

printf("%d元%d元%d元\n",pr[i].Touprice,pr[i].Gongprice,pr[i].Jingprice);

flag=1;

break;

}

if(flag==0)

{printf("\n对不起,未找得你要的航班!

\n");

strcpy(pk->source,"0");

return;

}

}

voidbuy(structflt*pr,structticket*pk)//购买机票的函数

{

intchoice;

intbuynumber;

system("cls");//清屏

printf("请输入您的姓名:

");//输入购买者信息

scanf("%s",pk->buyer);

printf("请输入您的身份证号:

");

if(strlen(pk->ID)!

=5)//判断输入的位数是否正确

do{printf("身份证位数有误!

请重新输入!

\n");

printf("请输入您的身份证号:

");

scanf("%s",pk->ID);

}while(strlen(pk->ID)!

=5);

scanf("%s",pk->ID);

check(pr,pk);//调用查询航班的函数

if(strcmp(pk->source,"0")==0)//查找失败返回首页

{

printf("未找到您要的航班!

\n");

menu(pr,pk);

}

Else//选择机票类型

{printf("\n请输入您购买类型(1.头等舱2.公务舱3.经济舱):

");

scanf("%d",&choice);

if(choice<1||choice>3)

Do//用于保证输入的选项有意义

{

printf("\n输入有误!

请重新输入!

\n");

printf("\n请输入您购买类型(1.头等舱2.公务舱3.经济舱):

");

scanf("%d",&choice);

}while(choice<1||choice>3);

printf("请输入您购买的数量:

");//输入购买的数量

scanf("%d",&buynumber);

if(buynumber==0)

menu(pr,pk);

else

switch(choice)

{case1:

if(pr->Tounumb>=buynumber)//判断机票是否足够

{

printf("\n购买成功!

返回首页!

");

pk->tounumb=buynumber;

pr->Tounumb-=buynumber;//改变机票剩余数

menu(pr,pk);

}

else

{

printf("\n机票已售完或不足!

返回首页!

");

menu(pr,pk);

}break;

case2:

if(pr->Gongnumb>=buynumber)//判断机票是否足够

{

printf("购买成功!

返回首页!

");

pk->gongnumb=buynumber;

pr->Gongnumb-=buynumber;//改变机票剩余数

menu(pr,pk);

}

else

{

printf("\n机票已售完或不足!

返回首页!

");

menu(pr,pk);

}break;

case3:

if(pr->Jingnumb>=buynumber)//判断机票是否足够

{

printf("\n购买成功!

返回首页!

");

pk->jingnumb=buynumber;

pr->Jingnumb-=buynumber;//改变机票剩余数

menu(pr,pk);

}

else

{

printf("\n机票已售完或不足!

返回首页!

");

menu(pr,pk);

}

}

}

}

voidreturnt(structflt*pr,structticket*pk)//退订机票的函数

{

inti,choice1,choice2,buynumber;

charsour[20];

chardest[20];

charday[20];

system("cls");

printf("你确定要退票吗?

1.是2.否");

scanf("%d",&choice1);

if(choice1<1||choice1>2)//用于保证输入的选项有意义

do

{

printf("\n输入有误!

请重新输入!

\n");

printf("你确定要退票吗?

1.是2.否");//确认是否退票

scanf("%d",&choice1);

}while(choice1<1||choice1>2);

if(choice1==1)

{printf("请输入起点:

");//输入要退机票的信息

scanf("%s",sour);

printf("请输入终点:

");

scanf("%s",dest);

printf("请输入起飞时的日期:

");

scanf("%s",day);

if(day[4]!

=46||day[7]!

=46)//确保日期输入正确

{

do

{printf("日期格式输入有误,请重新输入!

(年月日之用点“.”隔开)\n");

printf("请输入日期:

");

scanf("%s",day);

}while(day[4]!

=46&&day[7]!

=46);

}

for(i=0;i

if(strcmp(pr[i].airport[0],sour)==0)

if(strcmp(pr[i].airport[1],dest)==0)

if(strcmp(pr[i].date,day)==0)

{printf("\n请输入您机票类型(1.头等舱2.公务舱3.经济舱):

");

scanf("%d",&choice2);

if(choice2<1||choice2>3)//用于保证输入的选项有意义

Do

{

printf("\n输入有误!

请重新输入!

\n");

printf("\n请输入您机票类型(1.头等舱2.公务舱3.经济舱):

");

scanf("%d",&choice2);

}while(choice2<1||choice2>3);

printf("\n请输入您退票的数量:

");

scanf("%d",&buynumber);

if(buynumber==0)

menu(pr,pk);

else

switch(choice2)

{case1:

printf("\n退票成功!

返回首页!

");

pr->Tounumb+=buynumber;//修改余票数量

menu(pr,pk);

break;

case2:

printf("\n退票成功!

返回首页!

");

pr->Gongnumb+=buynumber;//修改余票数量

menu(pr,pk);

break;

case3:

printf("\n退票成功!

返回首页!

");

pr->Jingnumb+=buynumber;//修改余票数量

menu(pr,pk);

}

}

}

else

{system("cls");

menu(pr,pk);

}

六、程序运行效果图

开始进入程序:

当输入1时:

当输入2时:

当输入3时:

当输入4时:

7、总结

经过一周对C语言课程设计(航空票务管理程序)的研究主要有以下几点感受:

首先,C语言课程设计很好的反映了自己这一学期对C语言基础知识的掌握情况,让自己清醒的认识到自己的真实水平。

不动手不知道,自己亲自动手设计程序时才感觉到知识的不扎实。

有的知识虽然已经学过,但是用起来还是感觉有点模糊,这也算是给自己的一个警醒吧。

另外,编写程序时有些自己想要编写的功能用已学的知识不能实现,这样就要去上网或查阅课外书来学习一些其他的知识,我感觉这样很好。

这样不仅会拓宽自己的知识面,还会提高自己的自学能力。

同时,宿舍里的同学集体讨论如何去实现各种功能,各自发表看法彼此交流也是一种学习的过程。

最深刻的感受就是编写程序过程中的酸甜苦辣。

刚开始构思时漏洞百出,程序出错。

但是令人高兴的是通过不断的调试程序,不断的出错,然后不断的修改,从这过程中学到了一些调试程序的技巧。

虽然有些语句没有语法错误,但是如果语句顺序不对也会提示错误,例如errorC2143:

syntaxerror:

missing';'before'type'errorC2275:

'FILE':

illegaluseofthistypeasanexpression等错误提示。

经过痛苦又快乐的调试过程之后,当自己自如的运行着程序时成就感十足啊!

顿时感觉之前付出的一切值了,实在是值了。

总之,我感觉C语言课程设计的重要性不比C语言课堂差。

课程设计提高了我们的动手能力,我们能将课本上的死知识灵活地应用到生活当中,还有就是能够感受到十足的成就感,增加学习专业课的兴趣。

期待下次课程设计,爱课程设计!

八、参考文献

李春葆、增平、喻丹丹.C语言程序设计教程(第2版).清华大学出版社,2011

九、程序清单

#include

#include

#include

#defineNUM100

Structflt//记录各个航班的信息

{charairport[2][10];//起点、终点

CharFltno[20];//航班号

chardate[20];

CharTime1[100],Time2[100];//起飞时间、到达时间

intTounumb,Gongnumb,Jingnumb;//三个不同类型的机票的数量

intTouprice,Gongprice,Jingprice;//三种机票的价格

};

Structticket//机票信息

{charbuyer[20];//购票者姓名

CharID[20];//购买者身份证号

Charsource[20],dest[20];//始点、终点

Charfltno;//航班号

Chartime1,time2;//起飞时间、到达时间

inttounumb,gongnumb,jingnumb;//三个不同类型的机票的数量

floattouprice,gongprice,jingprice;//三种机票的价格

};

voidmenu(structflt*pr,structticket*pk);//显示主菜单的函数

voidcheck(structflt*pr,structticket*pk);//查询航班的函数

voidbuy(structflt*pr,structticket*pk);//购买机票的函数

voidreturnt(structflt*pr,structticket*pk);//退订机票的函数

Voidmain()//主函数

{

structticketcheque;

structticket*pk;

structfltairportinfor[NUM]={

{"qingdao","beijing","f111","2012.05.01","2012年05月01日12时00分","2012年05月01日15时00分",100,100,100,1000,800,500},

{"qingdao","shanghai","f112","2012.05.01","2012年05月01日12时00分","2012年05月01日16时00分",100,100,100,1000,800,500},

{"beijing","shanghai","f113","2012.05.01","2012年05月01日12时00分","2012年05月01日18时00分",100,100,100,1800,1500,1000}};

structflt*pr;

pr=airportinfor;

pk=&cheque;

menu(pr,pk);

}

voidmenu(structflt*pr,structticket*pk)//显示主菜单的函数

{inta;

printf("\n******************************************************************");

printf("\n\n-------------------欢迎来到青岛流亭机场-----------------------\n\n\n");

printf("1,查询机票\n");

printf("2,购买机票\n");

printf("3,退订机票\n");

printf("4,退出程序\n");

printf("请输入序列号:

");

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2