数据结构航空客运订票系统Word下载.docx
- 文档编号:20889114
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:26
- 大小:204.49KB
数据结构航空客运订票系统Word下载.docx
《数据结构航空客运订票系统Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构航空客运订票系统Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
2、子程序流程图及其说明
⑴、录入航班信息的流程图及其说明:
主要功能是将新的航班信息写入新建链表中,然后把新链表与储存航班的链表合并,得到新的航班信息,实现对新航班的增加。
录入航班信息的流程图如下列图所示:
⑵、查询航班信息流程图及其说明:
先输入所要查找的航班,可通过降落城市查询或根据航班号查询。
然后判断该航班是否存在,假设存在,那么输出相关的航班信息;
假设不存在,那么提示该航班不存在。
查询航班信息的流程图如下列图所示:
⑶、订票、退票流程图及其说明:
订票说明:
先输入降落城市,找到该航班并显示该航班信息,假设找不到那么提示不存在该航班。
再通过需要订票的数量来判断余票量是否足够。
假设足够那么录入客户XX,完成订票;
假设余票缺乏,那么提示是否要取消并重新订票。
订票的流程图如下列图所示:
退票说明:
先通过输入客户的XX及订票数目,确定是否存在该客户信息,假设符合条件,那么完成退票;
假设无该客户信息,那么提示该航班没有人订票或者是该客户没有订该航班的票。
退票的流程图如下列图所示:
三、详细设计
1、数据构造设计
typedefstructbooked
{//单链表
charname1[15];
//已订票客户XX
intnumber1;
//已订票数量
structbooked*next1;
}booked,*Link;
typedefstructbook
charname2[15];
//预定票客户XX
intnumber2;
//要订票数量
structbook*next2;
//下一个链队结点指针
}book,*Qptr;
typedefstruct{
Qptrfront;
//单链队头结点
Qptrrear;
//单链队尾结点
}linkQueue;
2、函数说明
(1)主函数
main()允许用户通过菜单进展功能选择,使用相应的功能代码来调用对应的函数功能。
(2)其他各功能函数包括
函数名
功能
voidenter()
录入航班信息
voidrefer()
查询航线信息
intInsertLinklist(Linklist&
head1);
声明录入航班信息
voidcityrefer();
通过降落城市查询
voidflynumrefer();
通过航班号查询
voidreserve();
订票
voidrefund();
退票
3、分工函数设计〔截图分析及相关说明〕
⑴、主函数
voidmain()
{
H=(structbooked*)malloc(sizeof(booked));
Q.front=Q.rear=(Qptr)malloc(sizeof(book));
//申请空间并初始化队列
InitLinklist();
intn;
do{//打印主界面
printf("
\t+++++++++++++++++++++++++++++\n\n"
);
\t*->
1.录入航班信息*\n\n"
2.查询航班信息*\n\n"
3.订票功能*\n\n"
4.退票功能*\n\n"
5.退出*\n\n"
\t+++++++++++++++++++++++++++++\n"
\t请选择:
"
scanf("
%d"
&
n);
\n"
switch(n)
{
case1:
enter();
//录入功能
break;
case2:
refer();
//查询功能
case3:
reserve();
//订票功能
case4:
refund();
//退票功能
case5:
printf("
【感谢使用航空客运订票系统】\n"
//退出
}
}while(n==1||n==2||n==3||n==4);
}
[运行结果]:
2、录入航班信息
voidenter()//录入航班信息
intj=1,m;
do{
if(!
InsertLinklist(L))//向其中参加航班信息
内存已满\n"
}//向链表中加一结点
\t是否要输入下一个航线记录?
\t是请输入1\n"
\t否请输入2\n"
m);
//选择是否输入下一条航线
}while(m==1);
LinklistInitLinklist()
L=(Linklist)malloc(sizeof(fly));
if(!
L)
L->
next=NULL;
//建立一个带有头结点的单链表
return(L);
L)//向航线链表添加新的结点
Linklistp;
p=(Linklist)malloc(sizeof(fly));
//为一个新的结点分配空间
printf("
\t请依次输入下面几项内容:
\n\n"
航班号:
scanf("
%s"
p->
flynum);
飞机编号:
plane);
起飞城市:
city1);
降落城市:
city);
飞行日期:
date);
剩余的票数:
p->
rest);
p->
booked=(booked*)malloc(sizeof(booked));
//申请存储空间
book=Q.front=Q.rear=(Qptr)malloc(sizeof(book));
next=L->
next;
L->
next=p;
return1;
3、查询航班信息
①.通过降落城市查询
voidcityrefer()//通过降落城市查询
charc[15];
Linklistp=L;
intm;
\t请输入你要查询的降落城市:
c);
p=p->
if(p)
if(stricmp((*p).city,c)==0)
{
printf("
\t航班信息:
\t航班号:
%s\n"
\t飞机编号:
\t起飞城市:
\t降落城市:
\t飞行日期:
\t剩余的票数:
%d\n"
break;
}
else
\t【对不起,没有您要查找的降落城市.】\n\n"
m=0;
}while(m!
=0);
②.通过航班号查询
voidflynumrefer()//通过航班号查询
\t请输入你要查询的航班号:
if(strcmpi((*p).flynum,c)==0)
\t【对不起,没有您要查找的航班.】\n"
m=0;
四、源程序代码
#include<
stdio.h>
string.h>
stdlib.h>
math.h>
typedefstructfly
{//创立一个航线的构造体
charflynum[15];
//航班号
charplane[15];
//飞机编号
chardate[12];
//飞行日期
charcity1[15];
//起飞城市
charcity[15];
//降落城市
intrest;
//剩余的票数
structfly*next;
//指向下一个链结点的指针
structbooked*booked;
//定义一个指向已订票客户的头结点指针
structbook*book;
}fly,*Linklist;
structfly*L=NULL;
//定义全局变量
structbooked*H;
//为已订票客户链队来申请空间
linkQueueQ;
//linkQueue类型的来申请空间
LinklistInitLinklist();
//声明
//声明录入航班信息
//通过降落城市查询
//通过航班号查询
voidenter();
//录入信息
voidrefer();
//查询信息
//订票
//退票
voidrefer()//查询航线信息
\t查找航线信息\n"
\t++++++++++++++++++++++++++++++++\n\n"
1.通过降落城市查询*\n\n"
2.通过航班号查询*\n\n"
\t++++++++++++++++++++++++++++++++\n"
switch(n)
{
cityrefer();
break;
case2:
flynumrefer();
default:
break;
}
voidreserve()//订票
//Linklist类型的L来指向链表头
booked*h=H,*h1;
//booked定义客户的结点,以便插入与删除
intm=1,ticket;
intbookedt=0,bookt=0;
请输入降落城市:
p=L->
if(p){
do{//查找是否有该航班
if(!
p)
【对不起,没有您要查找的航班.】\n\n"
return;
m=stricmp(p->
city,c);
//通过比拟来判定
if(m==0)
p=p->
//促使循环
}while(m!
if(m==0)
{//当有该航班时,进展订票
do{
\n请输入您要订的票数:
scanf("
ticket);
if(ticket<
=p->
rest)
{
h=p->
booked;
if(h)
{
h1=h;
h=h->
next1;
h=(structbooked*)malloc(sizeof(booked));
printf("
请输入客户XX:
scanf("
h->
name1);
h->
number1=ticket;
next1=h1->
h1->
next1=h;
p->
rest=p->
rest-ticket;
【订票成功!
】\n"
m=2;
}
}
el
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 航空 客运 订票 系统