搜档网
当前位置:搜档网 › C语言飞机订票系统

C语言飞机订票系统

C语言飞机订票系统
C语言飞机订票系统

课程设计

课程:数据结构

专业班级: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;

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;umber&&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].e nd,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()

{

tart,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].num);

fclose(fp);

*/

FILE *fp;

char name[]="";

if(!(fp=fopen("","r")))

printf("error!\n");

for(i=0;i<3;i++)

fscanf(fp,"%15s%15s%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d\n",&a ir[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_h our,&air[i].d_minute,&air[i].coast_t,&air[i].coast_m,&air[i].nu m);

fclose(fp);

// char name;

//read conument

while(q==0)

{

printf("******************************************************* ******\n");

printf("请选择服务种类:\n1为定票;2为退票;3查找信息;0为退出\n");

printf("******************************************************* ******\n");

// 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/0\n");

scanf("%d",&p);

if(p==1)q=1;

else q=0;

}

}

}

}

输入从北京到上海的航班,录入客户信息,当前票数为2;

输入查询的客户证件号码与姓名,找到后输出客户的航班信息;

输入退票者的信息,完成后在进行查找操作时确定已经没有该客户信息;

退出界面;

收获及体会:

通过此次实验,使我对结构数组有了更深刻的理解,也认识到了它的一些缺陷,就是如果对它进行删除以及增添信息时,信息的移动有点麻烦;这时如果用链表进行操作的话会相对简单些;于此同时,语言这类学科,用着就会熟练起来,程序开始时,生疏的地方很多,久而久之,用起来就熟练了;

相关主题