c航空管理系统解读.docx
《c航空管理系统解读.docx》由会员分享,可在线阅读,更多相关《c航空管理系统解读.docx(33页珍藏版)》请在冰豆网上搜索。
c航空管理系统解读
青岛理工大学
C++面向对象课程设计报告
院(系):
计算机工程学院
专业:
网络工程
学生姓名:
__
班级:
_网络092______ 学号:
2009070
题目:
航空管理系统_________
起迄日期:
___2012-6-26_ _____
设计地点:
青岛理工大学
指导教师:
李兰
完成日期:
2010年6月28日
目录
一、课题设计目的******************3
二、课程设计内容与实现的功能*************3
三、系统分析与设计******************3
四、系统测试与调试分析****************11
五、用户手册*********************12
6、程序清单*********************15
七、体会与自我评价******************25
八、参考文献*********************25
九、课程设计评价*******************25
一、课程设计目的
随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们出行越来越多,出行的方式也是百花齐放,作为空中重要的交通工具,飞机航空系统也在不断地得到优化,其中重要的一项就是飞机航空订票系统,因此好的订票系统关系着人们的日常出行方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而艰巨的任务,需要我们认真去完成。
1.更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
2.培养学生综合运用所学知识独立完成课题的能力。
3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
7.这个程序是对编程基本功的一个训练,对于初学C++语言的人,将分支、循环、数组、函数综合应用,而不仅限于编制独立的小程序,能够大大提高编程水平。
关键词:
C++,vc6.0.航空管理系统
二、课程设计内容与实现的功能
该系统写入了比较常用的几个功能,实现了航班信息的录入,查询,删除,订票和退票等功能。
三、系统分析与设计
1、系统分析
该系统写入了比较常用的几个功能,实现了航班信息的录入,查询,删除,订票和退票等功能。
方便的系统操作提示,系统维护性较好,更新和维护都比较方便,在方法上可以增加更多,构造更多的函数,
a)、实验完成了题目的要求
b)、编写代码基本上能够满足编程规范的要求,代码的变量命名,以及注释的书写,基本能按照要求进行。
c)、将数据结构中的队列和堆栈的知识复习到,并且学会创新,在代码的编写中,学习了编程规范,学习了结构化编程。
d)、函数的定义中用到很多switch语句,实现选择功能、
2、系统设计:
定义函数并调用函数,实现录入,浏览,查询,订票,退票,保存功能,将主函数放在功能函数之前,一目了然。
程序的可读性增加,函数名用见名知意的简单英文单词和汉语拼音。
使用结构体,将一系列具有相同类型或不同类型的数据构成的数据集合在一起,方便以后使用,使用函数fopen浏览文件,strcmp判断字符串大小。
2.1、模块设计:
1.函数声明:
voidinput();//输入信息
voidprint();//输出信息
voidsave();//保存信息
voidread();//读取信息
voidsearch();//查找信息
voidshanchu();//删除信息
voiddingpiao();//订票信息
voidtuipiao();//退票信息
voidxiugai();//修改信息
2.在主函数里进行调用:
if(j<0||j>7)
j=0;
switch(j)
{
case1:
input();
break;
case2:
print();
break;
case3:
xiugai();
break;
case4:
search();
break;
case5:
shanchu();
break;
case6:
dingpiao();
break;
case7:
tuipiao();
break;
case0:
break;
}
}while(j!
=0);
cout<<"谢谢使用,再见!
"<}
3.函数调用:
分别调用了
input();
print();save();read();search();shanchu();dingpiao()、tuipiao();xiugai();九个函数。
(1)voidinput()
{
inty;
cout<<"请依次输入航班信息:
"<cout<<"*****************************************************************************"<for(i=0;i{
cout<<"请输入航班号:
"<cin>>s[i].num;
cout<<"请输入起始站:
"<cin>>s[i].start;
cout<<"请输入终点站:
"<cin>>s[i].over;
cout<<"请输入时间:
"<cin>>s[i].time;
cout<<"请输入机票数:
"<cin>>s[i].count;
m++;
cout<<"第"<按1继续,按0结束";
cin>>y;
if(y==0)
{
save();
print();
break;
}
}
}
(2)voidsave()
{
FILE*fp,*fp1;
if((fp=fopen("sun.dat","wb"))==NULL)//打开文件并判断是否出错
{
cout<<"创建文件失败!
"<getchar();
return;
}
if((fp1=fopen("ru.dat","wb"))==NULL)
{
cout<<"创建文件失败!
"<getchar();
return;
}
for(i=0;iif(fwrite(&s[i],sizeof(structair),1,fp)==0)//向文件写入数据,并判断是否出错
cout<<"向文件输入数据失败!
"<fprintf(fp1,"%d",m);
fclose(fp);
fclose(fp1);
}
(3)voidread()
{
FILE*fp,*fp1;
if((fp=fopen("sun.dat","rb"))==NULL)
{
cout<<"出错,请检查文件是否存在,按任意键返回菜单";
getchar();
}
if((fp1=fopen("ru.dat","rb"))==NULL)
{
cout<<"创建文件失败!
"<getchar();
return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);
for(i=0;i{
fread(&s[i],sizeof(air),1,fp);//从文件中读取信息
}
fclose(fp);
}
(4)voidprint()
{
charw[10];
read();
cout<<"航班号起始站终点站时间机票数"<for(i=0;i{
printf(PRINT);
}
cout<<"请按任意键+Enter结束返回上层菜单:
"<cin>>w;
}
(5)voidsearch()
{
charname1[20];
charname2[20];
charii[10];
intn,no;
do
{
cout<<"请选择查找方式:
"<cout<<"1.按航班号查找"<<<"2.按终点站查找"<<<"3.按航线查找"<<<"0.返回订票"<cout<<"请在0-3中选择:
"<<<"按其他键+Enter结束返回主菜单:
"<cin>>n;
if(n==0)
break;
switch(n)
{
case1:
cout<<"请输入航班号:
"<cin>>no;
break;
case2:
cout<<"请输入终点站名称:
"<cin>>name2;
break;
case3:
cout<<"请输入起始站名称:
"<cin>>name1;
cout<<"请输入终点站名称:
"<cin>>name2;
break;
}
read();
for(i=0;i{
if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)
{
cout<"<cout<<"航班号起始站终点站时间机票数"<printf(PRINT);
break;
}
if(s[i].num==no)//按航班号判断输出条件
{
cout<"<cout<<"航班号起始站终点站时间机票数"<printf(PRINT);
break;
}
}
no=0;//将航班号赋值为
cout<<"查找完毕:
"<<<"是否继续查找?
请键入yes或no以回车键结束"<cin>>ii;
}while(strcmp(ii,"yes")==0);
}
(6)voidshanchu()
{
charname1[20];
charname2[20];
charii[10];
intno,n;
do
{
cout<<"请选择删除方式+Enter结束:
"<cout<<"*1.按航班号删除"<<<"*2.按航线删除"<<<"*0.返回"<cout<<"请在0-2中选择+Enter结束:
"<cin>>n;
if(n==0)
break;
switch(n)
{
case1:
cout<<"请输入航班号:
"<cin>>no;
read();
break;
case2:
cout<<"请输入起始站名称:
"<cin>>name1;
cout<<"请输入终点站名称:
"<cin>>name2;
read();
break;
}
for(i=0;i{
if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)//判断输入信息是否存在
{
s[i]=s[m-1];
m--;
}
}
cout<<"查找完毕"<cout<<"是否继续删除"<cout<<"请键入yes或no+Enter结束"<cin>>ii;
save();
if(!
strcmp(ii,"yes"))
cout<<"请按任意键+Enter结束返回上层菜单:
"<break;
}while(n!
=1&&n!
=2&&n!
=3&&n!
=4&&n!
=0);
}
(7)voiddingpiao()
{
intn;
chara[10];
do
{
search();
cout<<"请输入您要订的机票数+Enter结束:
"<cin>>n;
if(n<0)
{
cout<<"请输入有效的机票数!
"<break;
}
if(s[i].count!
=0&&s[i].count>=n)//判断是否出错
{
s[i].count=s[i].count-n;
save();
cout<<"订票成功!
"<break;
}
if(s[i].count{
cout<<"请输入有效的机票数!
"<break;
}
cout<<"是否继续?
请输入yes或no+Enter结束:
"<cin>>a;
}while(!
strcmp(a,"yes"));
}
(8)voidtuipiao()
{
intn;
chara[10];
do
{
search();
cout<<"请输入您要退的机票数目:
"<cin>>n;
if(n<0)
cout<<"请输入有效的机票数!
"<s[i].count=s[i].count+n;
save();
cout<<"退票成功!
"<cout<<"是否继续?
请键入yes或no+Enter结束:
"<cin>>a;
}while(!
strcmp(a,"yes"));
getchar();
}
(9)voidxiugai()
2.2、数据结构说明:
structair
{
intnum;
charstart[20];
charover[20];
chartime[10];
intcount;
}s[N];
定义了一个结构体,结构体有整型变量列车号num,字符数组起始站start、终点站over,时间time和票数count,都可以用s[N]来调用。
2.3、算法流程图:
四、系统测试与调试分析
1、系统测试
●测试方法:
黑盒
●测试技术:
功能测试
●测试数据:
输入输出
●测试报告:
如下表
测试说明
测试名称
航空管理系统
测试目的
验证系统对于系统处理数据能力
测试技术
单元测试
测试方法
黑盒测试法
测试用例
测试内容
用户登陆功能选项
测试步骤
输入功能选项
输入正确功能选项
输入错误功能选项
测试数据
在0——7之间的选项
输入小于0的数
输入大于7的数
预期结果
正常进入系统
提示操作错误
提示操作错误
测试结果
与预期相符
与预期相符
与预期相符
2、调试分析:
在调试过程中,PRINT定义的顺序不能交换,否则就会进入死循环。
五、用户手册
1、系统进入主界面
2输入航班信息
3浏览航班信息
4查找航班
5修改航班信息
6订票
7退票
8退出界面
六、程序清单
#include
#include
#include
#include
#defineN1000
structair
{
intnum;
charstart[20];
charover[20];
chartime[10];
intcount;
}s[N];
inti;
intm=0;
#definePRINT"%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count
voidinput();//输入信息
voidprint();//输出信息
voidsave();//保存信息
voidread();//读取信息
voidsearch();//查找信息
voidshanchu();//删除信息
voiddingpiao();//订票信息
voidtuipiao();//退票信息
voidxiugai();//修改信息
voidmain()
{
intj;
cout<<"★***订票系统***★"<cout<<"****************************************************************************"<do
{
cout<<"1.输入航班信息2.浏览航班信息"<<<"3.修改航班信息4.查找航班信息"<<<"5.删除航班信息6.订票信息"<<<"7.退票信息0.退出"<cout<<"****************************************************************************"<cout<<"请在0-7中选择+Enter结束:
"<cin>>j;
if(j<0||j>7)j=0;
switch(j)
{
case1:
input();
break;
case2:
print();
break;
case3:
xiugai();
break;
case4:
search();
break;
case5:
shanchu();
break;
case6:
dingpiao();
break;
case7:
tuipiao();
break;
case0:
;
break;
}
}while(j!
=0);
cout<<"谢谢使用,再见!
"<}
voidinput()
{
inty;
cout<<"请依次输入航班信息:
"<cout<<"*****************************************************************************"<for(i=0;i{
cout<<"请输入航班号:
"<cin>>s[i].num;
cout<<"请输入起始站:
"<cin>>s[i].start;
cout<<"请输入终点站:
"<cin>>s[i].over;
cout<<"请输入时间:
"<cin>>s[i].time;
cout<<"请输入机票数:
"<cin>>s[i].count;
m++;
cout<<"第"<按1继续,按0结束";
cin>>y;
if(y==0)
{
save();
print();
break;
}
}
}
voidsave()
{
FILE*fp,*fp1;
if((fp=fopen("sun.dat","wb"))==NULL)//打开文件并判断是否出错
{
cout<<"创建文件失败!
"<getchar();
return;
}
if((fp1=fopen("ru.dat","wb"))==NULL)
{
cout<<"创建文件失败!
"<getchar();
return;
}
for(i=0;iif(fwrite(&s[i],sizeof(structair),1,fp)==0)//向文件写入数据,并判断是否出错
cout<<"向文件输入数据失败!
"<fprintf(fp1,"%d",m);
fclose(fp);
fclose(fp1);
}
voidread()
{
FILE*fp,*fp1;
if((fp=fopen("sun.dat","rb"))==NULL)
{
cout<<"出错,请检查文件是否存在,按任意键返回菜单";
getchar();
}
if((fp1=fopen("ru.dat","rb"))==NULL)
{
cout<<"创建文件失败!
"<getchar();
return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);
for(i=0;i{
fread(&s[i],sizeof(air),1,fp);//从文件中读取信息
}
fclose(fp);
}
voidprint()
{
charw[10];
read();
cout<<"航班号起始站终点站时间机票数"<for(i=0;i{
printf(PRINT);
}
cout<<"请按任意键+Enter结束返回上层菜单:
"<cin>>w;
}
voidsea