数据结构-航空客运订票系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告

课程名称:数据结构

设计题目:航空客运订票系统院系:

班级:

设计者:

学号:

指导教师:

课程设计报告

一、题目分析

主要功能包括:

1、录入:可以录入航班情况(如:输入航班号,飞机编号,查询起降时间,起飞抵达城市,剩余的票数)。

2、查询:可以查询某个航线的情况(如:输入航班号,飞机编号,查询起降时间,起飞抵达城市,剩余的票数);可以输入降落城市及航班号,查询飞机航班情况。

3、订票:根据客户要求(航班号、订票数量)查询该航班的余票数情况,若有余票,则可以订票;若余票数不足,则需要重新询问客户要求,否则不能完成订票。

4、退票:可退票,根据客户的姓名,订票数量查询是否为真实信息,为客户办理退票。

5、退出系统。

二、总体设计

拿到课程设计题目后,经过仔细的研究,还是决定做航空客运订票系统,它可以使自己很好的巩固在数据结构当中所学到的知识以及各算法,做到学以致用,并在运用的基础上,进一步去创新。

1、主程序流程图及其说明

主程序的流程图如下图所示:

利用switch语句,用户只需根据自己的需要,输入相应的命令即可达到效果。例如,若需要查询航班信息时,则输入2;需要为客户预定机票时,则输入4;若需要退出系统,则输入5即可。

2、子程序流程图及其说明

⑴、录入航班信息的流程图及其说明:

主要功能是将新的航班信息写入新建链表中,然后把新链表与储存航班的链表合并,得到新的航班信息,实现对新航班的增加。

录入航班信息的流程图如下图所示:

⑵、查询航班信息流程图及其说明:

先输入所要查找的航班,可通过降落城市查询或根据航班号查询。然后判断该航班是否存在,若存在,则输出相关的航班信息;若不存在,则提示该航班不存在。

查询航班信息的流程图如下图所示:

⑶、订票、退票流程图及其说明:

订票说明:先输入降落城市,找到该航班并显示该航班信息,若找不到则提示不存在该航班。再通过需要订票的数量来判断余票量是否足够。若足够则录入客户姓名,完成订票;若余票不足,则提示是否要取消并重新订票。

订票的流程图如下图所示:

退票说明:先通过输入客户的姓名及订票数目,确定是否存在该客户信息,若符合条件,则完成退票;若无该客户信息,则提示该航班没有人订票或者是该客户没有订该航班的票。退票的流程图如下图所示:

三、详细设计

1、数据结构设计

typedef struct booked

{ //单链表

char name1[15]; //已订票客户姓名

int number1; //已订票数量

struct booked *next1;

}booked,*Link;

typedef struct book

{ //单链表

char name2[15]; //预定票客户姓名

int number2; //要订票数量

struct book *next2; //下一个链队结点指针

}book,*Qptr;

typedef struct{

Qptr front; //单链队头结点

Qptr rear; //单链队尾结点

}linkQueue;

2、函数说明

(1) 主函数

main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。

(2) 其他各功能函数包括

3、分工函数设计(截图分析及相关说明)

⑴、主函数

void main()

{

H=(struct booked*)malloc(sizeof(booked));

Q.front=Q.rear=(Qptr)malloc(sizeof(book)); //申请空间并初始化队列InitLinklist();

int n;

do{ //打印主界面

printf("\t+++++++++++++++++++++++++++++\n\n");

printf("\t*->1. 录入航班信息*\n\n");

printf("\t*->2. 查询航班信息*\n\n");

printf("\t*->3. 订票功能*\n\n");

printf("\t*->4. 退票功能*\n\n");

printf("\t*->5. 退出*\n\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t请选择:");

scanf("%d",&n);

printf("\n");

switch(n)

{

case 1:enter(); //录入功能

break;

case 2:refer(); //查询功能

break;

case 3:reserve(); //订票功能

break;

case 4:refund(); //退票功能

break;

case 5:

printf("【感谢使用航空客运订票系统】\n");

break; //退出

}

}while(n==1 ||n==2||n==3||n==4);

}

[运行结果]:

⑵、录入航班信息

void enter() //录入航班信息

{

int j=1,m;

do{

if(!InsertLinklist(L)) //向其中加入航班信息

{

printf("内存已满\n");

}//向链表中加一结点

printf("\t 是否要输入下一个航线记录?\n");

printf("\t 是请输入1\n");

printf("\t 否请输入2\n");

相关文档
最新文档