C语言课程设计报告飞机订票系统.docx
- 文档编号:7461565
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:19
- 大小:18.95KB
C语言课程设计报告飞机订票系统.docx
《C语言课程设计报告飞机订票系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告飞机订票系统.docx(19页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告飞机订票系统
C语言课程设计
题目:
飞机订票系统
专业:
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
学号:
。
。
。
。
。
。
。
。
。
。
。
姓名:
。
。
。
。
。
。
。
任课教师:
。
。
。
。
。
。
。
。
C语言课程设计报告
一、课程设计报告正文
(1)课程设计题目的原文;
假定民航机场共有n个航班:
航班号、起始站、终点站、飞机号、飞机时间、
乘员定额、余票量。
试设计一民航订票系统,使之能提供下列服务:
。
(2)题目的分析(需求分析);
任务:
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中)
浏览:
航班信息浏览功能需要提供显示操作;
查询:
可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的
情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选
择菜单以实现功能选择。
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、
预售票总数、已售票数。
(3)整体设计与模块划分;
根据需求分析,该程序可分为以下四大模块:
飞机订票系统
输入模块显示模块查询模块退出模块
(4)代码设计;
包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设
计和分析等等;
二、航班基本信息输入模块
航班信息录入函数:
开始
文件打开否
输入信息
输出错误信息
将信息输出到磁盘
是否继续
调用printf_back()函数
结束
航班信息浏览函数:
[流程图]显示信息
开始
文件打开输出错误信息
查找航班信息
是否查找到
删除操作
输入信息
是否继续
结束
查询模块:
分析:
基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。
在查询小模块中采用了直接查找的方法。
本模块可以通过多种查询方式进行完善。
这是本程序没有做的地方。
[流程图]
开始
文件打开
输出错误信息
查询方式
此处可以
航班号
完善其它
查询方式
是否继续
结束
(一)核心源程序清单和执行结果:
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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 飞机 订票 系统