c语言飞机订票系统作用,C语言飞机订票系统方案

《C语言飞机订票系统方案》由会员分享,可在线阅读,更多相关《C语言飞机订票系统方案(16页珍藏版)》请在人人文库网上搜索。

1、课程设计课程:数据结构专业班级: xx 软件工程 xx 班姓名: xx学号: xxx姓名: xxx学号: xxx设计时间: xxx指导老师: xxx.课程设计题:飞机订票系统一、 设计目的1 掌握结构体数组的表示和存储。2. 掌握链表的存储和操作。3 掌握文件的操作。二、设计内容和要求1.任务:通过此系统可以实现如下功能:录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票: 订票情况可以存在一个数据文件中,。

2、结构自己设定。可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息: 当航班信息改变可以修改航班数据文件。要求: 根据以上功能说明,设计航班信息,订票信息的存储结.构,设计程序完成功能设计思想:管理操作系统,主要考虑的是信息的录入,这里利用文件的读写完成该功能;输出,查询以及删除,利用结构数组存储航班与客户信息,依次对订票,退票,查询及相关操作编写成子程序,然后再主程序中调用,这样程序看起来相当简练,而且易读懂;算法设计分析:(次系统运行环境为VC6.0)1.txtbeijingsha。

3、nghai11120111806 1002shanghaiwuhang22 1202214 02 1101wuhangchibi33 13033 1401 502(此文件是程序执行航班信息录入时自动生成,在信息读取时需要调用)首先是航班于客户信息的存储,结构数组的利用很好的解决该问题;其次是文件的操作,在主函数中利用文件的读与写;下面介绍订票退票.以及查询操作的实现。1 订票:首先输入出发地与目的地,查找是否有相应的航班信息,在航2 班票数足够的情况下,录入客户信息,提示操作成功;否则失败。3 退票:输入退票客户的姓名与身份号码,查找到该客户信息后进行退票操作,完成后对应航班票数加 1;若没有。

4、该客户信息,提示查无此人。查询:输入客户姓名与身份号码,若查到有该客户信息,显示该客户的航班情况;否则提示差无此人。/ 飞机定票管理系统#include#include#define N 10struct flightchar start10;/出发地char end10;/目的地int s_month;/出发时间月份 , 天 , 小时 , 分钟int s_day;int s_hour;.int s_minute;int d_month;/到达时间月份 , 天,小时 , 分钟int d_day;int d_hour;int d_minute;int coast_t;/历时多久int coast。

5、_m;/票价int num;/剩余票数/int bianhao;/机票编号airN;/结构体数组存储航班信息/ 客户信息struct conint number;/定票者的证件号码char name10;/定票者的名字char start10;/出发地char end10;/目的地int s_month;/出发时间月份 , 天 , 小时 , 分钟int s_day;int s_hour;int s_minute;int d_month;/到达时间月份 , 天,小时 , 分钟int d_day;int d_hour;int d_minute;.int coast_t;/历时多久int coast。

6、_m;/票价/int bianhao;/机票编号people100;/ 定票 , 输出发地与目的地 , 时间 , 反馈剩余票 , 票价book(int t)int i,month,day,p,q,k=0;/k为判断输入的信息是否有误char start10,end10;printf(定票 :n);/ 输入查询的航班信息 , 以便搜索while(k=0)printf( 请输入出发地 , 目的地 , 出发日期 :n); /*gets(start);gets(end);/*这里输入时应注意用回车键 , 否则默认字符串存入start*scanf(%d,%d,&month,&day);/*/scanf(。

7、%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,airi.start);q=strcmp(end,airi.end);.if(p=0&q=0&month=airi.s_month&day=airi.s_day)k=1;/信息输入无误 , 即找到匹配信息printf(由%s到%s时间为 %d月 %d号的航班票价为%d,余票为%dn,airi.start,airi.end,。

8、airi.s_month,airi.s_day,airi.coast_m,airi.num);/ 更新信息 , 将客户信息存储if(airi.num=0)printf(票已售完 , 如有不便请谅解!nnnn);elseairi.num=airi.num-1;printf(请输入您的证件号码与姓名:n);scanf(%d,%s,&peoplet.number,peoplet.name);getchar();strcpy(peoplet.start,airi.start);strcpy(peoplet.end,airi.end);peoplet.s_month=airi.s_month;peopl。

9、et.s_day=airi.s_day;peoplet.s_hour=airi.s_hour;peoplet.s_minute=airi.s_minute;peoplet.d_month=airi.d_month;peoplet.d_day=airi.d_day;peoplet.d_hour=airi.d_hour;peoplet.d_minute=airi.d_minute;.peoplet.coast_t=airi.coast_t;peoplet.coast_m=airi.coast_m;/ peoplet.bianhao=airi.bianhao; printf( 恭喜您定票成功 !nn。

10、nn);t+;/ system(pause);if(k=0)printf( 信息输入有误 n);printf( 是否继续定票 ?0 为继续 1 为退出 n); scanf(%d,&k);getchar();return t;/ 退票 , 并将客户信息栏中该客户信息清楚 , 所乘航班票数加 1 re_ti(int t)int i,j,nu_mber,k=0;/k为判断是否查找到客户信息char na_me10;printf(退票 :n);.printf(请输入证件号码与客户姓名:n);scanf(%d,%s,&nu_mber,na_me);getchar();for(i=0;i100;i+)if。

11、(nu_mber=peoplei.number&strcmp(na_me,peoplei.name)=0)k=1;/找到该客户信息/ 退票后 , 与该客户对应航班票数增 1 for(j=0;jN;j+)if(strcmp(peoplei.start,airj.start)=0&strcmp(peoplei.end,air j.end)=0&peoplei.s_month=airj.s_month&peoplei.s_day=airj.s_d ay)airj.num=airj.num+1;/ 将客户信息依次向前移动for(j=i;j100;j+)/ printf(成功删除该客户信息!n);peo。

12、plej.number=peoplej+1.number;strcpy(peoplej.name,peoplej+1.name);strcpy(peoplej.start,peoplej+1.start);.strcpy(peoplej.end,peoplej+1.end);peoplej.s_month=peoplej+1.s_month;peoplej.s_day=peoplej+1.s_day;peoplej.s_hour=peoplej+1.s_hour;peoplej.s_minute=peoplej+1.s_minute;peoplej.d_month=peoplej+1.d_mo。

13、nth;peoplej.d_day=peoplej+1.d_day;peoplej.d_hour=peoplej+1.d_hour;peoplej.d_minute=peoplej+1.d_minute;peoplej.coast_t=peoplej+1.coast_t;peoplej.coast_m=peoplej+1.coast_m;t=t-1;/删除该客户信息后, 客户记录减去1if(k=0)printf(查无此人 !n);printf(nnnn);return t;/ 查询信息,出入所要查询的顾客的航班信息,并给出错误处理check()int i,nu_mber,k=0;/k为判断是否。

14、查找到客户信息char na_me10;printf(查询 :n);.printf(请输入证件号码与客户姓名:n);/ getch();/fflush(stdin);scanf(%d,%s,&nu_mber,na_me); for(i=0;i100;i+)if(nu_mber=peoplei.number&strcmp(na_me,peoplei.name)=0)k=1;printf(以下是该客户信息:n);printf(证件号 :%d; 姓名 :%s; 出发地 :%s; 目的地 :%s; 出发时间:%d 月 %d日 %d时 %d分n,peoplei.number,peoplei.name,p。

15、eoplei.start,peoplei.end,peoplei.s_month,peoplei.s_day,peoplei.s_hour,peoplei.s_minute);printf(nnnn);if(k=0)printf(查无此人 !nnnn);main()/ 使用文件初始化信息int s,p,q=0,i;/p,q为循环判断变量int t=0;./*FILE *fp;char name=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。

16、%4d%4d%4dn,airi.star t,airi.end,airi.s_month,airi.s_day,airi.s_hour,airi.s_minute,airi.d_month,airi.d_day,airi.d_hour,airi.d_m inute,airi.coast_t,airi.coast_m,airi.num);fclose(fp);*/FILE *fp;char name=1.txt;if(!(fp=fopen(1.txt,r)printf(error!n);for(i=0;i3;i+)fscanf(fp,%15s%15s%4d%4d%4d%4d%4d%4d%4d%4。

17、d%4d%4d%4dn,&airi.star t,&airi.end,&airi.s_month,&airi.s_day,&airi.s_hour,&airi.s_minute,&airi.d_month,&airi.d_day,&airi.d_hour,&airi .d_minute,&airi.coast_t,&airi.coast_m,&airi.num);fclose(fp);./ char name; /read conument while(q=0)printf(*n);printf(请选择服务种类 :n1为定票 ;2 为退票 ;3 查找信息 ;0 为退出 n);printf(*n。

18、);/ system(pause);scanf(%d,&s);getchar();switch(s)case 1:t=book(t);/订票操作break;case 2:t=re_ti(t);/退票操作break;case 3:check();/查找客户信息是否存在break;case 0:printf(航空集团祝福您旅途愉快!);printf(您确定离开界面 ?1/0n);scanf(%d,&p);if(p=1)q=1;.else q=0;输入从北京到上海的航班,录入客户信息,当前票数为2;输入查询的客户证件号码与姓名,找到后输出客户的航班信息;.输入退票者的信息,完成后在进行查找操作时确定。

19、已经没有该客户信息;退出界面;收获及体会:通过此次实验,使我对结构数组有了更深刻的理解,也认识到了它的一些缺陷,就是如果对它进行删除以及增添信息时,信息的移动有点麻烦;这时如果用链表进行操作的话会相对简单些;于此同时,语言这类学科,用着就会熟练起来,程序开始时,生疏的地方很多,久而久之,用起来就熟练了;.主函数选择服务种建立 1.txt 文件,将航班信息写入,用于子程序调用;1 调用2 调用3 调用订票子退票子查询子程序程序程序4 退出输入出发航班输入客户信输入客户信信息息息信息匹配删除该客若找到该则记录客户信息,客户则输户信息,所对应航出他的信否则给出班票数增息,否则处理情况加提示没有继续还是退出继续还是退出继续还是退出到主服务?到主服务?到主服务?子程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本实验课题主要是要解决数据在文件中的读取,航班信息用文件保存,因而要提供文件的输入输出操作;航班信息浏览功能要提供现实操作;要查询的航线需要提供查找功能存储客户信息和客户订票信息,并能浏览和查询客户订票信息;另外要提供键盘式选择菜单以实现功能选择。此实验需要在CodeBlocks等C语言编译平台上完成同时本实验要求所写的程序可以流畅的在编译平台上运行。首先为用户提供一个菜单,展示各个选项的功能,用户可输入一个选项(数字),执行相应的功能,通过运用switch语句对用户输入的数字进行处理判断出用户想要执行的操作。一共有9个选项,第3个和第6选项没有使用函数,其他模块分别对应着一个函数。 航班信息的写入(定义FILE *fp指针),先将将航班次数写入文件,以结构体数组的形式来保存键盘上输入的每条航线相应的信息。然后再用fprintf函数的格式写入方式将数组中的数据写入文档中。 客户信息的写入(定义FILE *fp指针),先将将客户人数写入文件,以结构体数组的形式来保存键盘上输入的每位客户相应的信息。然后再用fprintf函数的格式写入方式将数组中的数据写入文档中。 航班信息的读取,先定义结构体数组,从文件中读取航班航班号、起始终点站等信息写入到结构体数组fly中,在用fscanf函数的格式读取方式将文档中相应的数据保存在相应的结构体数组里定义的变量中。 用户信息的读取,先定义结构体数组,从文件中读取用户的证件号姓名等信息写入到结构体数组cus中,在用fscanf函数的格式读取方式将文档中相应的数据保存在相应的结构体数组里定义的变量中。 浏览的功能,是按不同的要求分别将航班信息和客户信息排序出来,然后按排好的序输出出来。 查询显示等功能,可以通过读取得到的结构体数组,进行重写文档,打印等方式实现功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值