您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 飞机订票系统实验报告
实验题目:订票系统实验目的:1.了解并掌握数据结构的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。实验要求:任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件实验主要步骤:航班端(一)输入航班信息,add()增加航班信息,并保存到save().(二)修改信息,在xiugai()函数里,输入要修改的航班号,选择修改的内容,如修改时间,地点并保存。客户端(一)输入起始站和终点站,在两者都符合的条件下在search()函数里查找,并输出航班信息。(二)订票:用search(),判断是否有符合的航班,有则输出并进行订票,还有输入客户信息。(三)退票:调用search(),用它的返回值判断是否有符合的航班,有则输入,并删除客户信息。1)在主函数里先了调用chushihua(),确定有hangban.dat文件,并让客户或航班端选择相应的模块。2)定义订票业务函数,在这个函数中首先调用了search函数查找需要订票的航班,用search函数的返回值判断是否有该航班。运用if语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。订票成功时运用p[i].count=p[i].count-n;将已被订的机票数减去,以显示新的即时航班信息3)定义退票业务函数:4)与订票函数相类似,只做稍稍修改就行退票成功是用p[i].count=p[i].count+n;将航班的剩余票数加上去以显示即时航班信息。飞机订票系统增加航班信息信息浏览退票业务订票业务修改航班信息删除客户信息查找航班信息信息按起终点查找退出并保存5)模块功能:设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access函数判断文件是否存在。实验结果:实验源程序:#includestdio.h//标准输入、输出头文件#includestring.h//包含字符串函数处理头文件#includeprocess.h//包含access函数的头文件#defineM1000//定义最多的航班数#defineE1000structair//定义结构体数组{intnum;//定义航班号charstart[20];//航班起始站chardes[20];//终点站chartime[10];//飞行时间intcount;//机票数量intprice;//机票价格}p[M];structclient{longid;//身份证charname[20];//客户姓名intcount;//客户订票量intnum;//航班号}c[E];数据文件是否存在输入航班信息并建立新数据文件保存下来从已有的数据文件读取已有的航班信息Y初始化结束Ninti,m=0,e=0;//定义全局变量charii[10];voidadd();//函数声明增加航班信息函数voidprint();//显示航班信息intsearch();//查找航班信息voiddingpiao();//订票业务voidtuipiao();//退票voidread();//读取文件voidsave();//保存文件voidoutput();//输出格式voidchushihua();//系统初始化voidbuild();//建立数据文件voiddel();voidxiugai();voidmain(){intj;//chushihua();//系统初始化判断是否存在原始数据文件printf(★---您好,欢迎进入飞机订票系统!---★\n);printf(===============================================================================\n);do{printf(--------☆1.增加航班信息☆--------\n\n--------☆2.浏览航班信息☆--------\n\n--------☆3.查找航班信息☆--------\n\n--------☆4.订票业务☆--------\n\n--------☆5.退票业务☆--------\n\n--------☆6.修改航班信息☆--------\n\n--------☆0.退出☆--------\n\n);printf(================================================================================\n);printf(请在0-6中选择以回车键结束:\n\n);scanf(%d,&j);switch(j){case1:add();//调用增加航班函数break;case2:print();//调用显示模块break;case3:search();//调用查找模块break;case4:dingpiao();//调用订票模块break;case5:tuipiao();//调用退票模块break;case6:xiugai();case0://退出系统save();printf(谢谢使用,再见!);break;}}while(j!=0);//判断是否调用其他函数}voidchushihua()//定义系统初始化函数{if(access(hangban.dat,0)){build();}elseread();}voidbuild()//定义建立数据文件函数{FILE*fp;//定义文件指针if((fp=fopen(hangban.dat,wb))==NULL)//打开文件并判定是否出错{printf(创建文件失败!);//打印出错提示getchar();return;}printf(请依次输入航班信息(以回车键结束):\n);//打印提示信息printf(--------------------------------------------------------------------------\n);for(i=0;iM;i++){printf(请输入航班号:);scanf(%d,&p[i].num);//输入航班号printf(请输入起始站:);scanf(%s,p[i].start);//输入起始站printf(请输入终点站:);scanf(%s,p[i].des);//输入终点站printf(请输入时间(星期几):);scanf(%s,p[i].time);//输入时间printf(请输入机票数:);scanf(%d,&p[i].count);//输入机票数printf(%d,&p[i].price);fwrite(&p[i],sizeof(structair),1,fp);m++;printf(添加完毕,是否继续添加?请键入y或n以回车键结束:);scanf(%s,ii);if(strcmp(ii,y)!=0)//判断是否继续添加航班信息{fclose(fp);//关闭文件return;}}}voidread()//定义读取文件函数{FILE*fp;if((fp=fopen(hangban.dat,r))==NULL){printf(创建文件失败!);getchar();return;}i=0;while(!feof(fp)){fread(&p[i],sizeof(structair),1,fp);//逐块读取数据i++;m++;//计算存在航班数}m--;fclose(fp);}voidsave()//定义保存函数{FILE*fp;if((fp=fopen(hangban.dat,wb))==NULL){printf(创建文件失败!);getchar();return;}for(i=0;im;i++)//逐块保存数据fwrite(&p[i],sizeof(structair),1,fp);fclose(fp);}voidadd()//定义增加航班信息函数{do{printf(请依次输入您要增加的航班信息(以回车键结束):\n);//打印提示信息printf(--------------------------------------------------------------------------\n);printf(请输入航班号:);scanf(%d,&p[m].num);//读取航班号printf(请输入起始站:);scanf(%s,p[m].start);//读取起始站printf(请输入终点站:);scanf(%s,p[m].des);//读取终点站printf(请输入时间:);scanf(%s,p[m].time);//读取时间printf(请输入机票数:);scanf(%d,&p[m].count);//读取机票数printf(请输入价格:);scanf(%d,&p[m].price);//读取机票价格m++;printf(添加完毕,是否继续添加?请键入y或n以回车键结束:);scanf(%s,ii);}while(!strcmp(ii,y));//判断是否继续添加}voidoutput()//定义输出格式函数{printf(航班号\t起始站\t终点站\t\t时间\t\t机票数\t\t价格\n);//信息标题for(i=0;im;i++)printf(%d\t%s\t%s\t\t星期%s\t\t%d\t\t%d\n,p[i].num,p[i].start,p[i].des,p[i].time,p[i].count,p[i].price);//打印出信息}voidprint()//定义显示航班信息函数{printf(\n目前我们有如下航班:\n);output();//调用输出格式函数printf(\n请按回车键返回上层菜单);getchar();getchar();}intsearch()//定义查询函数{inth=0;chara[20];charb[20];do{printf(\n请输入航班起点站:);scanf(%s,a);//输入查询的航班起点printf(\n请输入航班终点站:);scanf(%s,b);for(i=0;im;i++){if(strcmp(p[i].start,a)==0&&strcmp(p[i].des,b)==0)//按航班起点和终点站判定输出条件{printf(\n您所查找的航班信息为:\n);printf(航班号\t\t起始站\t\t终点站\t\t时间\t机票数\t机票价格\n);printf(%d\t\t%s\t\t%s\t\t星期%s\t%d\t%d\n,p[i].num,p[i].start,p[i].des,p[i].time,p[i].count,p[i].price);//显示信息printf(\n查询完毕,按回车键继续);h=1;getchar();getchar();returnh;}}printf(\n对不起,没有您需要的信息!\n);printf(是否重新查找?请键入y或n以回车键结束);scanf(%s,ii);}while(!strcmp(ii,y));//判定是否重新查找}voiddingpiao
本文标题:飞机订票系统实验报告
链接地址:https://www.777doc.com/doc-7326843 .html