c语言航班信息查询系统实验报告.docx
- 文档编号:14181817
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:22
- 大小:210.26KB
c语言航班信息查询系统实验报告.docx
《c语言航班信息查询系统实验报告.docx》由会员分享,可在线阅读,更多相关《c语言航班信息查询系统实验报告.docx(22页珍藏版)》请在冰点文库上搜索。
c语言航班信息查询系统实验报告
软件学院大作业任务书
题目:
航班信息查询系统
专业:
班级:
姓名:
学号:
完成人数:
起讫日期:
任课教师:
职称:
讲师
部分管主任:
完成时间:
说明
1.本任务书由任课教师填写后,下达到学生。
2.任务完成后,任课教师需填写小结表。
3.任务书、学生成绩与学生完成后的大作业(纸质和电子两种)一并报送各教学研究部审核后转教务办。
4.另附一份全班大作业总结
大作业的要求和内容:
(包括题目选择范围、技术要求、递交时间、考核方法等)
请根据本学期所学C语言的内容,完成一个完整的C语言程序,程序的名称、内容和功能,可以自己根据需要进行自定义,但不能过于简单,代码行数最低要求在200行以上,且所设计的程序满足如下要求:
1.要求采用结构化程序设计;
2.程序中要具备结构体类型的数据操作;
3.程序中要具备文件读取和写入的操作;
4.要求程序具备简单的菜单功能,根据用户的输入,执行相应的操作;
5.在菜单界面,必须显示程序的名称、版本信息,开发者的名字、班级、学号等信息。
最终提交的作业,除提交完整的程序工程代码外,还必须以大作业报告的形式说明程序的流程、结构以及设计、实现过程。
作业评分将以完成的程序质量和复杂程度为基础,并根据大作业报告进行综合评分。
教师小结:
成绩:
教师签名:
教研部负责人:
学生姓名:
NANCHANGUNIVERSITY
高级语言程序设计课程设计
题目:
航班信息查询系统
学院:
专业:
班级:
完成人数:
成员:
起讫日期:
任课教师:
完成时间:
填表日期:
一、需求分析
1.1项目介绍
一个简易的航班信息查询系统,将航班信息录入进去,就可以查询到航班的信息
1.2功能需求
1.所有航班信息
2.航班查询
3.输入新的航班信息
4.删除航班信息
二、系统分析
2.1本程序需解决的关键技术问题
使用了struct结构体
多次使用了if语句for循环语句
用到了指针的内容
2.2程序流程
1,了解问题。
要解决问题,必须先了解每个细节。
2,确定解决问题的流程,确认输入输出内容即内部需要做的操作。
输入:
用户的选择指令。
输出:
程序的运行结果。
操作:
对信息读入,存储,删除
3,设计操作算法。
得出数据流图。
对每块的操作流程做设计。
如何对信息读入,存储,删除等。
4编写代码。
将算法实体化,形成C代码。
5测试并解决问题。
编译运行,尝试输入多组数据,测试结果是否与预期相同。
如果不同,那么查找问题并修改代码。
最终形成合格的程序。
三、程序设计与实现
3.1程序设计
#include
#include
#include
#include
#defineN15
#defineM20
#defineLENsizeof(structfly)
typedefstructfly{
intno;/*航班号*/
charstartpoint[M];
charfinalpoint[M];
intbanqi[M];
charstartime[M];
charfinaltime[M];
chartipe[M];
floatprice;
};
structflyf[N];
voidin();
voidall();
voidshow(inti);
voidorder(int);/*排序*/
voidfind();/*查询系统*/
voidsearch();/*编号查询系统*/
voidmenu();
voidstartpoint();/*起点站查询系统*/
voidfinalpoint();/*达到站查询系统*/
voidstartime();/*起点时间查询系统*/
voidfinaltime();/*到达时间查询系统*/
intmain()
{
intn;
menu();
scanf("%d",&n);
while(n)
{
switch(n)
{
case1:
all();
break;
case2:
find();
break;
case3:
in();
break;
default:
break;
}
getch();
menu();
scanf("%d",&n);
}
}
voidmenu()
{
system("cls");
printf("\n\n\n\n\n");
printf("\t\t|--------------航班信息查询系统----------------|\n");
printf("\t\t|0.退出|\n");
printf("\t\t|1.所有航班|\n");
printf("\t\t|2.航班查询|\n");
printf("\t\t|3.输入新的航班信息|\n");
printf("\t\t|4.删除航班信息|\n");
printf("\t\t|----------------------------------------------|\n\n");
printf("\t\t\t选择(0-4):
______");
}
voidall()
{
inti,m=0;
charch[2];
FILE*fp;
if((fp=fopen("data","ab+"))==NULL)
{
printf("不能打开文件\n");
return;
}
while(!
feof(fp))//feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1
{
if(fread(&f[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
if(m==0)
printf("没有航班记录\n");
else
{
system("cls");
/*system就是调用DOS命令,CLS命令的意思是清除屏幕上所有的文字*/
for(i=0;i show(i); } printf("按任意键返回菜单"); } voidin() { intx,i,m=0; charch[2]; FILE*fp; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp))//feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1 { if(fread(&f[m],LEN,1,fp)==1) m++; } fclose(fp); if((fp=fopen("data","wb"))==NULL) { printf("不能打开文件\n"); return; } for(i=0;i fwrite(&f[i],LEN,1,fp); printf("是否输入新的航班信息? 输入请按'Y'否则按任意键----"); scanf("%s",ch); while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("编号--------"); scanf("%d",&x); for(i=0;i if(f[i].no==x) { printf("该记录已经存在! 按任意键返回菜单\n"); fclose(fp); return; } f[m].no=x; printf("起点站-----"); scanf("%s",&f[m].startpoint); printf("终点站-----"); scanf("%s",&f[m].finalpoint); printf("班期-------"); scanf("%s",&f[m].banqi); printf("起飞时间---"); scanf("%s",&f[m].startime); printf("到达时间---"); scanf("%s",&f[m].finaltime); printf("飞机型号---"); scanf("%s",&f[m].tipe); printf("价格-------"); scanf("%f",&f[m].price); printf("是否保存? 输入请按'Y'否则按任意键----"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { if(fwrite(&f[m],LEN,1,fp)! =1) { printf("不能保存\n"); getch(); } else { printf("编号为%d的航班信息已经保存\n",f[i].no); m++; } } printf("是否继续,继续请按--Y--,否则按任意键"); scanf("%s",ch); } fclose(fp); printf("OK"); } voidfind()/*查询系统*/ { system("cls"); printf("\n\n\n\n\n"); printf("\t\t|----------------航班信息查询------------------|\n"); printf("\t\t|0.返回菜单|\n"); printf("\t\t|1.航班号查询|\n"); printf("\t\t|2.起点站查询|\n"); printf("\t\t|3.到达站查询|\n"); printf("\t\t|4.起飞时间查询|\n"); printf("\t\t|5.到达时间查询|\n"); printf("\t\t|----------------------------------------------|\n\n"); printf("\t\t\t选择(0-5): ______"); intn; scanf("%d",&n); if(n<0||n>5)printf("输入错误! "); elseswitch(n) { case0: return; case1: search(); break; case2: startpoint(); break; case3: finalpoint(); break; case4: startime(); break; case5: finaltime(); break; default: break; } } voidsearch()/*编号查询系统*/ { FILE*fp; intsnum,i,m=0,x=0; charch[2]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; if(m==0) { printf("没有记录"); return; } printf("请输入编号----"); scanf("%d",&snum); for(i=0;i if(snum==f[i].no) { show(i); x++; } if(x==0)printf("没有相关的记录\n"); fclose(fp); return; } voidstartpoint()/*起点站查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入起点站----"); scanf("%s",&snum); for(i=0;i { if(strcmp(f[i].startpoint,snum)==0) { show(i); } else printf("没有相关的记录\n"); return; } } voidfinalpoint()/*到达站查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入到达站----"); scanf("%s",&snum); for(i=0;i if(strcmp(f[i].finalpoint,snum)==0) { show(i); continue; } else printf("没有相关的记录\n"); return; } voidstartime()/*起点时间查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入起点时间----"); scanf("%s",&snum); for(i=0;i if(strcmp(f[i].startime,snum)==0) { show(i); continue; } else printf("没有相关的记录\n"); return; } voidfinaltime()/*达到时间查询系统*/ { FILE*fp; inti,m=0; charsnum[M]; if((fp=fopen("data","ab+"))==NULL) { printf("不能打开文件\n"); return; } while(! feof(fp)) if(fread(&f[m],LEN,1,fp)==1); m++; fclose(fp); if(m==0) { printf("没有记录"); return; } printf("请输入到达时间----"); scanf("%s",&snum); for(i=0;i if(strcmp(f[i].finaltime,snum)==0) { show(i); continue; } else printf("没有相关的记录\n"); return; } voidshow(inti) { printf("航班编号为%d的航班信息如下: \n",f[i].no); printf("起点站----------------%s\n",f[i].startpoint); printf("终点站----------------%s\n",f[i].finalpoint); printf("起飞时间--------------%s\n",f[i].startime); printf("到达时间--------------%s\n",f[i].finaltime); printf("班期------------------%s\n",f[i].banqi); printf("航班型号--------------%s\n",f[i].tipe); printf("价格------------------%5.2f\n",f[i].price); printf("\n\n\n\n"); } 四、 系统测试 五、个人小结 C语言是面向过程的语言,整体程序都是由函数组成的,所有的执行代码都应该位于函数内部,C语言的程序是从main()函数开始执行运行的,也是从main()函数结束运行的,把几个概念理解清楚,在初始学习阶段就不会混乱。 还有一点程序的语句是由顺序,分支和循环三种结构构成的。 通过这次程序设计,我们增加了对软件技术的了解,在学习C语言的过程中也学到和巩固了许多计算机应用基本知识。 在具体操作中对所学过的C语言理论知识得到巩固加强,达到实训目的,也发现了自己的不足之处,为以后我们学习C语言奠定基础,同时体会到C语言具有的语句简洁、使用灵活、执行效率高等特点。 通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己逻辑思维能力,培养了分析问题、解决问题的能力。 六、参考文献 [1]c语言程序设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 航班信息 查询 系统 实验 报告