C语言课程设计报告飞机订票系统.doc_第1页
C语言课程设计报告飞机订票系统.doc_第2页
C语言课程设计报告飞机订票系统.doc_第3页
C语言课程设计报告飞机订票系统.doc_第4页
C语言课程设计报告飞机订票系统.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

C语言课程设计题目: 飞机订票系统 专业: 。 学号: 。 姓名: 。 任课教师: 。 C语言课程设计报告一、课程设计报告正文(1)课程设计题目的原文;假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务:l 航班信息录入功能(文件保存) l 完成航班信息浏览功能; l 查询航线(至少一种查询方式)。(2)题目的分析(需求分析);任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中)浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。 (3)整体设计与模块划分;根据需求分析,该程序可分为以下四大模块:输入模块显示模块查询模块退出模块飞机订票系统(4)代码设计;包括各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析等等;二、航班基本信息输入模块航班信息录入函数:文件打开否 输入信息是否继续将信息输出到磁盘调用printf_back()函数结束开始输出错误信息航班信息浏览函数:流程图显示信息开始文件打开查找航班信息是否查找到输入信息是否继续结束输出错误信息删除操作查询模块:分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。在查询小模块中采用了直接查找的方法。本模块可以通过多种查询方式进行完善。这是本程序没有做的地方。流程图开始文件打开查询方式是否继续结束输出错误信息航班号此处可以完善其它查询方式(一) 核心源程序清单和执行结果:a) 源程序清单:#include#include#include#include/标准输入、输出头文件#include/包含字符串函数处理头文件#include/包含access函数的头文件#define N 1000/定义最多的航班数#define PRINT %dtt%stt%stt星期%stt%dn ,si.num,si.start,si.over,si.time,si.count /宏定义输出格式struct air /定义结构体数组int num;/定义航班号char start20;/航班起始站char over20;/终点站char time10;/飞行时间int count;/机票数量sN;int i,m=0;/定义全局变量char ii10;void add();/函数声明增加航班信息函数void print(); /显示航班信息void search();/查找航班信息void read();/读取文件void save();/保存文件void output();/输出格式void chushihua();/系统初始化void build();/建立数据文件void main()/主函数int j; chushihua();/系统初始化判断是否存在原始数据文件printf( O(_)O欢迎使用飞机订票系统O(_)O n);/打印出系统主界面doprintf(= ); printf( 1.增加航班信息n 2.浏览航班信息n 3.查找航班信息(按航班号)ttn 0.退出n);printf(= ); printf(请在0-3中选择以回车键结束: );scanf(%d,&j);switch(j)case 1: add();/调用增加航班函数break;case 2:print();/调用显示模块break;case 3:search();/调用查找模块break;case 0:/退出系统save();printf(谢谢使用,再见!( _ )/ n );break;while(j!=0);/判断是否调用其他函数void chushihua()/定义系统初始化函数if(access(hangban.dat,0)build();elseread();void build()/定义建立数据文件函数FILE *fp;/定义文件指针if(fp=fopen(hangban.dat,wb)=NULL)/打开文件并判定是否出错 printf(创建文件失败! );/打印出错提示getchar();return;printf(请依次输入航班信息(以回车键结束):n); /打印提示信息printf(- n);for(i=0;iN;i+)printf(请输入航班号: ); scanf(%d,&si.num);/输入航班号printf(请输入起始站: );scanf(%s,si.start);/输入起始站printf(请输入终点站: );scanf(%s,si.over);/输入终点站printf(请输入时间(星期几): );scanf(%s,si.time);/输入时间printf(请输入机票数: );scanf(%d,&si.count);/输入机票数fwrite(&si,sizeof(struct air),1,fp);m+;printf(添加完毕,是否继续添加?请键入y或n以回车键结束:);scanf(%s,ii);if(strcmp(ii,y)!=0)/判断是否继续添加航班信息fclose(fp);/关闭文件return;void read()/定义读取文件函数FILE *fp;if(fp=fopen(hangban.dat,r)=NULL)printf(创建文件失败! );getchar();return;i=0;while(!feof(fp)fread(&si,sizeof(struct air),1,fp);/逐块读取数据i+;m+;/计算存在航班数m-;fclose(fp);void save()/定义保存函数FILE *fp;if(fp=fopen(hangban.dat,wb)=NULL) printf(创建文件失败! );getchar();return;for(i=0;im;i+)/逐块保存数据fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定义增加航班信息函数doprintf(请依次输入您要增加的航班信息(以回车键结束): n); /打印提示信息printf(- n);printf(请输入航班号: ); scanf(%d,&sm.num);/读取航班号printf(请输入起始站: );scanf(%s,sm.start);/读取起始站printf(请输入终点站: );scanf(%s,sm.over);/读取终点站printf(请输入时间: );scanf(%s,sm.time);/读取时间printf(请输入机票数: );scanf(%d,&sm.count);/读取机票数m+;printf(添加完毕,是否继续添加?请键入y或n以回车键结束:);scanf(%s,ii);while(!strcmp(ii,y);/判断是否继续添加void output()/定义输出格式函数printf(航班号tt起始站tt终点站tt时间tt机票数n);/信息标题for(i=0;im;i+)printf(PRINT);/打印出信息void print()/定义显示航班信息函数printf(n目前我们有如下航班:n);output();/调用输出格式函数printf(n请按回车键返回上层菜单 );getchar();getchar();void search()/定义查询函数int n;doprintf(n请输入航班号: );scanf(%d,&n);/输入查询的航班号for(i=0;im;i+) if(si.num=n)/按航班号判定输出条件 printf(n您所查找的航班信息为:n );printf(航班号tt起始站tt终点站tt时间tt机票数 nn);printf(PRINT);/显示信息 printf(n查询完毕,按回车键继续);getchar();getchar();return;printf(n对不起,没有您需要的信息!n );printf(是否重新查找?请键入y或n以回车键结束 );scanf(%s,ii);while(!strcmp(ii,y);/判定是否重新查找 1) 第一次运行程序(输入初始数据)界面提示输入原始数据:请输入航班号请输入起始站请输入终点站请输入飞行时间请输入机票数。我按照提示一次输入了4个航班信息后按提示输入“n”则不再继续输入,系统显示出了主菜单界面。接着按0退出程序,显示“谢谢使用,再见。” 图表 1主菜单界面1) 第二次运行程序(进行航班信息的浏览)运行程序就不再显示输入航班信息了,而是直接显示出了主菜单界面(如图表1)。在提示中输入“2” 显示航班信息。输出如下航班信息(如图表2),确实显示出输入的4个航班信息。图表 2显示航班信息1) 查询航班信息在主菜单界面输入3请输入航班号输入“1010” 显示出所查找的信息(如图表3)图表 3查询航班信息2) 航班排序在主菜单界面输入4按照提示输入“2”(按航班号从大到小排序)显示出排序后的航班信息(如图表4)图表 4航班排序三、总结 经过十天的程序设计,基本掌握程序设计的基本方法和步骤。在这十天中悟出:程序设计要求有一定的基础是必须的,在设计过程中要大胆的发挥自己的想象力,要敢于不断的创新,要敢于尝试,我认为这也是一种进步的好方法。 回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在十天的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理

温馨提示

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

评论

0/150

提交评论