ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:96.26KB ,
资源ID:5386839      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5386839.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(飞机订票系统C语言课设.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

飞机订票系统C语言课设.docx

1、飞机订票系统C语言课设C语言程序设计课程设计评语:考勤(10)纪律(10)过程(40)设计报告(30)答辩(10)总成绩(100)专 业:电气工程及其自动化(卓越)班 级: 电气1301 姓 名: 王思远 学 号:指导教师: 王黎 兰州交通大学自动化与电气工程学院2014年7月12日综合题3.1引言设计目的是解决如下实际问题:3.1.1问题描述:假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。通过 该系统来实现机票的订购问题。3.1.2功能要求:本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括: 起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者的姓名和订座

2、者的身份证号码。本系统显示这样的菜单:1) 输入航班信息2) 输出航班信息3) 查找航班信息a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间4) 订票预约5) 删除定票预约6) 退出系统本系统成功执行菜单的每个信息,选项 4)和5)将要求额外的输入,并且 它们都允许用户收回其输入。查找航班信息既可按线路查,也可按目的地查。在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它 首先从该文件读入数据.3.1.3算法提示:数据结构:结构体类型数组 数据库结构:下表构成该系统的基本数据库。航班号起飞时间目的地座次号座次订出与否的标记订票 者姓订票者身份 证号码名int

3、charcharintCharcharchar3.1.4测试数据:每架飞机的座位N=12, M=53.1.5其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。 选择的设计方法是使用C语言利用计算机解决问题。3.2设计设计思路:对于这种大型的程序,必须现有一个整体的规划,生成出一个流程图,流程 图负责规划总体,而程序最主要的就是飞机航班订票各个功能, 每个功能都作为 一个模块,每一个模块划分任务,每个功能都作为一个模块,并且还得按照题目 要求,将信息保存在文件中,而且信息都将被输入到事先定义的结构体数组中, 实现在内存单元中的信息的分类存放,之后将其输出。主函数流程图如5所

4、示(合):开始调用读取文件功能输入选择功能序号图5输入信息函数流程图如图6所示:开始输入航班信息输入航班号输入起飞地输入终点站输入终点站输入余量返回主程序输出信息函数流程图如图7所示:查找航班信息的流程图如图8所示:输入航班号输出航班信息返回主函数订票预约的流程图如图9所示:开始订票预约输入航班号输入订票者信息系统分配座位返回主函数删除订票预约的流程图如图10:开始删除订票功能输入航班号输入座位号返回主函数图10源代码:#include#includestruct zuociint haoma;/座次数int biaoji;/座位订出的标记char xi ngmi ng20; 订座者姓名cha

5、r zhe ngjia n30;订座者的身份证号码;struct planeint no;/航班号char qidia n 30;/ 起飞地char zho ngdia n 30;/ 目的地char time30; 起飞时间int left;/ 余票struct zuoci zuowei12; 座位订出信息plane888;/888 个航班容量int num=0,i,j,t;/定义外部变量(全局变量)void read()读取文件的功能FILE *fp;if(fp=fopen(file.dat,rb)=NULL)/rb 打开二进制文件printf(出错);getchar();i=0;while

6、(!feof(fp)/ 文件是否结尾位置,不是结尾就继续 fread(&planei,sizeof(struct plane),1,fp);/二进制读入i+;num+;num-;fclose(fp);void save() /保存到文件的功能FILE *fp;if(fp=fopen(file.dat,wb)=NULL)/第一次运行无指定,就会建立新文件 file.datprintf( 出错); getchar();for(i=0;inum;i+)fwrite(&planei,sizeof(struct plane),1,fp); /二进制输出fclose(fp);void shuru() /输

7、入航班的功能 char c;printf( 请输入您要增加的航班信息 :n);printf(请输入航班号:n);scanf(%d,&planenum.no);printf( 请输入起飞地 n);scanf(%s,planenum.qidian);printf( 请输入目的地 n);scanf(%s,planenum.zhongdian);printf( 请输入起飞时间 n);scanf(%s,planenum.time);printf( 请输入航班余量 n);scanf(%d,&planenum.left);for(i=0;iplanenum.left;i+)/ 订出标记planenum.zu

8、oweii.biaoji=0;num+;getchar();/启继续void shuchu() /输出航班信息的功能printf( 目前航班 :n);printf(航班号tt起飞地tt目的地tt起飞时间tt票数n);for(i=0;inum;i+) printf(%dtt%stt%stt%sttt%dn,planei.no,planei.qidian,planei.zhongd ian,planei.time,planei.left);getchar();/继续void chazhao() /查找航班信息的功能printf( 请输入您要查询的航班号 :);scanf(%d,&t);for(i=

9、0;inum;i+)/先查找航班if(t=planei.no)printf( 航班的空座数量为: %dn,planei.left);printf( 空座号: );for(j=0;j12;j+)if(planei.zuoweij.biaoji!=1)printf(%d 号 ,j+1);/ 输出航班号printf(n);printf( 已订座位的信息: n);for(j=0;j12;j+)if(planei.zuoweij.biaoji=1)printf( 座位号: %dn,j+1);printf( 订座者姓名: );puts(planei.zuoweij.xingming);printf( 订座

10、者身份证号码: );puts(planei.zuoweij.zhengjian); /12 个座位查询范围printf( 航班起飞时间: );puts(planei.time);getchar();/继续void dingpiao() /订票的功能int n;printf( 请输入订票的航班号: n); scanf(%d,&n);for(i=0;inum;i+)if(planei.no=n) break; printf( 余票: %dn,planei.left); for(j=0;planei.zuoweij.biaoji=1;j+); printf( 请输入姓名拼音: );scanf(%s,

11、planei.zuoweij.xingming); printf( 请输入身份证号码: );scanf(%s,planei.zuoweij.zhengjian); printf( 分配给座位是 :%d 号 n,j+1);planei.zuoweij.biaoji=1;planei.left-;getchar();/继续void cancel() /删除订票的功能int n,m;char judge;printf( 请输入删除的订票航班号: ); scanf(%d,&n);for(i=0;in);printf(输入选择功能序号:); scanf(%d,&menu);switch(menu)cas

12、e 1: shuru();break;case 2: shuchu();break;case 3: chazhao();break;case 4: dingpiao();break;case 5: cancel();break;case 6: save();break; /如果没有符合的序号,则不执行,流转下一条getchar();子函数配合输入继续 /循环体位置while(menu!=6); /判断条件实现注释:程序的要求进行了实现,在基础要求之外没有完成其他功能3.3调试报告在读取二进制文件,没有创建,但在写入时,写入,保存了数据:在进行输出时, 制表位与数据位不对齐,于是检查了制表符;因

13、为定义的座位数组为12所以只能 查找12个座位的信息。3.4运行及结果测试如图11所示图 11-1图 11-2图 11-3图 11-4图 11-5图 11-63.5总结本程序实现了题中飞机订票系统的所有功能, 完成了题中所给的要求。大程序 的编写,让我们基本了解的程序软件的编写过程。在一开始,利用流程图,可以 对程序规划,而使用功能模块,可以对程序进行任务的细分。在流程图的规划下, 程序做的还是比较顺畅,一开始较好的规划,减少了不必要的错误的产生,在以 前的C语言学习和实践中,只用到了运行数据从终端的输入输出和内存单元的存 取,这个程序则需要实现内存的单元到硬盘文件的的输入输出, 这是时下流行

14、的软件都采用的方式。我认为这些应该就是实践和实习的意义。参考文献1谭浩强著.C程序设计(第四版)北京:清华大学出版社,2010.附录 源程序代码 :#include#includestruct zuociint haoma;/座次数int biaoji;/座位订出的标记char xi ngmi ng20; 订座者姓名char zhe ngjia n30;订座者的身份证号码;struct planeint no;/航班号char qidia n 30;/ 起飞地char zho ngdia n 30;/ 目的地char time30; 起飞时间 int left;/ 余票struct zuoci

15、 zuowei12; 座位订出信息plane888;/888 个航班容量int num=0,i,j,t;/定义外部变量(全局变量)void read()读取文件的功能FILE *fp;if(fp=fopen(file.dat,rb)=NULL)/rb 打开二进制文件printf(出错);getchar();i=0;while(!feof(fp)/ 文件是否结尾位置,不是结尾就继续 fread(&planei,sizeof(struct plane),1,fp);/二进制读入i+;num+;num-;fclose(fp);void save() /保存到文件的功能FILE *fp;if(fp=f

16、open(file.dat,wb)=NULL)/第一次运行无指定,就会建立新文件 file.datprintf( 出错); getchar();for(i=0;inum;i+)fwrite(&planei,sizeof(struct plane),1,fp); /二进制输出fclose(fp);void shuru() /输入航班的功能 char c;printf( 请输入您要增加的航班信息 :n);printf(请输入航班号:n);scanf(%d,&planenum.no);printf( 请输入起飞地 n);scanf(%s,planenum.qidian);printf( 请输入目的地

17、 n);scanf(%s,planenum.zhongdian);printf( 请输入起飞时间 n);scanf(%s,planenum.time);printf( 请输入航班余量 n);scanf(%d,&planenum.left);for(i=0;iplanenum.left;i+)/ 订出标记planenum.zuoweii.biaoji=0; num+;getchar();/启继续void shuchu() /输出航班信息的功能printf(目前航班:n);printf(航班号tt起飞地tt目的地tt起飞时间tt票数n); for(i=0;inum;i+)printf(%dtt%s

18、tt%stt%sttt%dn,planei.no,planei.qidian,planei.zhongd ian,planei.time,planei.left);getchar();/继续void chazhao() /查找航班信息的功能printf( 请输入您要查询的航班号 :); scanf(%d,&t);for(i=0;inum;i+) /先查找航班if(t=planei.no)printf( 航班的空座数量为: %dn,planei.left);printf(空座号:);for(j=0;j12;j+)if(planei.zuoweij.biaoji!=1)printf(%d 号 ,j

19、+1);/ 输出航班号printf(n);printf( 已订座位的信息: n); for(j=0;j12;j+) if(planei.zuoweij.biaoji=1) printf( 座位号: %dn,j+1);printf( 订座者姓名: );puts(planei.zuoweij.xingming);printf( 订座者身份证号码: );puts(planei.zuoweij.zhengjian); /12 个座位查询范围printf( 航班起飞时间: );puts(planei.time);getchar();/继续void dingpiao() /订票的功能int n;print

20、f( 请输入订票的航班号: n); scanf(%d,&n);for(i=0;inum;i+)if(planei.no=n) break; printf( 余票: %dn,planei.left); for(j=0;planei.zuoweij.biaoji=1;j+); printf( 请输入姓名拼音: );scanf(%s,planei.zuoweij.xingming); printf( 请输入身份证号码: );scanf(%s,planei.zuoweij.zhengjian); printf( 分配给座位是 :%d 号 n,j+1);planei.zuoweij.biaoji=1;p

21、lanei.left-;getchar();/继续void cancel() /删除订票的功能int n,m;char judge;printf( 请输入删除的订票航班号: ); scanf(%d,&n);for(i=0;in);printf(输入选择功能序号:); scanf(%d,&menu);switch(menu)case 1: shuru();break;case 2: shuchu();break;case 3: chazhao();break;case 4: dingpiao();break;case 5: cancel();break;case 6: save();break; /如果没有符合的序号,则不执行,流转下一条getchar();子函数配合输入继续 /循环体位置while(menu!=6); /判断条件

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1