数据结构课程设计报告格式及要求航空购票系统.docx
- 文档编号:26159220
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:17
- 大小:480.54KB
数据结构课程设计报告格式及要求航空购票系统.docx
《数据结构课程设计报告格式及要求航空购票系统.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告格式及要求航空购票系统.docx(17页珍藏版)》请在冰豆网上搜索。
数据结构课程设计报告格式及要求航空购票系统
数据结构课程设计报告
题目航空客运订票系统
专业班级
学号
姓名
指导教师
成绩
一、设计任务
航空客运订票的业务包括查询(航线和客票预订的)信息、客票预订和办理退票等。
基本要求有:
(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语言来编写程序,使我们的基础知识和数据结构的链表等知识得到了巩固,使我们在实践中得到了锻炼。
这次的课程设计,使我更加认识了数据结构,对调试掌握的也更加熟练了一些,对调试也有了新的认识,理解了调试的目的和意义,认识到了编程时要耐心,要严谨,同时在写程序时多多加些注释,既增加了程序的可读性,也可以使自己在读程序时更容易,更清楚。
通过这次课程设计,激发了我对数据结构的兴趣,提高了我对数据结构的学习动力,还让我在知识上得到了提高。
相信我会在以后的学习中会得到更多的收货。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 格式 要求 航空 购票 系统