您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言知识学习飞机订票系统
.课程设计课程:数据结构专业班级:xx软件工程xx班姓名:xx学号:xxx姓名:xxx学号:xxx设计时间:xxx指导老师:xxx.课程设计题:飞机订票系统一、设计目的1.掌握结构体数组的表示和存储。2.掌握链表的存储和操作。3.掌握文件的操作。二、设计内容和要求1.任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:订票情况可以存在一个数据文件中,结构自己设定。可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。.修改航班信息:当航班信息改变可以修改航班数据文件。要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能设计思想:管理操作系统,主要考虑的是信息的录入,这里利用文件的读写完成该功能;输出,查询以及删除,利用结构数组存储航班与客户信息,依次对订票,退票,查询及相关操作编写成子程序,然后再主程序中调用,这样程序看起来相当简练,而且易读懂;算法设计分析:(次系统运行环境为VC6.0)1.txtbeijingshanghai111201118061002shanghaiwuhang221202214021101wuhangchibi33130331401502(此文件是程序执行航班信息录入时自动生成,在信息读取时需要调用)首先是航班于客户信息的存储,结构数组的利用很好的解决该问题;其次是文件的操作,在主函数中利用文件的读与写;下面介绍订票退票以及查询操作的实现。.1订票:首先输入出发地与目的地,查找是否有相应的航班信息,在航2班票数足够的情况下,录入客户信息,提示操作成功;否则失败。3退票:输入退票客户的姓名与身份号码,查找到该客户信息后进行退票操作,完成后对应航班票数加1;若没有该客户信息,提示查无此人。查询:输入客户姓名与身份号码,若查到有该客户信息,显示该客户的航班情况;否则提示差无此人。//飞机定票管理系统#includestdio.h#includewindows.h#defineN10structflight{charstart[10];//出发地.charend[10];//目的地ints_month;//出发时间月份,天,小时,分钟ints_day;ints_hour;ints_minute;intd_month;//到达时间月份,天,小时,分钟intd_day;intd_hour;intd_minute;intcoast_t;//历时多久intcoast_m;//票价intnum;//剩余票数//intbianhao;//机票编号}air[N];//结构体数组存储航班信息//客户信息.structcon{intnumber;//定票者的证件号码charname[10];//定票者的名字charstart[10];//出发地charend[10];//目的地ints_month;//出发时间月份,天,小时,分钟ints_day;ints_hour;ints_minute;intd_month;//到达时间月份,天,小时,分钟intd_day;intd_hour;intd_minute;intcoast_t;//历时多久.intcoast_m;//票价//intbianhao;//机票编号}people[100];//定票,输出发地与目的地,时间,反馈剩余票,票价book(intt){inti,month,day,p,q,k=0;//k为判断输入的信息是否有误charstart[10],end[10];printf(定票:\n);//输入查询的航班信息,以便搜索while(k==0){printf(请输入出发地,目的地,出发日期:\n);//***************************************************gets(start);gets(end);//**这里输入时应注意用回车键,否则默认字符串存入start**.scanf(%d,%d,&month,&day);//****************************************************//scanf(%s,%s,%d,%d,start,end,&month,&day);//getchar();printf(%s,%s,%d,%d,start,end,month,day);//扫描信息,搜索与所查询的航班匹配信息for(i=0;iN;i++){p=strcmp(start,air[i].start);q=strcmp(end,air[i].end);if(p==0&&q==0&&month==air[i].s_month&&day==air[i].s_day){k=1;//信息输入无误,即找到匹配信息printf(由%s到%s时间为%d月%d号的航班票价为%d,余票为%d\n,air[i].start,air[i].end,air[i].s_month,air[i].s_day,air[i].coast_m,air[i].num);//更新信息,将客户信息存储if(air[i].num==0)printf(票已售完,如有不便请谅解!\n\n\n\n);.else{air[i].num=air[i].num-1;printf(请输入您的证件号码与姓名:\n);scanf(%d,%s,&people[t].number,people[t].name);getchar();strcpy(people[t].start,air[i].start);strcpy(people[t].end,air[i].end);people[t].s_month=air[i].s_month;people[t].s_day=air[i].s_day;people[t].s_hour=air[i].s_hour;people[t].s_minute=air[i].s_minute;people[t].d_month=air[i].d_month;people[t].d_day=air[i].d_day;.people[t].d_hour=air[i].d_hour;people[t].d_minute=air[i].d_minute;people[t].coast_t=air[i].coast_t;people[t].coast_m=air[i].coast_m;//people[t].bianhao=air[i].bianhao;printf(恭喜您定票成功!\n\n\n\n);t++;}}}//system(pause);if(k==0){printf(信息输入有误\n);printf(是否继续定票?0为继续1为退出\n);.scanf(%d,&k);getchar();}}returnt;}//退票,并将客户信息栏中该客户信息清楚,所乘航班票数加1re_ti(intt){inti,j,nu_mber,k=0;//k为判断是否查找到客户信息charna_me[10];printf(退票:\n);printf(请输入证件号码与客户姓名:\n);scanf(%d,%s,&nu_mber,na_me);getchar();.for(i=0;i100;i++){if(nu_mber==people[i].number&&strcmp(na_me,people[i].name)==0){k=1;//找到该客户信息//退票后,与该客户对应航班票数增1for(j=0;jN;j++){if(strcmp(people[i].start,air[j].start)==0&&strcmp(people[i].end,air[j].end)==0&&people[i].s_month==air[j].s_month&&people[i].s_day==air[j].s_day){air[j].num=air[j].num+1;}}.//将客户信息依次向前移动for(j=i;j100;j++){//printf(成功删除该客户信息!\n);people[j].number=people[j+1].number;strcpy(people[j].name,people[j+1].name);strcpy(people[j].start,people[j+1].start);strcpy(people[j].end,people[j+1].end);people[j].s_month=people[j+1].s_month;people[j].s_day=people[j+1].s_day;people[j].s_hour=people[j+1].s_hour;people[j].s_minute=people[j+1].s_minute;people[j].d_month=people[j+1].d_month;people[j].d_day=people[j+1].d_day;people[j].d_hour=people[j+1].d_hour;.people[j].d_minute=people[j+1].d_minute;people[j].coast_t=people[j+1].coast_t;people[j].coast_m=people[j+1].coast_m;}t=t-1;//删除该客户信息后,客户记录减去1}}if(k==0)printf(查无此人!\n);printf(\n\n\n\n);returnt;}//查询信息,出入所要查询的顾客的航班信息,并给出错误处理check(){inti,nu_mber,k=0;//k为判断是否查找到客户信息.charna_me[10];printf(查询:\n);printf(请输入证件号码与客户姓名:\n);//getch();//fflush(stdin);scanf(%d,%s,&nu_mber,na_me);for(i=0;i100;i++){if(nu_mber==people[i].number&&strcmp(na_me,people[i].name)==0){k=1;printf(以下是该客户信息:\n);printf(证件号:%d;姓名:%s;出发地:%s;目的地:%s;出发时间:%d月%d日%d时%d分.\n,people[i].number,people[i].name,people[i].start,people[i].end,people[i].s_month,people[i].s_day,people[i].s_hour,people[i].s_minute);printf(\n\n\n\n);}}if(k==0)printf(查无此人!\n\n\n\n);}main(){//使用文件初始化信息ints,p,q=0,i;//p,q为循环判断变量intt=0;/*FILE*fp;.charname[]=1.txt;if(!(fp=fopen(1.txt,w)))printf(error!\n);for(i=0;i3;i++)fprintf(fp,%15s%15s%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d\n,air[i].start,air[i].end,air[i].s_month,air[i].s_day,air[i].s_hour,air[i].s_minute,air[i].d_month,air[i].d_day,air[i].d_hour,air[i].d_minute,air[i].coast_t,air[i].coast_m,air[i].n
本文标题:C语言知识学习飞机订票系统
链接地址:https://www.777doc.com/doc-6320478 .html