c++航空管理系统资料
- 格式:doc
- 大小:190.00 KB
- 文档页数:26
青岛理工大学C++面向对象课程设计报告院(系):计算机工程学院专业:网络工程学生姓名:__班级:_网络092______学号:2009070题目:航空管理系统_________起迄日期:___2012-6-26______设计地点:青岛理工大学指导教师:李兰完成日期: 2010 年6 月 28日目录一、课题设计目的 * * * * * * * * * * * * * * * * * *3二、课程设计内容与实现的功能 * * * * * * * * * * * * *3三、系统分析与设计 * * * * * * * * * * * * * * * * * *3四、系统测试与调试分析 * * * * * * * * * * * * * * * *11五、用户手册 * * * * * * * * * * * * * * * * * * * * *12六、程序清单 * * * * * * * * * * * * * * * * * * * * *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. 函数声明:void input(); //输入信息void print(); //输出信息void save(); //保存信息void read(); //读取信息void search(); //查找信息void shanchu(); //删除信息void dingpiao(); //订票信息void tuipiao(); //退票信息void xiugai(); //修改信息2.在主函数里进行调用:if(j<0||j>7)j=0;switch(j){case 1: input();break;case 2:print();break;case 3:xiugai();break;case 4:search();break;case 5:shanchu();break;case 6:dingpiao();break;case 7:tuipiao();break;case 0:break;}}while(j!=0);cout<<"谢谢使用,再见!"<<endl;}3.函数调用:分别调用了input();print(); save(); read(); search();shanchu(); dingpiao()、tuipiao(); xiugai();九个函数。
(1)void input(){int y;cout<<"请依次输入航班信息:"<<endl<<endl;cout<<"********************************************************************** *******"<<endl;for(i=0;i<N;i++){cout<<"请输入航班号:"<<endl;cin>>s[i].num;cout<<"请输入起始站:"<<endl;cin>>s[i].start;cout<<"请输入终点站:"<<endl;cin>>s[i].over;cout<<"请输入时间:"<<endl;cin>>s[i].time;cout<<"请输入机票数:"<<endl;cin>>s[i].count;m++;cout<<"第"<<m<<"个信息已经输完是否继续?按1继续,按0结束";cin>>y;if(y==0){save();print();break;}}}(2)void save(){FILE *fp,*fp1;if((fp=fopen("sun.dat","wb"))==NULL)//打开文件并判断是否出错{cout<<"创建文件失败!"<<endl<<endl;getchar();return;}if((fp1=fopen("ru.dat","wb"))==NULL){cout<<"创建文件失败!"<<endl<<endl;getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件写入数据,并判断是否出错cout<<"向文件输入数据失败!"<<endl<<endl;fprintf(fp1,"%d",m);fclose(fp);fclose(fp1);}(3)void read(){FILE *fp,*fp1;if((fp=fopen("sun.dat","rb"))==NULL){cout<<"出错,请检查文件是否存在,按任意键返回菜单";getchar();}if((fp1=fopen("ru.dat","rb"))==NULL){cout<<"创建文件失败!"<<endl<<endl;getchar();return;}fscanf(fp1,"%d",&m);fclose(fp1);for(i=0;i<m;i++){fread(&s[i],sizeof(air),1,fp);//从文件中读取信息}fclose(fp);}(4)void print(){char w[10];read();cout<<"航班号起始站终点站时间机票数"<<endl;for(i=0;i<m;i++){printf(PRINT);}cout<<"请按任意键+Enter结束返回上层菜单:"<<endl;cin>>w;(5)void search(){char name1[20];char name2[20];char ii[10];int n,no;do{cout<<"请选择查找方式:"<<endl<<endl;//打印查询方式菜单cout<<"1.按航班号查找"<<endl<<endl<<"2.按终点站查找"<<endl<<endl<<"3.按航线查找"<<endl<<endl<<"0.返回订票"<<endl<<endl;cout<<"请在0-3中选择:"<<endl<<endl<<"按其他键+Enter结束返回主菜单:"<<endl<<endl;cin>>n;if(n==0)break;switch(n){case 1:cout<<"请输入航班号:"<<endl;cin>>no;break;case 2:cout<<"请输入终点站名称:"<<endl;cin>>name2;break;case 3:cout<<"请输入起始站名称:"<<endl;cin>>name1;cout<<"请输入终点站名称:"<<endl;cin>>name2;break;}read();for(i=0;i<m;i++){if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0){cout<<endl<<"查找航班信息成功!"<<endl;cout<<"航班号起始站终点站时间机票数"<<endl;printf(PRINT);break;}if(s[i].num==no)//按航班号判断输出条件{cout<<endl<<"查找航班信息成功!"<<endl;cout<<"航班号起始站终点站时间机票数"<<endl;printf(PRINT);break;}}no=0;//将航班号赋值为cout<<"查找完毕:"<<endl<<endl<<"是否继续查找?请键入yes或no以回车键结束"<<endl;cin>>ii;}while(strcmp(ii,"yes")==0);}(6)void shanchu(){char name1[20];char name2[20];char ii[10];int no,n;do{cout<<"请选择删除方式+Enter结束:"<<endl<<endl;cout<<"*1.按航班号删除"<<endl<<endl<<"*2.按航线删除"<<endl<<endl<<"*0.返回"<<endl;cout<<"请在0-2中选择+Enter结束:"<<endl;cin>>n;if(n==0)break;switch(n){case 1:cout<<"请输入航班号:"<<endl;cin>>no;read();break;case 2:cout<<"请输入起始站名称:"<<endl;cin>>name1;cout<<"请输入终点站名称:"<<endl;cin>>name2;read();break;}for(i=0;i<m;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<<"查找完毕"<<endl;cout<<"是否继续删除"<<endl;cout<<"请键入yes或no+Enter结束"<<endl;cin>>ii;save();if(!strcmp(ii,"yes"))cout<<"请按任意键+Enter结束返回上层菜单:"<<endl;break;}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0);}(7)void dingpiao(){int n;char a[10];do{search();cout<<"请输入您要订的机票数+Enter结束:"<<endl;cin>>n;if(n<0){cout<<"请输入有效的机票数!"<<endl;break;}if(s[i].count!=0&&s[i].count>=n)//判断是否出错{s[i].count=s[i].count-n;save();cout<<"订票成功!"<<endl<<endl;break;}if(s[i].count<n)//判断是否出错{cout<<"请输入有效的机票数!"<<endl;break;}cout<<"是否继续?请输入yes或no+Enter结束:"<<endl; cin>>a;}while(!strcmp(a,"yes"));}(8)void tuipiao(){int n;char a[10];do{search();cout<<"请输入您要退的机票数目:"<<endl;cin>>n;if(n<0)cout<<"请输入有效的机票数!"<<endl;s[i].count=s[i].count+n;save();cout<<"退票成功!"<<endl;cout<<"是否继续?请键入yes或no+Enter结束:"<<endl<<endl; cin>>a;}while(!strcmp(a,"yes"));getchar();}(9)void xiugai()2.2、数据结构说明:struct air{int num;char start[20];char over[20];char time[10];int count;}s[N];定义了一个结构体,结构体有整型变量列车号num,字符数组起始站start、终点站over,时间time和票数count,都可以用s[N]来调用。