C语言程序设计课程设计评语:考勤(10)纪律(10)过程(40)设计报告(30)答辩(10)总成绩(100)专业:电气工程及其自动化(卓越)班级:电气1301姓名:王思远学号:指导教师:王黎兰州交通大学自动化与电气工程学院2014年7月12日C语言程序设计课程设计报告1综合题3.1引言设计目的是解决如下实际问题:3.1.1问题描述:假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。3.1.2功能要求:本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。本系统显示这样的菜单:1)输入航班信息2)输出航班信息3)查找航班信息a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间4)订票预约5)删除定票预约6)退出系统本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。查找航班信息既可按线路查,也可按目的地查。在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它首先从该文件读入数据.3.1.3算法提示:数据结构:结构体类型数组数据库结构:下表构成该系统的基本数据库。航班号起飞时间目的地座次号座次订出与否的标记订票者姓订票者身份证号码C语言程序设计课程设计报告2名intcharcharintCharcharchar3.1.4测试数据:每架飞机的座位N=12,M=53.1.5其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。选择的设计方法是使用C语言利用计算机解决问题。3.2设计设计思路:对于这种大型的程序,必须现有一个整体的规划,生成出一个流程图,流程图负责规划总体,而程序最主要的就是飞机航班订票各个功能,每个功能都作为一个模块,每一个模块划分任务,每个功能都作为一个模块,并且还得按照题目要求,将信息保存在文件中,而且信息都将被输入到事先定义的结构体数组中,实现在内存单元中的信息的分类存放,之后将其输出。主函数流程图如5所示(合):C语言程序设计课程设计报告3开始调用读取文件功能输入选择功能序号输入航班信息功能输入航班信息功能输入航班信息功能输入航班信息功能输入航班信息功能输入航班信息功能126543图5输入信息函数流程图如图6所示:C语言程序设计课程设计报告4开始输入航班信息输入航班号输入起飞地输入终点站输入终点站输入余量返回主程序图6输出信息函数流程图如图7所示:开始输出航班信息输出航班信息表头输出航班信息返回主函数图7查找航班信息的流程图如图8所示:C语言程序设计课程设计报告5开始查找信息功能返回主函数输入航班号输出航班信息图8订票预约的流程图如图9所示:系统分配座位输入航班号输入订票者信息开始订票预约返回主函数图9删除订票预约的流程图如图10:开始删除订票功能返回主函数输入航班号输入座位号图10C语言程序设计课程设计报告6源代码:#include#includestructzuoci{inthaoma;//座次数intbiaoji;//座位订出的标记charxingming[20];//订座者姓名charzhengjian[30];//订座者的身份证号码};structplane{intno;//航班号charqidian[30];//起飞地charzhongdian[30];//目的地chartime[30];//起飞时间intleft;//余票structzuocizuowei[12];//座位订出信息}plane[888];//888个航班容量intnum=0,i,j,t;//定义外部变量(全局变量)voidread()//读取文件的功能{FILE*fp;if((fp=fopen("file.dat","rb"))==NULL)//rb打开二进制文件{printf("出错");getchar();}i=0;while(!feof(fp))//文件是否结尾位置,不是结尾就继续{fread(&plane[i],sizeof(structplane),1,fp);//二进制读入i++;C语言程序设计课程设计报告7num++;}num--;fclose(fp);}voidsave()//保存到文件的功能{FILE*fp;if((fp=fopen("file.dat","wb"))==NULL)//第一次运行无指定,就会建立新文件file.dat{printf("出错");getchar();}for(i=0;i