数据结构课程设计报告格式及要求航空购票系统.docx

上传人:b****1 文档编号:13554705 上传时间:2023-06-15 格式:DOCX 页数:17 大小:480.54KB
下载 相关 举报
数据结构课程设计报告格式及要求航空购票系统.docx_第1页
第1页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第2页
第2页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第3页
第3页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第4页
第4页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第5页
第5页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第6页
第6页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第7页
第7页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第8页
第8页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第9页
第9页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第10页
第10页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第11页
第11页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第12页
第12页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第13页
第13页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第14页
第14页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第15页
第15页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第16页
第16页 / 共17页
数据结构课程设计报告格式及要求航空购票系统.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构课程设计报告格式及要求航空购票系统.docx

《数据结构课程设计报告格式及要求航空购票系统.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告格式及要求航空购票系统.docx(17页珍藏版)》请在冰点文库上搜索。

数据结构课程设计报告格式及要求航空购票系统.docx

数据结构课程设计报告格式及要求航空购票系统

数据结构课程设计报告

题目航空客运订票系统

专业班级

学号

姓名

指导教师

成绩

一、设计任务

航空客运订票的业务包括查询(航线和客票预订的)信息、客票预订和办理退票等。

基本要求有:

(1)系统必须存储的数据信息

i.航班信息:

飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、已订票的客户名单。

ii.客户信息:

客户姓名、证件号、座位号。

(2)系统能实现的功能

i.承办订票业务:

根据客户提出的要求(飞机低达城市、起降时间、订票数量)查询该航班信息(包括票价、折扣和剩余位置),若满足要求,则为客户办理订票手续,输出座位号。

ii.承办退票业务:

根据客户提供的情况(航班号、订票数量),为客户办理退票手续。

(3)查询功能

i.查询航线信息:

根据飞机降落地点,输出下列信息:

航班号、飞机号、起降时间、航班票价、票价折扣和剩余位置。

ii.查询客户预订信息:

根据客户证件号,输出下列信息:

航班号、飞机号和座位号。

提供的参考程序已经基本实现以上功能,但有很多不足之处,要求进行程序改进和完善。

具体任务有:

(1)分析参考程序实现了哪些功能?

指出存在的缺陷。

(2)从以下几方面完善程序:

i.功能上的完善

ii.程序结构上的完善

iii.程序控制上的完善

二、设计要点

1、改变了订票系统主界面格式及背景颜色;

2、增加了清屏功能,避免语句过多的结果;

3、实现了订票与否;

4、实现了只能输入正确航班;

5、实现了选择性别只能选择男女;

6、订票成功余票减少

三、算法实现

#include

#include

#include

#include

#defineOK1

#defineERROR0

typedefstructairline{/*飞机航班的结构定义*/

charair_num[8];//航班号

charplane_num[8];//飞机号

charend_place[20];//抵达城市

inttotal;//总位置

intleft;//剩余位置

structairline*next;

}airline;

/*顾客信息的结构定义*/

typedefstructcustomer{

charname[8];//姓名

charsex[8];//性别

charid[20];//身份证

charair_num[8];//航班号

intseat_num;//座位号

structcustomer*next;//指向下一个旅客

}customer;

/*创建航班链表*/

airline*start_air()

{

airline*a;

a=(airline*)malloc(sizeof(airline));

if(a==NULL)printf("空间不足");

returna;

}

/*创建顾客链表*/

customer*start_cus()

{

customer*c;

c=(customer*)malloc(sizeof(customer));

if(c==NULL)printf("空间不足");

returnc;

}

/*修改航班的空余座位信息*/

airline*modefy_airline(airline*l,char*air_num)

{

airline*p;

p=l->next;

for(;p!

=NULL;p=p->next)

{

if(strcmp(air_num,p->air_num)==0)

{

p->left++;

returnl;

}

printf("NOtheairline!

");

return0;

}

}

/*增加航班信息*/

intinsert_air(airline**p,char*air_num,char*plane_num,char*end_place,inttotal,intleft)

{

airline*q;

q=(airline*)malloc(sizeof(airline));

strcpy(q->air_num,air_num);

strcpy(q->plane_num,plane_num);

strcpy(q->end_place,end_place);

q->total=total;

q->left=left;

q->next=NULL;

(*p)->next=q;

(*p)=(*p)->next;

returnOK;

}

/*增加某航班的顾客信息*/

intinsert_cus(customer**p,char*name,char*sex,char*id,char*air_num,intseat_num)

{

customer*q;

q=(customer*)malloc(sizeof(customer));

strcpy(q->name,name);

strcpy(q->sex,sex);

strcpy(q->id,id);

strcpy(q->air_num,air_num);

q->seat_num=seat_num;

q->next=NULL;

(*p)->next=q;

(*p)=(*p)->next;

returnOK;

}

/*订票操作*/

intbook(airline*a,char*air_num,customer*c,char*name,char*sex,char*id)

{

airline*p=a;

customer*q=c->next;

p=a->next;

for(;p->next!

=NULL;p=p->next)

{

if(strcmp(p->air_num,air_num)==0)

break;

}

while(q->next!

=NULL)

{

q=q->next;

}

{

if(p->left>0)

{

printf("您的座位号是%d",(p->total-p->left+1));

printf("\n");

insert_cus(&q,name,sex,id,air_num,p->total-p->left+1);

--p->left;

p=p->next;

returnOK;

}

else

{

printf("没您的座啦!

");

return0;

}

}

}

/*取消订票信息操作*/

intdel_cus(customer*c,airline*l,char*name)

{

customer*p,*pr;

charair_num[8];

pr=c;

p=pr->next;

while(p!

=NULL)

{

if(strcmp(p->name,name)==0||strcmp(p->air_num,air_num)==0)

{

strcpy(air_num,p->air_num);

l=modefy_airline(l,air_num);

pr->next=p->next;

p=pr->next;

printf("取消订票成功!

\n");

returnOK;

}

pr=pr->next;

p=pr->next;

}

printf("没有这个人儿啊\n");

returnERROR;

}

/*查找航班信息操作*/

intsearch_air(airline*head)

{

airline*p=head->next;

printf("air_numplane_numend_placetotalleft\n");

for(;p!

=NULL;p=p->next)

{

printf("%s%-10s%-8s%-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);

}

returnOK;

}

/*查找顾客信息操作*/

intsearch_cus(customer*head)

{

structcustomer*q=head->next;

printf("namesexidair_numseat_num\n");

for(;q!

=NULL;q=q->next)

{

printf("%-8s%-8s%-8s%-12s%-d\n",q->name,q->sex,q->id,q->air_num,q->seat_num);

}

returnOK;

}

/*预先设置航班信息*/

intcreat_air(airline**l)

{

airline*p=*l;

inti=0;

char*air_num[3]={"007af","008af","009af"};

char*plane_num[3]={"航班1","航班2","航班3"};

char*end_place[3]={"美国","德国","法国"};

inttotal[3]={100,100,100};

intleft[3]={52,54,76};

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

insert_air(&p,air_num[i],plane_num[i],end_place[i],total[i],left[i]);

returnOK;

}

/*预先设置已订票的顾客信息*/

intcreat_cus(customer**l)

{

customer*p=*l;

inti=0;

char*name[3]={"张三","李四","王五"};

char*sex[8]={"nan","nan","nan"};

char*id[20]={"123456","654321","741852"};

char*air_num[3]={"007af","008af","009af"};

intseat_num[3]={2,5,7};

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

insert_cus(&p,name[i],sex[i],id[i],air_num[i],seat_num[i]);

returnOK;

}

voidmain()

{

system("color8E");

intt=1;

customer*cus=start_cus();

airline*air=start_air();

charname[8],air_num[8],ch,m;

charsex[8],id[20];

creat_air(&air);

creat_cus(&cus);search_air(air);

while(t==1)

{

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

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

printf("*欢迎来订票哦,亲!

*\n");

printf("*订票----------1*\n");

printf("*退票----------2*\n");

printf("*查询----------3*\n");

printf("*退出----------4*\n");

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

scanf("%s",&ch);

if(ch=='1')

{

system("cls");

search_air(air);

printf("亲,想乘坐哪辆航班嘞:

");

scanf("%s",air_num);

if(strcmp(air_num,"007af")==0||strcmp(air_num,"008af")==0||strcmp(air_num,"009af")==0)

{

printf("亲叫啥嘞:

");

scanf("%s",name);

y1:

printf("您的性别(nanornv):

");

scanf("%s",sex);

if(strcmp(sex,"nan")==0||strcmp(sex,"nv")==0)

{

printf("您的id:

");

scanf("%s",id);

}

else{gotoy1;}

printf("*确认请输入Y否则输入N:

");

scanf("%s",&m);

if(m=='Y'||m=='y')

{

printf("订票成功!

");book(air,air_num,cus,name,sex,id);

}

elseif(m=='n'||m=='N')

printf("取消航班成功!

\n");

else

{

printf("您的输入有误\n");

}

}else

printf("对不起,没有你要找的航班:

\n\n");

system("pause");}

else

if(ch=='2')

{

system("cls");

search_air(air);

printf("您不想座哪个航班号啦:

");

scanf("%s",air);

printf("您的姓名是啥来着:

");

scanf("%s",name);

del_cus(cus,air,name);

}

else

if(ch=='3')

{

system("cls");

search_air(air);

printf("\n");

search_cus(cus);

}

else

if(ch=='4')

{

t=0;

}

}

}

4、运行结果分析

1.订票系统主界面

2、订票成功操作

3、订票航班输入错误操作

4、选择男女操作

5、选择订票是与否操作

6、订票成功余票减少

五、设计总结

这次课程设计使用了C语言来编写程序,使我们的基础知识和数据结构的链表等知识得到了巩固,使我们在实践中得到了锻炼。

这次的课程设计,使我更加认识了数据结构,对调试掌握的也更加熟练了一些,对调试也有了新的认识,理解了调试的目的和意义,认识到了编程时要耐心,要严谨,同时在写程序时多多加些注释,既增加了程序的可读性,也可以使自己在读程序时更容易,更清楚。

  

通过这次课程设计,激发了我对数据结构的兴趣,提高了我对数据结构的学习动力,还让我在知识上得到了提高。

相信我会在以后的学习中会得到更多的收货。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2