数据结构课程设计报告格式及要求航空购票系统Word格式.docx
《数据结构课程设计报告格式及要求航空购票系统Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告格式及要求航空购票系统Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
iii.程序控制上的完善
二、设计要点
1、改变了订票系统主界面格式及背景颜色;
2、增加了清屏功能,避免语句过多的结果;
3、实现了订票与否;
4、实现了只能输入正确航班;
5、实现了选择性别只能选择男女;
6、订票成功余票减少
三、算法实现
#include<
stdio.h>
#include<
stdlib.h>
malloc.h>
string.h>
#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);
plane_num,plane_num);
end_place,end_place);
q->
total=total;
left=left;
next=NULL;
(*p)->
next=q;
(*p)=(*p)->
returnOK;
/*增加某航班的顾客信息*/
intinsert_cus(customer**p,char*name,char*sex,char*id,char*air_num,intseat_num)
customer*q;
q=(customer*)malloc(sizeof(customer));
name,name);
strcpy(q->
sex,sex);
id,id);
seat_num=seat_num;
/*订票操作*/
intbook(airline*a,char*air_num,customer*c,char*name,char*sex,char*id)
airline*p=a;
customer*q=c->
p=a->
p->
next!
{
if(strcmp(p->
air_num,air_num)==0)
break;
}
while(q->
=NULL)
q=q->
if(p->
left>
0)
您的座位号是%d"
(p->
total-p->
left+1));
printf("
\n"
insert_cus(&
q,name,sex,id,air_num,p->
left+1);
--p->
left;
p=p->
else
没您的座啦!
/*取消订票信息操作*/
intdel_cus(customer*c,airline*l,char*name)
customer*p,*pr;
pr=c;
p=pr->
while(p!
if(strcmp(p->
name,name)==0||strcmp(p->
strcpy(air_num,p->
air_num);
l=modefy_airline(l,air_num);
pr->
next=p->
取消订票成功!
pr=pr->
没有这个人儿啊\n"
returnERROR;
/*查找航班信息操作*/
intsearch_air(airline*head)
airline*p=head->
air_numplane_numend_placetotalleft\n"
%s%-10s%-8s%-8d%-8d\n"
p->
air_num,p->
plane_num,p->
end_place,p->
total,p->
left);
/*查找顾客信息操作*/
intsearch_cus(customer*head)
structcustomer*q=head->
namesexidair_numseat_num\n"
q!
q=q->
%-8s%-8s%-8s%-12s%-d\n"
q->
name,q->
sex,q->
id,q->
air_num,q->
seat_num);
/*预先设置航班信息*/
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]);
/*预先设置已订票的顾客信息*/
intcreat_cus(customer**l)
customer*p=*l;
char*name[3]={"
张三"
李四"
王五"
char*sex[8]={"
nan"
char*id[20]={"
123456"
654321"
741852"
intseat_num[3]={2,5,7};
p,name[i],sex[i],id[i],air_num[i],seat_num[i]);
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)
\n\n\n"
*********************************\n"
*欢迎来订票哦,亲!
*\n"
*订票----------1*\n"
*退票----------2*\n"
*查询----------3*\n"
*退出----------4*\n"
scanf("
%s"
&
ch);
if(ch=='
1'
)
system("
cls"
search_air(air);
亲,想乘坐哪辆航班嘞:
air_num);
if(strcmp(air_num,"
)==0||strcmp(air_num,"
)==0)
{
亲叫啥嘞:
name);
y1:
您的性别(nanornv):
scanf("
sex);
if(strcmp(sex,"
)==0||strcmp(sex,"
nv"
{
您的id:
id);
}
else{gotoy1;
*确认请输入Y否则输入N:
m);
if(m=='
Y'
||m=='
y'
{
订票成功!
book(air,air_num,cus,name,sex,id);
elseif(m=='
n'
N'
printf("
取消航班成功!
else
{
printf("
您的输入有误\n"
}else
对不起,没有你要找的航班:
\n\n"
system("
pause"
2'
system("
您不想座哪个航班号啦:
air);
您的姓名是啥来着:
del_cus(cus,air,name);
3'
search_air(air);
search_cus(cus);
4'
t=0;
4、运行结果分析
1.订票系统主界面
2、订票成功操作
3、订票航班输入错误操作
4、选择男女操作
5、选择订票是与否操作
五、设计总结
这次课程设计使用了C语言来编写程序,使我们的基础知识和数据结构的链表等知识得到了巩固,使我们在实践中得到了锻炼。
这次的课程设计,使我更加认识了数据结构,对调试掌握的也更加熟练了一些,对调试也有了新的认识,理解了调试的目的和意义,认识到了编程时要耐心,要严谨,同时在写程序时多多加些注释,既增加了程序的可读性,也可以使自己在读程序时更容易,更清楚。
通过这次课程设计,激发了我对数据结构的兴趣,提高了我对数据结构的学习动力,还让我在知识上得到了提高。
相信我会在以后的学习中会得到更多的收货。