航空售票管理系统.docx
- 文档编号:24123414
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:31
- 大小:43.30KB
航空售票管理系统.docx
《航空售票管理系统.docx》由会员分享,可在线阅读,更多相关《航空售票管理系统.docx(31页珍藏版)》请在冰豆网上搜索。
航空售票管理系统
《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语言程序设计教程(第二版),清华大学出版社,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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航空 售票 管理 系统