C语言课程设计报告飞机订票系统.docx
- 文档编号:28269965
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:14
- 大小:119.64KB
C语言课程设计报告飞机订票系统.docx
《C语言课程设计报告飞机订票系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告飞机订票系统.docx(14页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告飞机订票系统
C语言课程设计
题目:
飞机订票系统
专业:
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
学号:
。
。
。
。
。
。
。
。
。
。
。
:
。
。
。
。
。
。
。
任课教师:
。
。
。
。
。
。
。
。
C语言课程设计报告
一、课程设计报告正文
(1)课程设计题目的原文;
假定民航机场共有n个航班:
航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。
试设计一民航订票系统,使之能提供下列服务:
航班信息录入功能(文件保存)
完成航班信息浏览功能;
查询航线(至少一种查询方式)。
(2)题目的分析(需求分析);
任务:
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中)
浏览:
航班信息浏览功能需要提供显示操作;
查询:
可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。
(3)整体设计与模块划分;
根据需求分析,该程序可分为以下四大模块:
(4)代码设计;
包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析等等;
二、航班基本信息输入模块
航班信息录入函数:
航班信息浏览函数:
[流程图]显示信息
查询模块:
分析:
基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。
在查询小模块中采用了直接查找的方法。
本模块可以通过多种查询方式进行完善。
这是本程序没有做的地方。
[流程图]
(一)核心源程序清单和执行结果:
a)源程序清单:
#include
#include
#include
#include
#include
#include
#defineN1000//定义最多的航班数
#definePRINT"%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count//宏定义输出格式
structair//定义结构体数组
{
intnum;//定义航班号
charstart[20];//航班起始站
charover[20];//终点站
chartime[10];//飞行时间
intcount;//机票数量
}s[N];
inti,m=0;//定义全局变量
charii[10];
voidadd();//函数声明增加航班信息函数
voidprint();//显示航班信息
voidsearch();//查找航班信息
voidread();//读取文件
voidsave();//保存文件
voidoutput();//输出格式
voidchushihua();//系统初始化
voidbuild();//建立数据文件
voidmain()//主函数
{
intj;
chushihua();//系统初始化判断是否存在原始数据文件
printf("O(^_^)O欢迎使用飞机订票系统O(^_^)O\n");//打印出系统主界面
do
{
printf("================================================================================");
printf("1.增加航班信息\n"
"2.浏览航班信息\n"
"3.查找航班信息(按航班号)\t\t\n"
"0.退出\n");
printf("================================================================================");
printf("请在0-3中选择以回车键结束:
");
scanf("%d",&j);
switch(j)
{
case1:
add();//调用增加航班函数
break;
case2:
print();//调用显示模块
break;
case3:
search();//调用查找模块
break;
case0:
//退出系统
save();
printf("谢谢使用,再见!
(^_^)/~~\n");
break;
}
}while(j!
=0);//判断是否调用其他函数
}
voidchushihua()//定义系统初始化函数
{
if(access("hangban.dat",0))
{
build();
}
else
read();
}
voidbuild()//定义建立数据文件函数
{
FILE*fp;//定义文件指针
if((fp=fopen("hangban.dat","wb"))==NULL)//打开文件并判定是否出错
{
printf("创建文件失败!
");//打印出错提示
getchar();
return;
}
printf("请依次输入航班信息(以回车键结束):
\n");//打印提示信息
printf("--------------------------------------------------------------------------\n");
for(i=0;i { printf("请输入航班号: "); scanf("%d",&s[i].num);//输入航班号 printf("请输入起始站: "); scanf("%s",s[i].start);//输入起始站 printf("请输入终点站: "); scanf("%s",s[i].over);//输入终点站 printf("请输入时间(星期几): "); scanf("%s",s[i].time);//输入时间 printf("请输入机票数: "); scanf("%d",&s[i].count);//输入机票数 fwrite(&s[i],sizeof(structair),1,fp); m++; printf("添加完毕,是否继续添加? 请键入y或n以回车键结束: "); scanf("%s",ii); if(strcmp(ii,"y")! =0)//判断是否继续添加航班信息 { fclose(fp);//关闭文件 return; } } } voidread()//定义读取文件函数 { FILE*fp; if((fp=fopen("hangban.dat","r"))==NULL) { printf("创建文件失败! "); getchar(); return; } i=0; while(! feof(fp)) { fread(&s[i],sizeof(structair),1,fp);//逐块读取数据 i++; m++;//计算存在航班数 } m--; fclose(fp); } voidsave()//定义保存函数 { FILE*fp; if((fp=fopen("hangban.dat","wb"))==NULL) { printf("创建文件失败! "); getchar(); return; } for(i=0;i fwrite(&s[i],sizeof(structair),1,fp); fclose(fp); } voidadd()//定义增加航班信息函数 { do{ printf("请依次输入您要增加的航班信息(以回车键结束): \n");//打印提示信息 printf("--------------------------------------------------------------------------\n"); printf("请输入航班号: "); scanf("%d",&s[m].num);//读取航班号 printf("请输入起始站: "); scanf("%s",s[m].start);//读取起始站 printf("请输入终点站: "); scanf("%s",s[m].over);//读取终点站 printf("请输入时间: "); scanf("%s",s[m].time);//读取时间 printf("请输入机票数: "); scanf("%d",&s[m].count);//读取机票数 m++; printf("添加完毕,是否继续添加? 请键入y或n以回车键结束: "); scanf("%s",ii); } while(! strcmp(ii,"y"));//判断是否继续添加 } voidoutput()//定义输出格式函数 { printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n");//信息标题 for(i=0;i printf(PRINT);//打印出信息 } voidprint()//定义显示航班信息函数 { printf("\n目前我们有如下航班: \n"); output();//调用输出格式函数 printf("\n请按回车键返回上层菜单"); getchar(); getchar(); } voidsearch()//定义查询函数 { intn; do { printf("\n请输入航班号: "); scanf("%d",&n);//输入查询的航班号 for(i=0;i { if(s[i].num==n)//按航班号判定输出条件 { printf("\n您所查找的航班信息为: \n"); printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n\n"); printf(PRINT);//显示信息 printf("\n查询完毕,按回车键继续"); getchar(); getchar(); return; } } printf("\n对不起,没有您需要的信息! \n"); printf("是否重新查找? 请键入y或n以回车键结束"); scanf("%s",ii); } while(! strcmp(ii,"y"));//判定是否重新查找 } 1)第一次运行程序(输入初始数据) 界面提示输入原始数据: 请输入航班号→请输入起始站→请输入终点站→请输入飞行时间→请输入机票数。 我按照提示一次输入了4个航班信息后按提示输入“n”则不再继续输入,系统显示出了主菜单界面。 接着按0退出程序,显示“谢谢使用,再见。 ” 图表1—主菜单界面 1)第二次运行程序(进行航班信息的浏览) 运行程序就不再显示输入航班信息了,而是直接显示出了主菜单界面(如图表1)。 在提示中输入“2”→显示航班信息。 输出如下航班信息(如图表2),确实显示出输入的4个航班信息。 图表2—显示航班信息 1)查询航班信息 在主菜单界面输入3→请输入航班号→输入“1010”→显示出所查找的信息(如图表3) 图表3—查询航班信息 2)航班排序 在主菜单界面输入4→按照提示输入“2”(按航班号从大到小排序)→显示出排序后的航班信息(如图表4) 图表4—航班排序 三、总结 经过十天的程序设计,基本掌握程序设计的基本方法和步骤。 在这十天中悟出: 程序设计要求有一定的基础是必须的,在设计过程中要大胆的发挥自己的想象力,要敢于不断的创新,要敢于尝试,我认为这也是一种进步的好方法。 回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在十天的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。 在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。 仍存在的问题: 系统只是按照题目的要求做的,虽然是很好地完成了题目要求的所有模块,但是在整个编程过程中我们也曾尝试增加我们感兴趣的功能,但是失败了。 四、参考文献 《C++程序设计》,谭浩强著,清华大学出版社,2004年 《C++程序设计》,钱能著,清华大学出版社,2000年 《C++Prime》(第三版),stanleyBlippman著,潘爱民译,中国电力出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 飞机 订票 系统