C语言飞机订票系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程:数据结构
专业班级:xx软件工程 xx班
姓名:xx
学号:xxx
姓名:xxx
学号:xxx
设计时间:xxx
指导老师:xxx
课程设计题:飞机订票系统
一、设计目的
1.掌握结构体数组的表示和存储。
2. 掌握链表的存储和操作。
3.掌握文件的操作。
二、设计内容和要求
1. 任务:通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起
飞抵达城市,查询飞机航班情况;
订票:订票情况可以存在一个数据文件中,结构自己设定。可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票:可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程
序完成功能
设计思想:
管理操作系统,主要考虑的是信息的录入,这里利用文件的读写完成该功能;输出,查询以及删除,利用结构数组存储航班与客户信息,依次对订票,退票,查
询及相关操作编写成子程序,然后再主程序中调用,这样程序看起来相当简练,
而且易读懂;
算法设计分析:
(次系统运行环境为)
beijing shanghai 1 1 12 0 1 1 18 0 6 100 2
shanghai wuhang 2 2 12 0 2 2 14 0 2 110 1
wuhang chibi 3 3 13 0 3 3 14 0 1 50 2
(此文件是程序执行航班信息录入时自动生成,在信息读取时需要调用)
首先是航班于客户信息的存储,结构数组的利用很好的解决该问题;
其次是文件的操作,在主函数中利用文件的读与写;下面介绍订票退票以及查询
操作的实现。
1订票:首先输入出发地与目的地,查找是否有相应的航班信息,在航2班票数足
够的情况下,录入客户信息,提示操作成功;否则失败。
3退票:输入退票客户的姓名与身份号码,查找到该客户信息后进行退票操作,完
成后对应航班票数加1;若没有该客户信息,提示查无此人。
查询:输入客户姓名与身份号码,若查到有该客户信息,显示该客户的航班情况;否则提示差无此人。
tart);q=strcmp(end,air[i].end);
if(p==0&&q==0&&month==air[i].s_month&&day==air[i].s_day)
{
k=1;tart,air[i].end,air[i].s_month,air[i].s_day,air[i].coa st_m,air[i].num);
um==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;
ianhao=air[i].bianhao;
printf("恭喜您定票成功!\n\n\n\n");
t++;
}
}
}
umber&&strcmp(na_me,people[i].name)==0)
{
k=1;tart,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;
}
}
umber=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;