机票预订系统课程设计.doc_第1页
机票预订系统课程设计.doc_第2页
机票预订系统课程设计.doc_第3页
机票预订系统课程设计.doc_第4页
机票预订系统课程设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C程序设计课程设计报告设计题目: 机票预订系统 专 业 班 级 学 号 学生姓名 指导教师 设计时间 2013/12/21-2014/01/02 教师评分 2013年12月30日目 录 (举 例) 1.概述11.1目的21.2课程设计的组成部分22.设计的内容:23.总结23.1课程设计进行过程及步骤2以上代码用于选择命令执行33.2所遇到的问题,你是怎样解决这些问题的133.3体会收获及建议143.4程序源代码153.5参考资料234.教师评语235.成绩231.概述1.1目的课程设计让学生以课堂讲授内容和平时相应的自主上机练习、调试典型例题或习题积累调试C程序的经验为基础,增强学生的上机编程能力、用计算机解决实际问题的能力;通过课程设计增强学生与同学和老师之间的沟通能力,开拓了学生的学习视野。还让学生知道查阅并借助相关资料的重要性。1.2课程设计的组成部分(1).选题(2).查阅文献和相关资料(3).程序构思、编译和调试(4).形成报告和提交报告2.设计的内容:航班信息订票信息机票信息退票信息浏览航班查询航班打印机票修改航班信息按航班查询按目的地查询主函数main()公有成员函数:void input(); /输入信息void print(); /输出信息void save(); /保存信息void read(); /读取信息void search(); /查找信息void shanchu(); /删除信息 void dingpiao(); /订票信息void tuipiao(); /退票信息void xiugai(); /修改信息其中 char start20; /起始char over20; /终点char time10;/时间3.总结3.1课程设计进行过程及步骤此函数包括air结构体和input()函数(输入航班信息)、print()函数(输出航班信息)、save()函数(保存航班信息) 【1】系统启动时通过输入航班信息来增加乘客的选择void main() int j; cout * 订票系统 * endl; cout *endl; do cout 1.输入航班信息 2.浏览航班信息 endlendl 3.修改航班信息 4.查找航班信息 endlendl 5.删除航班信息 6.订票信息 endlendl 7.退票信息 0.退出 endlendl; cout *endl; cout请在0-7中选择+Enter结束:endlendl; 【2】当选择功能能1时,进入选择航班,依次输入航班信息。void input() int y; cout请依次输入航班信息:endlendl; cout*endl; for(i=0;iN;i+)cout请输入航班号:si.num; cout请输入起始站:si.start; cout请输入终点站:si.over; cout请输入时间:si.time; cout请输入机票数:si.count; m+;cout第my; if(y=0) save(); print(); break;【3】当选择功能能2时,进入浏览航班信息模板void save()FILE *fp,*fp1; if(fp=fopen(sun.dat,wb)=NULL)/打开文件并判断是否出错 cout创建文件失败!endlendl; getchar(); return; if(fp1=fopen(ru.dat,wb)=NULL) cout创建文件失败!endlendl; getchar(); return; for(i=0;im;i+) if(fwrite(&si,sizeof(struct air),1,fp)=0)/向文件写入数据,并判断是否出错 cout向文件输入数据失败!endlendl;fprintf(fp1,%d,m); fclose(fp); fclose(fp1); void read() FILE *fp,*fp1; if(fp=fopen(sun.dat,rb)=NULL) cout出错,请检查文件是否存在,按任意键返回菜单; getchar(); if(fp1=fopen(ru.dat,rb)=NULL) cout创建文件失败!endlendl; getchar(); return; fscanf(fp1,%d,&m); fclose(fp1); for(i=0;im;i+) fread(&si,sizeof(air),1,fp);/从文件中读取信息fclose(fp); void print() char w10; read(); cout航班号 起始站 终点站 时间 机票数endl; for(i=0;im;i+) printf(PRINT); cout请按任意键+Enter结束返回上层菜单:w; 【4】当选择功能能4时,进入查找航班信息模板void search() char name120;char name220; char ii10; int n,no; docout请选择查找方式:endlendl;/打印查询方式菜单 cout1.按航班号查找endlendl 2.按终点站查找endlendl 3.按航线查找endlendl 0.返回endlendl; cout请在0-3中选择:endlendl 按其他键+Enter结束返回主菜单:endln; 【5】当选择功能能4时,进入航班排序模块,有三个选项查找方式,任选一种方式进行查询if(n=0) break; switch(n) case 1: printf(PRINT); cinno; break; case 2: cout请输入终点站名称:name2; break; case 3: cout请输入起始站名称:name1; cout请输入终点站名称:name2; break; read(); for(i=0;im;i+) if(strcmp(si.over,name1)=0|strcmp(si.over,name2)=0) coutendl查找航班信息成功!endl; cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; if(si.num=no)/按航班号判断输出条件 coutendl查找航班信息成功!endl; cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; no=0;/将航班号赋值为 cout查找完毕:endlendl 是否继续查找?请键入yes或no以回车键结束ii; while(strcmp(ii,yes)=0); 【6】当需要订票时,可以选择功能6,进入查询模块在查询中任选一种订票,成功后显示订票成功void dingpiao() int n; char a10; do search(); cout请输入您要订的机票数+Enter结束:n; if(n0) cout请输入有效的机票数!=n)/判断是否出错 si.count=si.count-n; save(); cout订票成功!endlendl; break; if(si.countn)/判断是否出错 cout请输入有效的机票数!endl; break; cout是否继续?请输入yes或no+Enter结束:a; while(!strcmp(a,yes); 【7】当有的乘客需要退票时也可以进入7、退票模块,先任选一种查询到订的票,然后输入信息,退票成功void xiugai() struct xiu int no; char name120; char name220; char time20; int count; x1; char j10; int n; read(); do cout请选择修改方式:endlendl *1,按航班号修改:endlendl *2,按航线修改: endlendl; cout请在1-2中修改+Enter结束:endln; switch(n) case 1:cout请输入航班号:x0.no; break; case 2:cout请输入起始站:1; cout请输入终点站:2; break; for(i=0;im;i+) if(strcmp(si.over,1)=0&strcmp(si.over,2)=0)/判断输出条件 cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; if(si.num=x0.no)/判断输出条件 cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; x0.no=0; /将结构体中的号为零 cout请输入新航班号、起始站、终点站、时间 、机票数:2x0.timex0.count; si.num=x0.no;/替换航班号 strcpy(si.start,1);/替换其始站strcpy(si.over,2);/替换终点站 strcpy(si.time,x0.time);/替换时间 si.count=x0.count;/替换机票数 save(); cout是否继续?请键入yes或no+Enter结束:endlj; while(strcmp(j,yes)=0); 此段代码用于修改信息。void xiugai() struct int no; char name120; char name220; char time20; int count; x1; char j10; int n; read(); do cout请选择修改方式:endlendl *1,按航班号修改:endlendl *2,按航线修改: endlendl; cout请在1-2中修改+Enter结束:endln; switch(n) case 1:cout请输入航班号:x0.no; break; case 2:cout请输入起始站:1; cout请输入终点站:2; break; for(i=0;im;i+) if(strcmp(si.over,1)=0&strcmp(si.over,2)=0)/判断输出条件 cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; if(si.num=x0.no)/判断输出条件 cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; x0.no=0; /将结构体中的号为零 cout请输入新航班号、起始站、终点站、时间 、机票数:2x0.timex0.count; si.num=x0.no;/替换航班号 strcpy(si.start,1);/替换其始站strcpy(si.over,2);/替换终点站 strcpy(si.time,x0.time);/替换时间 si.count=x0.count;/替换机票数 save(); cout是否继续?请键入yes或no+Enter结束:endlj; while(strcmp(j,yes)=0); 3.2所遇到的问题,你是怎样解决这些问题的问题一、在函数内部定义的结构体数组属于局部变量,导致数据无法调用。 解决方案:再定义一个公有的结构体数组,将函数内部定义的结构体数组赋值给公有的结构体数组以实现数据的调用。 问题二、 怎样实现订票?换票? 解决方案:订票:第一次进入系统按1+回车按步骤输入信息。完成订票。改票:输入0,退出后按照步骤,进入3+回车进入改票系统 ,找出第一次定的票,然后一次修改。3.3体会收获及建议在这次程序编制的过程中出现了很多问题,主要原因是自己以前接触的关 于编制程序的知识的缺乏,通过飞机航班订票系统的开发让我知道了自己的不足和缺点,写出一个好的程序需要合作精神,一个人的力量毕竟是有限的团队力量才是无穷的。一个好的程序员一定是从程序堆里走出来的,只有通过参与具体程序的开发才知道自己知识的有限,才会学会具体的分析问题,是自己的逻辑性和层次性得到良好的锻炼课程设计是一门专业课,给我很多专业知识以及专业技能上了提升,同时又是一门思辨课,让我感触很深,是我对抽象的理论有了具体的认识,在这次课程设计中知道了以前没有接触过的很多函数,C语言中的文件部分因为种种原因都没有得到及时的学习,以前很多东西都没有学好,就像老师以前说的:“一天敲一个小时的键序就能学好了。”现在开始相信了,在以后的学习中自己要加强程序的锻炼,多参考好的程序和各种各样的函数,建立起自己的函数库,为以后学习打下良好的基础。3.4程序源代码#include#include#include#include #define N 1000 struct air int num; char start20; char over20; char time10; int count; sN; int i; int m=0; #define PRINT %-d%12s%12s%10s%12dn,si.num,si.start,si.over,si.time,si.count void input(); /输入信息void print(); /输出信息void save(); /保存信息void read(); /读取信息void search(); /查找信息void shanchu(); /删除信息 void dingpiao(); /订票信息void tuipiao(); /退票信息void xiugai(); /修改信息void main() int j; cout * 订票系统 * endl; cout *endl; do cout 1.输入航班信息 2.浏览航班信息 endlendl 3.修改航班信 4.查找航班信息 endlendl 5.删除航班信息 6.订票信息 endlendl 7.退票信息 0.退出 endlendl; cout *endl; cout请在0-7中选择+Enter结束:endlj; if(j7)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; void input() int y; cout请依次输入航班信息:endlendl; cout*endl; for(i=0;iN;i+)cout请输入航班号:si.num; cout请输入起始站:si.start; cout请输入终点站:si.over; cout请输入时间:si.time; cout请输入机票数:si.count; m+;cout第my; if(y=0) save(); print(); break;void save()FILE *fp,*fp1; if(fp=fopen(sun.dat,wb)=NULL)/打开文件并判断是否出错 cout创建文件失败!endlendl; getchar(); return; if(fp1=fopen(ru.dat,wb)=NULL) cout创建文件失败!endlendl; getchar(); return; for(i=0;im;i+) if(fwrite(&si,sizeof(struct air),1,fp)=0)/向文件写入数据,并判断是否出错 cout向文件输入数据失败!endlendl;fprintf(fp1,%d,m); fclose(fp); fclose(fp1); void read() FILE *fp,*fp1; if(fp=fopen(sun.dat,rb)=NULL) cout出错,请检查文件是否存在,按任意键返回菜单; getchar(); if(fp1=fopen(ru.dat,rb)=NULL) cout创建文件失败!endlendl; getchar(); return; fscanf(fp1,%d,&m); fclose(fp1); for(i=0;im;i+) fread(&si,sizeof(air),1,fp);/从文件中读取信息fclose(fp); void print() char w10; read(); cout航班号 起始站 终点站 时间 机票数endl; for(i=0;im;i+) printf(PRINT); cout请按任意键+Enter结束返回上层菜单:w; void search() char name120;char name220; char ii10; int n,no; docout请选择查找方式:endlendl;/打印查询方式菜单 cout1.按航班号查找endlendl 2.按终点站查找endlendl 3.按航线查找endlendl 0.返回endlendl; cout请在0-3中选择:endlendl 按其他键+Enter结束返回主菜单:endln; if(n=0) break; switch(n) case 1: cout请输入航班号:no; break; case 2: cout请输入终点站名称:name2; break; case 3: cout请输入起始站名称:name1; cout请输入终点站名称:name2; break; read(); for(i=0;im;i+) if(strcmp(si.over,name1)=0|strcmp(si.over,name2)=0) coutendl查找航班信息成功!endl; cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; if(si.num=no)/按航班号判断输出条件 coutendl查找航班信息成功!endl; cout航班号 起始站 终点站 时间 机票数endl; printf(PRINT); break; no=0;/将航班号赋值为 cout查找完毕:endlendl 是否继续查找?请键入yes或no以回车键结束ii; while(strcmp(ii,yes)=0); void shanchu() char name120; char name220; char ii10; int no,n; do cout请选择删除方式+Enter结束:endlendl; cout*1.按航班号删除endlendl; cout*2.按航线删除endlendl; cout*0.返回endl; cout请在0-2中选择+Enter结束:n; if(n=0) break; switch(n) case 1: cout请输入航班号:no; read(); break; case 2: cout请输入起始站名称:name1; cout请输入终点站名称:name2; read(); break; for(i=0;im;i+) if(si.num=no|strcmp(si.start,name1)=0&strcmp(si.over,name2)=0)/判断输入信息是否存在 si=sm-1; m-; cout查找完毕endl; cout是否继续删除endl; cout请键入yes或no+Enter结束ii; save(); if(!strcmp(ii,yes) cout请按任意键+Enter结束返回上层菜单:endl; break; while(n!=1&n!=2&n!=3&n!=4&n!=0); void dingpiao() int n; char a10; do search(); cout请输入您要订的机票数+Enter结束:n; if(n0) cout请输入有效的机票数!=n)/判断是否出错 si.count=si.count-n; save(); cout订票成功!endlendl; break; if(si.countn)/判断是否出错 cout请输入有效的机票数!endl; break; cout是否继续?请输入yes或no+Enter结束:a; while(!strcmp(a,yes); void tuipiao() int n; char a10; do search(); cout请输入您要退的机票数目:n; if(n0) cout请输入有效的机票数!endl; si.count=si.count+n; save(); cout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论