航空订票系统实验报告文档格式.docx

上传人:b****1 文档编号:3317712 上传时间:2023-05-01 格式:DOCX 页数:23 大小:305.93KB
下载 相关 举报
航空订票系统实验报告文档格式.docx_第1页
第1页 / 共23页
航空订票系统实验报告文档格式.docx_第2页
第2页 / 共23页
航空订票系统实验报告文档格式.docx_第3页
第3页 / 共23页
航空订票系统实验报告文档格式.docx_第4页
第4页 / 共23页
航空订票系统实验报告文档格式.docx_第5页
第5页 / 共23页
航空订票系统实验报告文档格式.docx_第6页
第6页 / 共23页
航空订票系统实验报告文档格式.docx_第7页
第7页 / 共23页
航空订票系统实验报告文档格式.docx_第8页
第8页 / 共23页
航空订票系统实验报告文档格式.docx_第9页
第9页 / 共23页
航空订票系统实验报告文档格式.docx_第10页
第10页 / 共23页
航空订票系统实验报告文档格式.docx_第11页
第11页 / 共23页
航空订票系统实验报告文档格式.docx_第12页
第12页 / 共23页
航空订票系统实验报告文档格式.docx_第13页
第13页 / 共23页
航空订票系统实验报告文档格式.docx_第14页
第14页 / 共23页
航空订票系统实验报告文档格式.docx_第15页
第15页 / 共23页
航空订票系统实验报告文档格式.docx_第16页
第16页 / 共23页
航空订票系统实验报告文档格式.docx_第17页
第17页 / 共23页
航空订票系统实验报告文档格式.docx_第18页
第18页 / 共23页
航空订票系统实验报告文档格式.docx_第19页
第19页 / 共23页
航空订票系统实验报告文档格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

航空订票系统实验报告文档格式.docx

《航空订票系统实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《航空订票系统实验报告文档格式.docx(23页珍藏版)》请在冰点文库上搜索。

航空订票系统实验报告文档格式.docx

表明产品名及开发人员情况。

三.概要设计

(一)数据类型定义

a)已订票人员的结点:

typedefstructEdNode

{

charEname[15];

//已订客户姓名

intEnum;

//订票数

charEgrade;

//航等号

charELocate[8];

//座位号,形式1-2,表示订了两张票,其一张是1号位,另一张是2号位

b)候补客户人员的结点:

typedefstructIngNode

charIname[15];

intInum;

charIgrade;

}IngNode,*IngList;

C)航班结点:

structFlight//航班结点

charID[7];

//航班号

charEndName[10];

//终点站名

charday[4];

//起飞的日期如表示Mon,其为星期一

intdaytimetoint;

//加入的日期转成数值如Sun,则它为0;

Mon,它为1

intdinger[3];

//各舱等的定额票

intlast[3];

//各舱等的余票量

EdListE;

//已订客户名单的指针

IngQueueI;

//候补客户名单的指针

}F;

(二)函数定义

候补结点队列的一系列函数

函数名:

intInitQueue(IngQueue*Q);

intDeleteQueue(IngQueue*Q,IngList*x);

intEnterQueue(IngQueue*Q,IngNode*x);

intEmptyQueue(IngQueue*Q);

初始条件:

InitQueue(&

Q);

操作结果:

队列初始化

出队列

进队列

判空

在Refund函数暂用的候补栈的一系列函数

voidInitStack(IngStack*S);

intPush(IngStack*S,IngNode*x);

intPop(IngStack*S,IngList*x);

intIsEmpty(IngStack*S);

InitStack(&

S);

栈的初始化

进栈

出栈

判空

已订票客户结点的单链表初始化函数

intInitList(EdList*L);

InitList(&

L);

单链表初始化

主菜单控制函数

intMenu(FlightF[]);

FlightF里面队列,单链表的初始化

(1)航班查询

(2)用户订票

(3)用户退票

(4)开发简介

航班查询函数

intQuery(FlightF[]);

进行航班信息查询

用户订票函数

函数名:

intBook(FlightF[]);

进行用户订票操作

用户退票函数

intRefund(FlightF[]);

进行用户退票操作

开发简介函数

voidIntroduce(FlightF[]);

展现开发信息

各模块的界面菜单的一系列函数

voidBookMenu();

voidQueryMenu();

voidRefundMenu();

订票操作的界面

查询操作的界面

退票操作的界面

(三)

主程序流程

(四)各模块各函数调用

四.详细设计

(一)数据定义

(二)主要算法

intMenu(FlightF[])//主菜单函数

while(YN=='

Y'

||YN=='

y'

{

system("

cls"

);

printf("

\n"

\t\t\t数据结构课程设计"

\n\n"

\t\t\t航空订票系统"

\t\t\t(Q)uery\t航班查询\n"

printf("

\t\t\t(B)ook\t用户订票\n"

\t\t\t(R)efund\t用户退票\n"

\t\t\t(I)ntroduce\t开发简介\n"

\t\t\t(E)xit\t退出系统\n"

\n\n请键入您需要的操作——"

scanf("

%c"

&

temp);

getchar();

switch(temp)

{

case'

Q'

:

q'

Query(F);

YN='

N'

;

break;

}

case'

B'

b'

Book(F);

}

……

return1;

订票函数

intBook(FlightF[])//订票函数

charzhongjiezifu[4];

intbiaozhi=1;

intzhongjie;

IngNode*p;

EdNode*q,*s;

while(biaozhi)

BookMenu();

printf("

"

\n\n请输入航班号:

scanf("

%s"

ID);

while(i<

11)

if(strcmp(ID,F[i].ID)==0)

{

flag=1;

break;

i++;

}

if(flag==1)

while(grade<

'

1'

||grade>

3'

printf("

请输入您要订的舱等号(1-3):

grade);

请输入您要订票数额:

%d"

count);

if(count>

F[i].last[grade-'

0'

-1])

很抱歉,您所要求的机票数大于此班机的余票量!

!

您希望列入到候补名单吗?

请输入(Y|N):

scanf("

YN);

if(YN=='

{

printf("

请输入您的姓名:

scanf("

name);

p=(IngNode*)malloc(sizeof(IngNode));

strcpy(p->

Iname,name);

p->

Inum=count;

Igrade=grade;

EnterQueue(&

(F[i].I),p);

}

else

{

\n按B返回主菜单,按R重新订票:

……

}//else

}//if

else

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

strcpy(q->

Ename,name);

q->

Enum=count;

Egrade=grade;

if(count==1)

//使得已订票结点中的座位charELocate[8]格式化

//将其内容填充为%的形式,其座位号就是一个字符数值

//(如12,代表一张12号位子的票)

}

else。

//使得已订票结点中的座位charELocate[8]格式化

//将其内容填充为%-%形式(如2-3,就是2号、3号两张座位的号;

s=F[i].E;

while(s->

next!

=NULL)

if(strcmp(name,s->

next->

Ename))

s=s->

next;

break;

next=s->

s->

next=q;

\n\n订票成功!

\n您的座位号是——%s\n\n"

q->

ELocate);

}//else

}//if

else

printf("

很抱歉,没有此航班!

}//else

}//while

return1;

}//Book

查询函数

intQuery(FlightF[])

structtm*local;

//系统时间的结构体

time_tt;

t=time(NULL);

local=localtime(&

t);

……

for(;

k<

j;

k++)//以下操作是获得航班离当天的最近一天

%8s%9s%10s%8d%6d%7d\n"

EndName,ID,day,last123);

judge=F[biaoji[k]].daytimetoint-local->

tm_wday;

if(flag)

nearer=judge;

nearday=biaoji[k];

flag=0;

if(nearer<

0&

&

judge<

nearer)

nearday=biaoji[k];

elseif(nearer>

judge>

elseif(judge>

=0&

nearer<

0)

}

printf("

\n\n最近的一趟航班\n\n"

EndName,ID,day,last123);

……

退票函数

intRefund(FlightF[])//退票函数

//以下介绍的是一个人退票之后,而在候补人员中询问订票的情况

while(!

EmptyQueue(&

(F[i].I))//将候补队列的结点依次出队,

{//判断他人退票之后的余票能否给予DeleteQueue(&

(F[i].I),&

r);

//候补队列结点。

if(不能满足候补人员的要求)//如不满足要求,进入S栈;

Push(&

S,r);

//如满足要求,则当前结点成为已订票人员,

temp=(EdNode*)malloc(sizeof(EdNode));

strcpy(temp->

Ename,r->

Iname);

temp->

Egrade=r->

Igrade;

Enum=r->

Inum;

将其座位号填充格式化;

s=F[i].E;

if(strcmp(temp->

Ename,s->

s=s->

else

break;

s->

next=temp;

\n\n候补名单中%s订票成功!

temp->

Ename);

\n%s的座位号是:

%s\n\n"

Ename,temp->

}//else

while(!

IsEmpty(&

S))//把S栈的结点出栈,依次进入候补队列

Pop(&

S,&

EnterQueue(&

(F[i].I),r);

……

五调试分析

(一)空间复杂度分析

此程序中的数据结构有单链表,栈和队列及一维数组。

其空间复杂度均为一维的,O(n).

(二)时间复杂度分析

所以其的时间复杂度均为O(n).

六.用户使用说明

查询

共有有11趟内置航班,具体情况参见该产品的FlightHelp.xls文件。

订票

退票

开发简介

七.测试结果

参见六.用户使用说明(图)

八.附录

(一)各模块的完成人员

数据类形,结构设计:

吴若雪

基于数据结构的栈,队列系列函数:

张莎莎,段美园,刘蒙,赵丹

主菜单函数:

订票函数:

张莎莎,吴若雪

查询函数:

吴若雪,段美园

退票函数:

赵丹,张莎莎

开发简介:

刘蒙,段美园

(二)产品

产品包:

航空订票系统.rar

开发说明书:

航空订票系统开发说明书

产品源代码名:

航空订票系统.cpp

开发文档:

开发成员名单.xls

帮助文档:

帮助.xls

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

当前位置:首页 > 初中教育 > 语文

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

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