文档库 最新最全的文档下载
当前位置:文档库 › 数据结构课程设计航空订票系统

数据结构课程设计航空订票系统

数据结构课程设计航空订票系统
数据结构课程设计航空订票系统

数据结构

课程设计报告设计题目:航空客运订票系统

院系计算机学院

年级xxxxx

学生xxx

学号xxxxxxxxxxx

指导教师xxxxxxxxxxx

起止时间9-6/9-13

2013年9月10日星期二

目录

一、课程设计目的 3

二、需求分析 3

三、概要设计

1.设计步骤 4 2.系统整体结构图 5 3.功能模块及调用关系说明 5

四、详细设计和源代码

1.实现概要设计中定义数据的存储结构 6

2.查询航线信息功能的算法设计7

3.订票功能的算法设计9

4.退票功能的算法设计12

5.录入功能的算法设计 14

6.总航线预览功能的程序源代码15

五、调试分析

1.各功能的具体实例分析16

2.实验过程中出现的问题及解决方法 20

六、课程设计总结20

七、参考资料21

一、课程设计目的

(1) 熟练使用 C 语言编写程序,解决实际问题;

(2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

(4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

航空订票系统:

(1)熟练掌握链表存储结构及其建立过程和常用操作;

(2)熟练掌握队列的建立过程和常用操作;

(3)学会自己调试程序的方法并掌握一定的技巧。

二、需求分析

问题描述:航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

设计任务:通过此系统可以实现如下功能:

录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;

订票:(订票情况可以存在一个数据文件中,结构自己设定)根据客户提出的要求(日期、航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求。若需要,可预约登记排队等候。如果该航班已经无票,可以提供相关可选择航班;

退票:根据客户提供的情况(日期、航班、退票数额),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队预约的客户……退票成功后修改相关数据文件。

客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件

要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。

测试数据:由学生任意指定,但报告上要求写出多批数据测试结果。

实现提示:每条航线应包含的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票额、已订票的客户名单(包括姓名、订票额、座位号)和预约登记的客户名单(包括日期、姓名、所需票额)。这最后两项显然是一个线性表和一个队列。为查找方便、已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预料,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述八个域,其中乘员名单域为指向乘员名单链表的头指针,预约登记客户名单域为分别指向队头和队尾的指针。

情况。

三、概要设计

1.设计步骤

1)分析问题,给出数学模型,设计相应的数据结构。

提示:

(1)己订票的客户名单可以用线性表来实现。为查找方便,线性表应按照客户姓名有序,

并且为了插入和删除的方便,应以链表作为存储结构。

(2)等候替补的客户名单可以用队列来实现。由于预约人数无法预计,所以队列也应以链表作为存储结构。

(3)需将输入的航班情况登录到一张线性表上(用顺序存储结构或链表存储结构)。为了查询的方便,可以将航班情况按照航班有序或按照终点站名有序建立线性表。每条航线是这张线性表的一个记录,包含上述8个域,其中已订票的客户名单域是指向己订票的客户名单链表的头指针,等候替补的客户名单域是指向队头和队尾的指针。

2)算法设计

在已经选择好数据结构的前提下,为解决问题设计算法。

(1)确定所需模块

对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。

(2)各子模块功能描述

给出主要模块的算法描述,用流程图或伪代码表示。

(3)模块之间的调用关系

3)源程序清单

为了提高工作效率,充分利用上机调试程序的时间,要求学生在上机之前给出源程序清单。

4)用测试数据去验证算法及程序的正确性

5)算法分析

经过上机调试,源程序运行正确,并且实现算法要求的功能,解决课程设计题目中给出的问题后,分析算法的时间复杂度和空间复杂度。

2.系统整体结构图(功能模块图)

图 1.系统整体结构图

3.功能模块及调用关系说明

(1)总航线信息预览:通过调用display()预览已经建立的全部航线的相关信息(航班号、飞机号、终点站、飞行日期、定额、余票数、排队等候人数),预览完返回主菜单。

(2)查询单条航线信息:根据乘客提出的终点站名或航班号调用Search()函数来查询并输出此条航线的相关信息(航班号、飞机号、终点站、飞行日期、定额、余票数、已订票乘客名单、排队等候乘客名单)。并且查询完后询问乘客是否订票,是就调用订票Book()函数来为乘客进行订票,否就返回主菜单。

(3)办理订票业务:客户先输入的终点站名、订票数、姓名信息再来调用订票Book()函数,Book()函数根据客户提供的终点站名查询到该航线信息,若客户订票额末超过余票量,订票成功并登记信息,在订票乘员名单链表中添加乘客的信息;如果暂时余票数不足是,询问客户是否要排队等侯,如果是,则在排队等候的队列中增加该乘客的订票信息。

(4)办理退票业务:调用tuipiao()查询函数,根据客户提供的航线进行搜索根据客户提供的姓名到订票客户名单域进行查询。退票成功后,重新将航线名单域指向订票单链表的头指针。根据队列中从出的客户信息判断是否满足要求,如果满足,则将该客户的信息插入到乘客信息链表中。

(5)录入航班信息:调用CreatPlane()函数,根据输入的航班的相关的信息(航班号、飞机号、终点站、飞行日期、定额、余票数),将此航班加入到原来的航班组中。

(6)退出系统

四、详细设计和源代码

(1)已订票乘客信息(单链表)

typedef struct Cust //已订票乘客信息

{

char Name[15]; //乘客姓名

char number[10]; //乘客所乘飞机航班号

char end[15]; //乘客终点站

(2)排队等候的乘客信息

typedef struct waitNode //排队等候客户信息

{

char name[15]; //乘客姓名

int ticket; //乘客的订票数

struct waitNode *next;

}waitNode,*waitlink;

typedef struct

{

waitlink front;

waitlink rear;

}waitQueue;

(3)航班信息

typedef struct Plane //航班信息

{

char number[10]; //航班号

int planenum; //飞机号

char end[15]; //终点站

char date[10]; //飞行日期

int dinge; //成员定额

int tick; //剩余票数

int k; //排队等候的人数

Customer *first; //链接已订票客户

waitQueue Q; //链接候补客户

}PlaneLink;

2.查询单条航线信息功能的算法设计(Search( )函数功能实现的源代码)int Search(PlaneLink *p,int N)

int i=0,Q;

cout<<"===========================================\n";

cout<<" 1.按终点站名查询\n";

cout<<" 2.按航班号查询\n";

cout<<"___________________________________________\n";

cout<<">>>>>>\n";

cout<<" 请选择查询方式(1/2):"; cin>>Q;

if(Q==1)

{

char end[10];

cout<<" 请您输入要查询的航班的终点站名: "; //按站点名查询航班信息

cin>>end;

while(i

{

if(strcmp(p[i].end,end)==0) //先查看是否存在到该站点的航班

{

cout<<"\n*****************您所查询的航班信息如下******************\n";

cout<<"_________________________________________________________\n";

cout<<" 航班号飞机号终点站飞行日期余票数\n";

cout<<"

"<

cout<<"\n=========================================================\n";

break;

}

i++;

}

}

else if(Q==2)

{

char num[10];

cout<<" 请您输入要查询的航班的航班号: "; //按站点名查询航班信息

while(i

{

if(strcmp(p[i].number,num)==0) //查看是否存在该航班号的航班

{

cout<<"\n*****************您所查询的航班信息如下:****************\n";

cout<<"_________________________________________________________\n";

cout<<" 航班号终点飞行日期余票数\n";

cout<<"

"<

cout<<"\n=========================================================\n";

break;

}

i++;

}

}

display_s(p, i, N); //调用display_s()函数输出该航班的已订票乘客和排队等候乘客的名单信息

if(i

{

int j;

cout<<" 是否需要预定该航班的票(1/0):"; cin>>j;

if(j==1)

{

char name[10]; int ticket;

cout<<" 请输入订票数目、姓名:";

cin>>ticket>>name;

Book(p,p[i].end,ticket, name, N);

}

}

else { cout<<" 很抱歉,没有您查询的航班信息!\n"; }

return 0;

}

int Book(PlaneLink *p,char end[],int ticket,char name[],int N)

{

int i;

for(i=0;i

{ if(strcmp(p[i].end,end)==0) //先找出是否存在要订票的航班

{

if(p[i].tick>=ticket) //查看余票数是否>= 订票客户订票数

{

p[i].tick-=ticket;

Customer *t=(Customer *)malloc(sizeof(Customer));

t->ticket=ticket;

strcpy(t->Name,name);

strcpy(t->number,p[i].number);

strcpy(t->end,p[i].end);

t->next=p[i].first; p[i].first=t; // 此使用的是头插法将订票乘客的信息放入到链表中/

cout<<" 您订票成功!\n";

cout<<" 您的航班信息如下:\n";

cout<<"__________________________________________________\n";

cout<<" 航班号飞机号终点站飞行日期定额\n";

cout<<"__________________________________________________\n";

cout<<"

"<

cout<<"==================================================\n\n";

break;

}

else if(p[i].dinge

{ cout<<" 您预订的票数超过了航班定额,无法为您订票!\n"; break; }

else // 余票数不足时,询问乘客是否排队等候

{

cout<<" 该航班剩余票数为:"<

cout<<" 很抱歉,剩余的票数不够!\n";

cout<<" 您是否需要排队等候(Y(y)/N(n)): "; cin>>z;

if(z=='Y'||z=='y') { Queue(p,end,ticket , name, N,i); } //调用入队列函数,将乘客信息插入排队等候的人后面

break;

}

}

}

if(i>=N) {cout<<" 很抱歉,没有您所需要的航班!\n"; }

return 0;

}

int display_s(PlaneLink *p,int i,int N) //输出已定票及排队乘客的名单信息

{

if(p[i].first!=NULL) //p[i].first!=NULL说明已订票链表不为空,输出已订票乘客的名单信息

{

cout<<"****该航班的已订票乘客名单如下:****\n";

cout<<"____________________________________\n";

cout<<" 姓名订票量\n";

Customer *t=p[i].first;

while(t)

{

cout<Name<<" "<ticket<

t=t->next;

}

}

if(i

{

cout<<"****该航班等候订票的乘客名单如下: ****\n";

cout<<" 姓名订票量\n";

while(S!=NULL)

{

cout<name<<" "<ticket<

S=S->next;

}

cout<<"=====================================\n";

}

return 0;

}

附:入队函数Queue( )的源代码

int Queue(PlaneLink *p,char end[],int ticket,char name[],int N ,int i) //入队函数,将等候排队的乘客放入原来的队列中

{

system("cls");

system("color 2e");

waitlink q=(waitlink)malloc(sizeof(waitNode)); //将要的入队的结点,存储将要入队乘客的信息

strcpy(q->name,name);

q->ticket=ticket;

q->next=NULL;

if(p[i].Q.front==NULL)

{

p[i].Q.front=p[i].Q.rear=q; p[i].k++; //p[i].k用来记录排队人数

}

else

{

p[i].Q.rear->next=q;

p[i].Q.rear=q; p[i].k++;

}

cout<<"已为您登记,请耐心等候!\n";

return 0;

}

int tuipiao(PlaneLink *p,int N)

{

int i;

Customer *R,*S;

char number[10],Name[15];

cout<<">>>>>>\n";

cout<<" 请输入您的航班号与姓名:";

cin>>number>>Name;

for(i=0;i

{

if(strcmp(p[i].number,number)==0&&p[i].first!=NULL)

{

if(strcmp(p[i].first->Name,Name)==0)

{

p[i].tick=p[i].tick+p[i].first->ticket;

p[i].first=p[i].first->next;

cout<<" 您已成功退票!\n\n";

}

else

{

R=p[i].first; S=p[i].first->next;

while(S!=NULL)

{

if(strcmp(S->Name,Name)==0)

{

p[i].tick=p[i].tick+S->ticket;

R->next=S->next;

cout<<" 您已经成功退票!\n\n"; break;

}

R=R->next; S=S->next;

}

if(S==NULL) cout<<" 很抱歉,在该航班上没有找到您的姓名,请核实信息!\n\n";

}

{

waitlink Q=p[i].Q.front , q;

while(Q!=NULL)

{

if(p[i].tick>=Q->ticket)

{

if(Q==p[i].Q.front)

{

cout<<" 正在为等候的乘客"<name<<"办理订票!\n";

Book(p,p[i].end,Q->ticket,Q->name,N);

if(p[i].Q.front==p[i].Q.rear)

{

p[i].Q.front=p[i].Q.rear=NULL;

Q=Q->next;

}

else

{ p[i].Q.front=p[i].Q.front->next;

Q=Q->next;

}

}

else

{

cout<<" 正在为等候的乘客"<name<<"办理订票!\n";

Book(p,p[i].end,Q->ticket,Q->name,N);

q->next=Q->next; Q=Q->next;

}

}

else { q=Q; Q=Q->next; }

}

}

break;

}

if(strcmp(p[i].number,number)==0&&p[i].first==NULL)

cout<<" 很抱歉,该航班目前没有已订票的乘客,无法为你退票,请核实信息!\n\n"; break;

}

}

if(i>=N) cout<<" 很抱歉,没有该航班信息,无法为你退票,请核实信息!\n\n";

return 0;

}

5.录入功能的算法设计(CreatPlane( )函数的源代码)

void CreatPlane(PlaneLink *p,int n,int N)

{

int i,j;

for(i=N;i

{

p[i].first=NULL; // 带头结点的单链表为空时的条件

p[i].Q.front=p[i].Q.rear=NULL; //队列为空时的条件

cout<<">>>>>>\n";

cout<<" 请输入航班号: "; cin>>p[i].number;

cout<<" 输入终点站名: "; cin>>p[i].end;

for( j=0;j

{

if(strcmp(p[i].number,p[j].number)==0) //查看该航班号是否已经存在

{

cout<<" 已经存在该航班号!\n "; break;

}

if(strcmp(p[i].end,p[j].end)==0) // 查看是否存在到改站点的航班

{

cout<<" 已经有到该站点的航班!\n "; break;

}

}

if(j==N)

{

cout<<" 飞机号、飞行日期、成员定额:\n";

cin>>p[i].planenum>>p[i].date>>p[i].dinge;

cout<<" 录入完成!\n";

}

}

}

6.总航线预览功能的算法设计(display( )函数的源代码)

int display(PlaneLink *p,int N) //N为当前的航班数

{

cout<<"================================================================= =============\n";

cout<<" 航班号飞机号终点站飞行日期定额余票数排队等候人数\n";

cout<<"_________________________________________________________________________ _____\n";

for(int i=0;i

{

cout<

}

cout<<"================================================================= =============\n";

return 0;

}

五、调试分析

1)各功能的具体实例分析

为了调试分析方便,在程序中已经初始放入了三个航班信息,如下:

1.系统主菜单界面

2.总航线预览功能界面

3.查询单条航线功能

图1.按终点站名查询

图2.按航班号查询

图3.错误查询输出结果

4.订票功能

①.当订票的航班存在且航班的余票数≥乘客订票数时

②当订票的航班存在但余票数≤订票数≤航班的定额时

③当航班存在但订票数大于航班定额时乘客将无法排队等候了

④.当预定的航班不存在时

5.退票功能

①.当退票后余票数能够满足排队乘客的需要时

②.当航班号或姓名输入错误时,系统会输出显示以下的三种界面

图1

图2

图3

6.录入功能

2)实验过程中出现的问题及解决方法:

1、一开始错误很多,包括大量的语法错误和逻辑错误。通过反复的编译、调试、学习和

修改,更正了程序中的语法,使程序可以正常编译,运行。

2、程序健壮性方面屡屡遇到问题,在程序的测试过程中逐步发现并改进,如主菜单选择

如果输入字符型数据就会引起程序的混乱出现自动跳出;解决方法,引入新的部分从

键盘获取字符型数据,通过字符型常量与数据间的关系,将字符数据转化成整形数据。

3、程序优化,程序虽然可以运行使用,但是有很多不合理处,例如程序的运行过程对

于正确的输入情况考虑的还比较完全,但对于有误信息的输入情况考虑的不是很好,

经常输入有误或是不符合的信息时,会出现死循环或者其他一些异常。对于种情况,

我都是通过F10调试,在调试过程输入刚出错我输入的信息,然后逐句或是逐过程的

进行调试,最终都能找到问题的具体所在处,然后通过分析为什么这处会出现异常,

从这不断的调试及分析的过程中得出了这些错误的修改方法。从而不断的完善了整个

系统程序。

4、功能添加上,我是在实现基础功能的基础上再添加一些其他的比较复杂难处理的功

能,但在添加另外的功能时,常常会出现这些功能之间逻辑联系不好的问题。这些主

要就是通过调试看这些函数的连接处的代码的调试情况,比如一些for循环、while

循环或是if语句等的限制条件上把握的不好,经常会出现在我的逻辑理论上应该执行

的语句没执行,而不该执行的却执行了的情况。在调试的时候我会首先看看这些连接

处的中间变量的值的变化境况,通过这找出了比较这些语句的正确的限制的条件。

六、课程设计总结

1、在一周的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很

多问题,但通过自己的努力及询问同学的帮助都一一解决了。

2、因本人能力有限,在编写的时候只使用了相对较为简单的基础语言,代替了相对较为

复杂的语言,降低了运行效率。

投入其中之后才发觉其实只要用心,只要有克服一切的勇气和信心就可以把程序做好,

错误总是越改越少的。

4、要用愉悦的心情去做,从编程的过程中体会乐趣,兴趣是最好的老师就是这么回事

5、学会利用辅助程序去发现问题

6、通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步

掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的

应用。

7、数据结构课程设计是检验我们这个学期学习成果的重要手段,通过这学期的学习,我认

为学好数据结构这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才

能增强和巩固我的知识。经过这一阶段的上机实践学习,使我对数据结构有了更进一

步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。

通过实践,我也发现我的很多不足之处,首先是自己平时上机练习太少,知识的积压

给编程带来了一定的麻烦。另外我对数据结构的一些标准库函数还不太了解,如开始

进入系统后发现操作的界面很乱,如果能够及时的清屏那样就会变的很明了。查阅了

相关的资料和问同学后我知道只要在程序中调用库函数system("cls")就可以了,知

道了这个函数的基本用法;还有对数据结构中经常出现的错误也不了解,通过实践,

使我独自处理错误的能力也有了很大的提高。

七、参考资料

1.《数据结构(C语言版)》严蔚敏吴伟民编著,清华大学出版社

2.《数据结构(C语言版)》相配套的课本源代码

3.《C++程序设计》谭浩强编著清华大学出版社

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

航空客运订票系统 程序要求: 1、问题描述 航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一个航空客运订票系统,以使上述业务可以借助计算机完成。 2、要求 1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单; 2)系统实现的功能如下: 通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件 存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列的操作来实现。 程序流程图:

详细代码: #include <> #include <> #include <> #include <> #define m 4 查看排队情况 *"; cout<

数据结构课程设计航空订票系统

— 航空客运订票系统的设计与实现 一、设计目的:设计一个航班订票系统,提高对信息管理、信息查找和排序算法 的应用能力。 二、问题的描述:航空客运订票的业务包括查询航线和客票预定的信、客票预 定和办理退票等,设计一个程序以使上述任务借助计算机完成。 三、数据结构的设计: ; 数之间的关系: 函数间关系图如下: , 【

- 函数调用图如上,各个函数模块化设计,函数之间的数据传递少均通过函数间相互调用,把函数之间联系起来,这样函数的重用率高,设计代码的效率更高,用很好的实用性,很好的兼容性。 五、界面设计: Main 函数中通过switch 语句对于所有的模块进行整合。用户通过键盘通过提示输入相关信息。对航班信息的航线查询,通过城市查询航班,订票业务,退票业务,查询已定客户信息。 六、程序设计: 函数流程图: / menu display refund save

find函数refund函数 list函数search函数

increlist函数order 函数 menu函数increqueue函数 display函数

print函数save函数 main函数流程图如上 问题: { 1.问题1 (1)问题描述:输入时字符数组输入不稳定。 (2)解决办法:在反复尝试中还没发现,后来在同学帮助下发现是一些基础问题,对于链表中数组字符的如scanf("%s",&p->name);这样是有问题的.虽然是一个会的人看似很简单的问题,但对于意念中存在看这样问题的人是很严重的。由此要多多与同学交流,特别是编程的思想理念,很是重要。对于个人存在的基本被错误要通过多编程序发现,并及时改正。细节很决定成败。 2.问题2

数据结构航空订票系统课程设计报告

攀枝花学院学生课程设计报告摘要 摘要 飞机在现代的生活中扮演者非常重要的角色。它能够快速的把人们送到自己想要去的地方,既快速,又方便。所以现在坐飞机时很普遍的。但是都到机场去买票浪费时间,因此,航空订票系统应运而生。有了航空订票系统,用户可以在该系统进行飞机票的查询,订票,退票等操作。方便了大家 关键词航空订票系统、查询、订票、退票

目录 摘要...................................................................................... I 1 需求分析 . (2) 1.1 需求概述 (2) 1.2 需求环境 (2) 1.3 功能描述 (2) 2 概要设计 (3) 2.1 程序功能模块 (3) 2.2 程序流程图 (3) 2.3 课程设计的思想 (3) 3 详细设计 (4) 3.1 程序初始化 (4) 3.1.1代码功能 (4) 3.1.2 功能实现代码 (4) 3.2 查询航班信息 (6) 3.2.1代码功能 (6) 3.2.3 功能实现代码 (7) 3.3 订票模块 (8) 3.3.1 代码功能 (8) 3.3.2 功能实现代码 (8) 4 测试与运行 (14)

5结束语.................................................................................................... . (16) 6 参考文献.................................................................................................... .. (17) 7附录.................................................................................................... . (18) 1 需求分析 1.1 需求概述 航线管理。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量 客户管理。有关订票的客房信息(包括姓名、订票量、舱位等级(1,2和3)以及等替补的客房名单(包括姓名、所需标量)。

飞机订票系统课程设计报告

飞机订票系统课程设计报告 指导老师: 班级: 学生姓名: 学号: 完成日期: 计算机科学与技术系

飞机订票系统课程设计报告 一、系统分析。 1.1根据飞机订票系统的设计目的,设计内容和设计要求。本团队对飞机订票系统这一基础管理系统的业务进行了细致的分析讨论。最终我们决定将整个系统分成7个主要模块。采用结构体这一数据结构来存放教师的信息。首先是信息录入模块,接下来输出模块,即浏览,查询,排序信息三个模块,最后是订票,退票模块。为降低操作难度,以及出错率,决定使用全局数组及变量进行操作。 1.2飞机订票系统简易图 二、系统设计 2.1总体设计(主要功能)

本程序包含六大主要模块①添加信息模块;②浏览信息模块; ③信息查询模块;④信息排序模块;⑤订票模块;⑥退票模 块。 整体程序采用全局数组fj(飞机)进行存储,全局变量pd(判断)作为标识变量。宏定义输出格式。采用Y,N的方式进行操作回退或继续操作的选择。 航班信息包括:航班号,起点,终点,票价,数量及订票标志量(隐藏信息)。 输入模块,使用分条输入,以减少错误率并方便操作。 浏览,查询及排序模块,组合成输出模块。多方式输出更便于观察并方便记录,同时为后续模块的执行提供操作基础。 订,退票模块调用查询模块实现其功能。 2.2 软件、硬件环境 软件环境 VC2009 硬件环境处理器 Intel(R) Core(TM) i5-3210M CPU @2.50GHz 2.50GHz;显卡 GTX650。 内存 4.0GB 操作系统 Windows 7 2.3主要数据结构和程序的关系说明 主要数据结构是结构体 struct hbxx //定义结构体数组,航班信息 {

航空公司管理信息系统

航空公司管理信息系统 一个正常营运的航空公司需要管理所拥有的飞机、航线的设置、客户的信息等,更重要的还要提供票务管理。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。 本章我们将以一个航空公司管理信息系统为例子,来讲述如何建立一个航空公司管理信息系统。 1.1 系统设计 1.1.1 系统功能分析 系统开发的总体任务是实现各种信息的系统化、规范化和自动化。 系统功能分析是在系统开发的总体任务的基础上完成。本例子中的航空公司管理信息系统需要完成功能主要有: ●舱位信息的输入和修改,包括舱位等级编号、舱位等级名称、提供的各种服务类别, 以及备注信息等。 ●客机信息的输入、修改和查询,包括客机编号、客机型号、购买时间、服役时间、 经济舱座位数量、公务舱座位数量、头等舱座位数量以及备注信息等。 ●航线信息的输入、修改和查询,包括航线编号、出发城市、到达城市、航班日期、 出发时间、到达时间、客机编号、经济舱价格、公务舱价格、头等舱价格和备注信 息等。 ●客户等级信息的输入、修改,包括客户等级编号、客户等级名称、折扣比例和备注 信息等。 ●客户信息的输入、修改和查询,包括客户编号、客户姓名、客户性别、身份证号码、 联系电话、客户类型和备注信息等。 ●订票信息的输入、查询和修改,包括订票编号、客户编号、客户姓名、客户类型、 折扣比例、航线编号、出发城市、到达城市、出发时间、舱位类型、票价、结算金 额和备注信息等。 1.1.2 系统功能模块设计 对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图1-1所示的系统功能模块图。 图1-1 系统功能模块图

航空客运订票系统的设计与实现

课程设计说明书 课程名称 题目航空客运订票系统的设计与实现 院系_电子信息工程学院____ 班级__计算机科学与技术__ 学生______________ 指导教师_____________ 日期_ 2011.12.19-2011.12.30__ 数据结构课程设计任务书

指导教师:时间: 2011.12.8 航空客运订票系统的设计与实现一、简介

1.设计目的: 1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发 2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。 3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 航空空订票系统: (1)熟练掌握链表存储结构及其建立过程和常用操作; (2)熟练掌握队列的建立过程和常用操作; (3)学会自己调试程序的方法并掌握一定的技巧。 2.问题的描述: 航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。 二、数据结构的设计: (1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户。 (2)客户信息:客户、证件号、座位号。 三、功能(函数)设计: 1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、载客量、余票量、票价格,折扣,已订票的客户(包括、订票量、舱位等级1,2或3)以及等候替补的客户(包括、所需票量); 2.全部数据可以只放在存中; 3.系统能实现的操作和功能如下: a) 查询航线: 根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; b) 承办订票业务: 根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续, 输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排队候补; c) 退票业务: 根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

数据结构课程设计 飞机订票系统分解

摘要 随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们出行越来越多,出行的方式也是百花齐放,作为空中重要的交通工具,飞机航空系统也在不断地得到优化, 其中重要的一项就是航空飞机订票系统,因此好的订票系统关系着人们的日常出行方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而艰巨的任务。 本文Microsoft Visual C 6.0作为程序代码的实现软件,进行飞机订票系统的数据结构课程设计。首先,根据课程设计内容进行需求分析,确定主要的功能模块,。然后进行数据结构、各功能模块算法以及它们之间的调用关系的概要设计,做出各信息模块的数据结构表,并给出所用的结构体和结点类型。在此基础上,进行各功能模块的详细算法设计,做出各算法的流程图。最后,对系统进行测试,分为合法数据测试和非法数据测试,并对测试结果截图保存。本系统包含录入航班信息、订票、退票、查询航班信息、查询订票信息、修改航班信息和退出系统7个基本功能,经测试后健壮性良好。 关键词飞机订票系统;数据结构;C语言;单链表

目录 1 问题背景 (1) 2 问题分析 (1) 3 需求分析 (2) 3.1 用户需求分析 (2) 3.2 功能需求分析 (2) 3.3 系统需求分析 (3) 4 逻辑设计 (3) 4.1 数据结构 (3) 4.2 各功能模块间函数调用关系 (5) 4.3 函数说明 (5) 5 详细设计 (7) 5.1 录入航班信息 (7) 5.2 顾客订票模块 (8) 5.3 顾客退票模块 (8) 5.4 查询航班模块 (9) 5.5 查询订单模块 (9) 5.6 修改航班模块 (9) 6 程序调试与测试 (11) 6.1 合法数据测试结果 (11) 6.2 非法数据测试结果 (13) 7 结果分析 (15) 7.1 输入 (15) 7.2 输出 (15) 总结 (16) 参考文献 (16)

航空售票管理系统

摘要 伴随着经济的不断发展,必然带动交通业和旅游业务的不断扩大, 特别是航空售票和订票的信息管理日异复杂, 传统的售票方式已经难以满足快节奏, 高效率的现代生活需求,这就要求航空公司要有一套好的售票数据库系统。 一个正常营运的航空公司需要管理所拥有的飞机、航线的设置、客户的信息等,但更重要的还要提供票务管理。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。对数据的添加、修改、删除及查询等方面的操作应简单易行,并且能够具有较好的稳定性。航空售票管理系统主要采用Delphi 7.0做为开发工具,进行开发与设计的。本系统的使用界面具有十分人性化的特征,具有方便的查询功能,对售票、网上订票等方面的操作应简单易行,并且能够具有较好的稳定性。 关键词: 航空;售票;网上订票;管理系统;数据库;SQL语言。

目录 1.开发一个航空售票管理系统的背景和意义 (1) 1.1.传统售票方式的回顾和特点分析 (1) 1.2.航空售票管理系统的应用现状和前景展望 (1) 2.用计算机开发一个航空售票管理系统的可行性分析 (1) 2.1.技术可行性 (1) 2.2.经济可行性 (2) 2.3.法律可行性 (2) 3.开发环境的选择 (3) 3.1.Delphi 7.0简介 (3) 3.2.开发工具的选择 (3) 4.航空售票管理系统的需求分析 (3) 4.1.系统分析 (4) 4.2.系统功能模块设计 (4) 4.3.功能子模块分析 (5) 4.3.1.网上订票模块 (5) 4.3.2.用户查询模块 (5) 4.3.3.用户订票模 (5) 4.4.后台管理系统 (6) 4.4.1.后台管理系统子模块 (6) 4.5. 民航售票管理系统的顶级数据流程图 (8) 4.6. 民航售票管理系统一级数据流图 (9) 4.7. 数据字典定义 (10) 4.7.1.数据项定义 (10) 4.8.E/R模型 (13) 5.详细设计 (14) 5.1.系统的总体流程图 (14) 5.2.系统各模块的实现 (15) 5.2.1.系统登录窗口 (15) 5.2.2.主界面窗口 (16) 5.2.3.信息操作模块 (17) 5.2.4.送票员模块 (22) 5.2.5.员工管理模块 (23) 5.2.6.系统模块 (24) 5.2.7.售票员模块 (25) 5.2.8.前台订票模块 (26)

网上航空订票系统毕业设计说明书

摘要 本文着重阐述了网上航空订票管理系统的整体开发过程。介绍了系统的开发环境以及开发工具,对于设计思想和设计流程也做出了全面的叙述,在数据库创建思想以及各个数据表之间的具体关联等方面也做出了详细说明,并且具体剖析了系统各个功能的实现过程以及详细设计过程,在绘制简单系统功能模块图的同时,力求更加清晰地表明设计思想以及对整个程序设计的规划及具体实现。 本系统采用了B/S体系结构,以ASP作为前台开发工具,以Microsoft SQL作为后台数据库管理系统进行开发。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成网上航空订票管理的全过程,包括前台用户订票、用户发短信、线路管理、系统设置、站点设置、文章管理、插件设置、其他管理、预订管理、查看站内消息、查看预订信息等几大功能模块。 本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员的工作负担,简化了用户的购票过程,提高了购票的工作效率和站点的信息化水平。 关键词:模块;管理系统;数据库;ASP

Abstract This paper focuses on online air booking management system as a whole development process. Introduces the system development environment, and development tools for the design concept and design process has also made a comprehensive narrative, to create ideas in the database and various specific links between data tables are also made such detailed and concrete analysis of the system implementation process of various functions and the detailed design process, in drawing a simple block diagram of system functions, while more clearly sought to show that the design and the design of the entire process of planning and realization. The system uses the B / S architecture, to ASP as a development tool to Microsoft Sql Server as the backend database management system development. The system is easy to manipulate and user-friendly, flexible, practical, safety requirements, the completion of online air bookings, management of the entire process, including the front user booking, user send text messages, line management, system settings, site settings, the article management , plug-in settings, other management, reservations management, check your messages, view the booking information for several major functional blocks. This system has many features: System fully functional, user convenience is simple, intuitive user interface, security settings are complete, thus greatly reducing the workload of the operator, simplifying the user's purchase process, improve the work tickets efficiency and the level of the site's information. Keywords: modules; management system; database; ASP

数据结构课程设计-航空订票系统

数据结构 课程设计报告 设计题目:航空客运订票系统 院系 年级 学生 学号 指导教师 2015年11月26日 目录 一、课程设计目的 3

二、需求分析 3 三、概要设计 1.设计步骤 4 2.系统整体结构图 5 3.功能模块及调用关系说明 5 四、详细设计和源代码 1.实现概要设计中定义数据的存储结构 6 2.查询航线信息功能的算法设计7 3.订票功能的算法设计9 4.退票功能的算法设计12 5.录入功能的算法设计 14 6.总航线预览功能的程序源代码15 五、调试分析 1.各功能的具体实例分析16 2.实验过程中出现的问题及解决方法 20 六、课程设计总结20 七、参考资料21 一、课程设计目的 (1) 熟练使用 C 语言编写程序,解决实际问题; (2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; (3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 航空订票系统: (1)熟练掌握链表存储结构及其建立过程和常用操作; (2)熟练掌握队列的建立过程和常用操作;

(3)学会自己调试程序的方法并掌握一定的技巧。 二、需求分析 问题描述:航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 设计任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; 订票:(订票情况可以存在一个数据文件中,结构自己设定)根据客户提出的要求(日期、航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求。若需要,可预约登记排队等候。如果该航班已经无票,可以提供相关可选择航班; 退票:根据客户提供的情况(日期、航班、退票数额),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队预约的客户……退票成功后修改相关数据文件。 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 测试数据:由学生任意指定,但报告上要求写出多批数据测试结果。 实现提示:每条航线应包含的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票额、已订票的客户名单(包括姓名、订票额、座位号)和预约登记的客户名单(包括日期、姓名、所需票额)。这最后两项显然是一个线性表和一个队列。 为查找方便、已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预料,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述八个域,其中乘员名单域为指向乘员名单链表的头指针,预约登记客户名单域为分别指向队头和队尾的指针。

航空订票系统测试(学术参考)

航空机票预订系统软件编码和测试说明书 1引言 1.1编写目的 作为软件工程过称的一个阶段,编码是对设计的进一步具体化,因此,程序的质量主要取决于软件设计的质量,但所选用的程序设计语言的特点和编码风格也将对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。 但在开发如此复杂的航空订票系统软件的过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,系统一定会存在差错。测试的目的就是在软件投入生产运行之前,尽可能多的发现并改正软件中的错误。 编码阶段可参考概要设计和详细设计说明书,软件测试以及软件维护阶段也可参考编码和详细设计说明书,以便于了解在概要设计及详细设计的过程中所完成的各模块设计结构,或在测试阶段找出各模块的设计思路和流程。 该文档的读者为用户代表、软件分析人员、开发管理人员和测试人员。 1.2背景 ①名称:机票预订系统 ②委托方:某某航空公司 ③开发方:某某团队 ④组成:编码模块分组,服务器,编码人员,测试人员 ⑤本系统与其他系统的关系如下: 系统的详细 设计 编码测试实现验证 修改

1.3定义 黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑 程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查 程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当 地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结 构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进 行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定 有误,用黑盒测试方法是发现不了的。 白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规 定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部 逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行 测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的 状态一致。 1.4参考资料 (1)张海藩《软件工程导论》(第五版)北京:清华大学出版社。 (2)《机票预订系统需求分析说明书》 (3)《机票预订系统可行性分析说明书》 (4)《机票预订系统概要和详细设计说明书》 2 各模块的实现: 本系统主要用于机票预订,所以提供了以下几个子功能:机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。

航空订票系统 数据库课程设计

《数据库设计与开发Ⅱ》课程设计报告航空订票系统 学院: 班级: 学号: 姓名: 完成时间:

目录 一.需求分析 (1) 1.引言 (1) 2.项目概述 (1) 3.需求规定 (2) 4.运行环境规定 (4) 二.系统结构数据设计 (5) 三.视图设计 (8) 1.E-R图 (8) 2.关系模式 (9) 3.数据流程图 (10) 四.逻辑结构设计 (11) 1.数据表描述 (11) 2.程序描述 (12) 3.功能描述 (13) 五.系统设计 (19) 1.系统功能分析 (19) 2.系统功能模块设计 (19) 六.项目总结 (20) 1.本项目设计的优点 (20) 2.项目实现流程 (20) 3.心得体会 (20)

一、需求分析 1.引言 编写本套航空订票系统的《软件规格说明书》的目的在于根据软件需求说明书中的任务概述,需求规定等规划设计出一套可执行软件的结构模型。 1.1编写目的 (1)便于用户、分析人员和软件设计人员进行理解和交流 (2)希望系统的外部项(旅客、旅行社、航空公司)均支持目标软件系统的确认。根据需求规格说明书中确立的可测试标准进行测试,并得到确认。 (3)控制系统进化过程 1.2项目背景 随着社会的发展,人民生活水平的不断提高,人们出行的交通工具也跟随社会的发展而发展起来了。乘飞机出行的人越来越多。所以这方面的市场非常大。所以“机票预订系统”的开发是势在必行。经过对各方面人士对该系统功能的意见的调查,我们在此基础上确定了旅客与各航空公司所需要的“机票预订系统”。同时我们会不断更新该系统的功能来满足不断发展的市场需求。1.3项目描述 为各旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入到该系统,系统为旅客安排航班。当旅客交付了预定金后,系统印出取票通知和帐单交款取票,系统核对无误即印出机票给旅客。此外为了航空公司能够随时掌握各航向飞机的乘载情况,而能够定期进行查询统计,以便适当调整 1.4定义 软件需求:IEEE软件工程标准词汇表(1997年)中定义软件需求为: (1)用户解决问题或达到目标所需的条件或权能(Capability)。 (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。 (3)一种反映上面(1)或(2)所描述的条件或权能的文档说明同工作,以及相互之间进行有效的交流和沟通。 1.5参考资料(标准) ?中华人民共和国国家标准UDC681.3: 《信息技术软件生存期过程》(GB/T8566-1995) 《计算机软件产品开发文件编制指南》(GB8567-88) 《软件工程术语》(GB/T11457-1995) ?IEEE软件工程标准词汇表(1997年) 2.项目概述 2.1目标 该系统是要将航空订票管理系统信息化,使操作方便,且效率高。 2.2用户的特点 用户其实就是航空公司。而旅行社和旅客都是向航空公司提供数据,由航空公司操作数据。即航空公司是直接用户。 2.3假定与约束 对各航班班机的命名和航班号都要求与全国的各大航空公司的标准要求保持一致。各航班的出发城市,抵达城市,出发时间,抵达时间,价格,座位数

数据结构程序设计飞机订票系统

学号 数据结构课程设计 设计说明书 飞机订票系统 起止日期:2011年12月12日至2011年12月16日 学生姓名 班级 成绩 指导教师(签字) 电子及信息工程系 2011年12月16日

天津城市建设学院 课程设计任务书 2011—2012学年第1学期 电子及信息工程系软件工程专业班级 课程设计名称:数据结构课程设计 设计题目:飞机订票系统 完成期限:自2011年12月12日至2011年12月16日共1周 设计依据、要求及主要内容(可另加附页): 一、设计目的 熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。 二、设计要求 (1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务; (2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者及被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩; (3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表; (4)认真编写课程设计报告。 三、设计内容 订票系统 1)问题描述 (1)录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

(2)查询: 可以查询某个航线的情况可以输入起飞抵达城市,查询飞机航班情况; (3)订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 (5)修改航班信息: 当航班信息改变可以修改航班数据文件 2) 基本要求 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能

飞机订票系统程序设计_课程设计.doc

高级语言程序设计 课程设计报告 题目:飞机订票系统程序设计 专业: 班级: 学号: 姓名: 指导教师: 日期:

山东工商学院信电学院

1、程序基本功能要求 本程序首先输入用户名、密码进入系统;从菜单中选择可以输入机票信息对机票信息进行浏览、修改、查询、退订票等功能并可以通过其内部各类方 式或菜单内选项了解航班更细的信息。 (1)航班信息用文件保存,因而要提供文件的输入输出操作。 (2)航班信息的录入,其中包括了航班信息中的航班号、起始站、终点站、预 售机票数、已售机票数。 (3)航班信息浏览功能且提供显示操作。 (4)可以查询航线,查询方式有按航班号查询、按起点站查询、按终点站查询 按航线查询、按飞行时间查询五种,可从各个方面进行查询,方便快捷。 (5)承办订票和退票业务,可显示剩余票数和已买票数。当票数被订或被退时 票数会随之变化,统计较为灵活。 (6)提供键盘式选择菜单以实现功能选择。 2、总体设计. 编写一个飞机订票系统的程序使该系统能够实现对航班信息的录入、浏览、修改、查询以及订票、退票的功能。根据课程设计要求和本组人员的增补,首先要通过一个用户登录界面进入系统,其次要制作一个主菜单显示出各个操作的提示可供用户选择进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。因为飞机订票系统含有各航班的各项信息如航班号、航线、飞行时间、机票数目等必要信息所以就决定用刚学不久的结构体数组来存放航班的各项信息,这就是看到题目后的最初的思路。 在整个程序中,含有多种类型的头文件,包括了标准输入、输出头文件、字符串函数处理头文件、动态存储与释放函数头文件;在结构体数组中也对不同类型的数组进行不同的定义,例如: int flightno、int totalticket、char start[10]等;在各类信息的显示操作中,本系统在执行浏览、查询和退订票是充分利用函数的调用,利用switch()语句进行,简便实用;在此系统中,函数相互嵌套,形成了一个完整的系统。 本次设计需要编制初始化、建立数据文件、数据文件保存、增加航班信息、订票、退票业务等内容。首先需要设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access函数判断文件是否存在。系统初始化后,没有寻找到数据文件则进行新建数据文件。此函数的作用就是进行新建文件数据的录入,运用到了文件指针的定义FILE *fp文件的打开fopen和关闭fclose、成块读写函数中的fwrite 运用for循环进行各组数据的输入,用m++记录下输入的航班数量并运用if 语句判断是否输入下一条航班信息,若不继续则返回主界面。系统初始化之后 若原始数据文件存在则进行文件内航班信息的读取以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen 和关闭fclose、成块读写函数中的fread、文件结束检测函数feof同时配合while语句控制文件的读取,m++记录下读取到的航班数量等。因为在飞机订票系统中涉及到飞机的订票和退票业务还有按航班号的排序功能,所以我就定义了

数据结构课程设计航空订票系统

目录 总体设计 (2) 概要设计 (2) 详细设计 (3) 调试分析 (11) 测试数据及截图 (11) 时间复杂度分析 (15) 问题思考 (15) 算法的改进设想 (15) 课设总结体会 (15) 附录 (17) 程序说明 (17) 源代码 (17) 主要参考文献 (30)

总体设计 通过此系统可以实现如下功能: 1).录入:可以录入航班情况(数据存储在一个数据文件中) 2).查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 3).订票:(订票情况存在一个数据文件中) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 4).退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 5).修改航班信息: 当航班信息改变可以修改航班数据文件 概要设计 每个模块的算法设计说明如下: (1)录入模块: 查找单链表的链尾,在链头插入一个“航班信息”的新结点。 (2)浏览模块: 顺着单链表输出航班信息。 (3)修改模块: 输入密码,确认是否有权限对航班信息进行修改,有则进行修改,否则不能修改。 提供两种修改方式:添加航班和对已有的航班信息进行改动(修改和删除),1添加航线,0对已有的航班信息进行改动(修改和删除)。 对已有的航班信息进行改动(修改和删除):顺着单链表查找,若找到则进行相关操作。 (4)查询模块: 提供两种查方式:按航号和起飞抵达城市查询,0代表按航号查询,1代表按起飞抵达

城市查询。 顺着单链表查找,如果与航班号(起飞抵达城市)一致,输出相关信息并询问乘客是否要订票,若订进入订票模块;否则,查询不成功。 (5)订票模块: 查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功;否则查找这个月此乘客起飞城市和降落城市的有空位航班,供乘客选择,若有则订票,若无则订票不成功并把此乘客的信息录入此航班等候订票队列中,退出订票。 (6)退票模块: 输入要退票的乘客姓名以及所退票的编号,查找乘客资料的链表中是否有这位乘客,有则删去此结点,并判断是否有等候订票的乘客(有则通知等候订票乘客订票,无则余票加乘客所退票数);无则退票失败。 (7)文件模块: 顺着单链表把链表的信息写入文件。 详细设计 将航线信息写入文件 将乘客信息写入文件

航空订票系统课程设计

设计题目 航空订票系统 任务: 航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。 功能要求: (1)录入:可以录入航班情况 (2)查询:可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; (3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)退票:可退票,退票后修改相关数据文件; (5)客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号;(6)修改航班信息:当航班信息改变可以修改航班数据文件。 需求分析 本演示程序中,由用户录入或修改航班情况,进行查询,预定及办理退票等业务,用户在菜单中进行各个不同功能的选择,有“输入航班信息”、“列出航班

信息”、“按航班号查询航班信息”、“按出发到达城市查询航班信息”、“订票”、“退票”、“修改航班信息”、“退出程序”八个功能。 概要设计 typedef struct{ double number;//订单编号 char name[20];//姓名 char id[20];//身份证号 int count;//数量 char p[20];//航班号 }GUEST; typedef struct{ char num[20];//航班号 char depart[30];//出发城市 char arrive[30];//到达城市 char start[20];//起飞时间 char end[20];//到达时间 int price;//价格 int discount;//折扣率(%) int total;//总票数 int rest;//剩余票数

数据结构航空订票系统课程设计报告

摘要 飞机在现代的生活中扮演者非常重要的角色。它能够快速的把人们送到自己想要去的地方,既快速,又方便。所以现在坐飞机时很普遍的。但是都到机场去买票浪费时间,因此,航空订票系统应运而生。有了航空订票系统,用户可以在该系统进行飞机票的查询,订票,退票等操作。方便了大家 关键词航空订票系统、查询、订票、退票

目录 摘要........................................................................................................ I 1 需求分析 (2) 1.1 需求概述 (2) 1.2 需求环境 (2) 1.3 功能描述 (2) 2 概要设计 (3) 2.1 程序功能模块 (3) 2.2 程序流程图 (3) 2.3 课程设计的思想 (3) 3 详细设计 (4) 3.1 程序初始化 (4) 3.1.1代码功能 (4) 3.1.2 功能实现代码 (4) 3.2 查询航班信息 (6) 3.2.1代码功能 (6) 3.2.3 功能实现代码 (7) 3.3 订票模块 (8) 3.3.1 代码功能 (8) 3.3.2 功能实现代码 (8)

4 测试与运行 (14) 5结束语..................................................................................................................... ..16 6 参考文献 (17) 7附录..................................................................................................................... .. (18) 1 需求分析 1.1 需求概述 航线管理。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日

相关文档
相关文档 最新文档