当前位置:文档之家› 数据结构航空客运订票系统

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

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

航空客运订票系统

程序要求:

1、问题描述

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

2、要求

1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单;

2)系统实现的功能如下:

通过此系统可以实现如下功能:

录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;

订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;

退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

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

存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列的操作来实现。

详细代码:

#include

#include

#include

#include

#define m 4 //3架飞机

#define n 5 //每架飞机5张票struct node

{ char name[21];

char id[21];

int seat,plane,date;

node *next,*pre;

};

struct wait

{

char name[21];

char id[21];

char phone[8];

int seat,plane,date,count;

wait *next,*pre;

};

struct piao

{

int seat[n+1];

};

void makenull();

void makenull_piao();

void makenull_information();

void list_menu();

void list_piao();

void makenull_wait();

void list_information();

void plane_information(node *head);

void book();

void add_information(node *head,int x,int y); void add_wait(int x,int y);

void search_delete(int x);

void write_to_file();

void show_wait();

bool comp(node *x,node*y);

node *head1,*head2,*head3,*q;

wait *wait_head,*wait_end;

char c;

piao a[m];

void main()

{

makenull();

do

{ list_menu();

cout<

cin>>c;

if (c!='6')

switch(c)

{

case '0' : show_wait();break;

case '1' : {list_piao();book();}break;

case '2' : search_delete(1);break;

case '3' : list_piao();break;

case '4' : list_information();break;

case '5' : search_delete(0);break;

default : break;

}

}while(c!='6');

cout<<"Exit System ";

}

void makenull()

{

makenull_piao();

makenull_information();

makenull_wait();

}

void list_menu()

{ cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

}

void makenull_piao()

{

FILE *fp;

int i;

if((fp=fopen("piao.dat","r")) == NULL )

{

fp=fopen("piao.dat","w");

for (i=1;i<=m-1;i++)

fwrite(&a[i],sizeof(piao),1,fp);

fclose(fp);

fp=fopen("piao.dat","r");

}

for(i=1;i<=m-1;i++)

fread(&a[i],sizeof(piao),1,fp);

fclose(fp);

}

void makenull_information()

{

node *r;

FILE *fp;

int i,j,sum;

sum=a[1].seat[0]+a[2].seat[0]+a[3].seat[0];

fp=fopen("information.dat","r");

head1=new node;

head2=new node;

head3=new node;

head1->pre=NULL;

head1->next=NULL;

head2->pre=NULL;

head2->next=NULL;

head3->pre=NULL;

head3->next=NULL;

q=head1;

for(i=1;i<=sum;i++)

{

j=0;

r=new node;

fread(r,sizeof(node),1,fp);

q->next=r;

r->pre=q;

r->next=NULL;

q=q->next;

fclose(fp);

if(i==a[1].seat[0]+1) {

head2->next=q;

q->pre->next=NULL;

q->pre=head2;

}

if(i==a[1].seat[0]+a[2].seat[0]+1) {

head3->next=q;

q->pre->next=NULL;

q->pre=head3;

}

}

}

void makenull_wait()

{

wait *tempw;

FILE *fp;

tempw=new wait;

int i;

if((fp=fopen("wait.txt","r")) ==NULL )

{

fp=fopen("wait.txt","w");

fclose(fp);

}

wait_end=new wait;

wait_head=new wait;

wait_end->next=NULL;

wait_end->pre=NULL;

wait_head=wait_end;

wait_head->count=0;

fp=fopen("wait.txt","r");

fread(wait_head,sizeof(wait),1,fp);

for(i=1;i<=wait_head->count;i++)

{

fread(tempw,sizeof(wait),1,fp);

wait_end->next=tempw;

tempw->pre=wait_end;

tempw->next=NULL;

wait_end=tempw;

}

}

void list_piao()

{

int i,j;

for(i=1;i<=m-1;i++)

{

if(a[i].seat[0]!=n)

{

cout<

for(j=1;j<=n;j++)

if (a[i].seat[j]==0) cout<<" "<

cout<

}

else cout<

}

}

void list_information()

{

int x;

do {cout<>x;cout<=m);

cout<

if(x==1) plane_information(head1);

if(x==2) plane_information(head2);

if(x==3) plane_information(head3);

}

void plane_information(node *head)

{

node *q;

char ch;

int x=0;

if(head!=NULL && head->next!=NULL)

q=head->next;

else {

q=NULL;

cout<<"飞机空,无预订票!"<

}

while(q!=NULL)

{

cout<

q->date=q->plane;

cout<<"日期:"<date<

cout<<"座位号: "<seat<

cout<<"姓名: "<name;

cout<id;

q=q->next;x++;

if (x % 3 ==0) ch=getch();

}

cout<

}

void book()

{

int i,j,p;

cout<

do {

cin>>i;

if (i<1 || i>=m) {

cout<

}

else

{cout<

cout<

for(p=1;p<=n;p++)

if (a[i].seat[p]==0) cout<<" "<

cout<

break;}

}while(1);

cout<

do {

cin>>j;

if (j<1 || j>n) {

cout<

}

else

{

q->date=i;

cout<date<

break;

}

}while(1);

if (a[i].seat[j]==0) {

a[i].seat[j]=1;

cout<

a[i].seat[0]++;

if(i==1) add_information(head1,1,j);

if(i==2) add_information(head2,2,j);

if(i==3) add_information(head3,3,j);

}

else

{ cout<

add_wait(i,j);

}

}

void add_wait(int x,int y)

{

wait *tempw;

tempw=new wait;

tempw->next=NULL;

cout<<"请输入个人信息"<

cout<

cout<<"姓名: ";cin>>tempw->name;

cout<<"ID号: ";cin>>tempw->id;

cout<<"电话:";cin>>tempw->phone;

tempw->seat=y;

tempw->plane=x;

wait_end->next=tempw;

tempw->pre=wait_end;

wait_end=wait_end->next;

cout<

wait_head->count++;

write_to_file();

}

void show_wait()

{

wait *tempw;

tempw=wait_head->next;

if (tempw==NULL) cout<

while(tempw!=NULL)

{

cout<name<<" - ";

tempw=tempw->next;

}

}

void add_information(node *head,int x,int y)

{

node *temp;

temp=new node;

temp->pre=NULL;

temp->next=NULL;

cout<<"请输入个人信息"<

cout<

cout<<"姓名: ";cin>>temp->name;

cout<<"ID号: ";cin>>temp->id;

temp->seat=y;

temp->plane=x;

temp->next=head->next;

temp->pre=head;

if (head->next!=NULL) head->next->pre=temp;

head->next=temp;

write_to_file();

cout<

}

void search_delete(int x)

{

node *p,*q,*r;

wait *tempw,*tempw2,*tempw3;

int step=1,t1,t2,i;

char ch;

p=new node;

tempw=new wait;

tempw2=new wait;

tempw3=new wait;

q=head1;

cout<

cout<<"*************"<

cout<>p->name;

do{

q=q->next;

if ( (q!=NULL) &&

(comp(q,p)) )

{

cout<

q->date=q->plane;

cout<<"Located!"<

cout<<"****************";

cout<name;

cout<id;

cout<seat;

cout<plane;

cout<date<

if (x==1) {

cout<<"删除该纪录? [Y/N] ";

cin>>ch;

if (ch=='Y' || ch=='y') {

t1=q->plane;

t2=q->seat;

a[t1].seat[t2]=0;

a[t1].seat[0]--;

r=q;q=q->pre;

r->pre->next=r->next;

if(r->next!=NULL) r->next->pre=r->pre;

delete(r);

cout<<"**** 记录删除成功! ****";

write_to_file();

tempw=wait_head;

for(i=0;icount;i++)

{

tempw=tempw->next;

if(tempw==NULL) break;

if((tempw->plane==t1) && (tempw->seat==t2))

{

strcpy(tempw3->name,tempw->name);

strcpy(tempw3->phone,tempw->phone);

cout<

cout<name;

cout<id<

a[t1].seat[0]++;

a[t1].seat[t2]=1;

if(tempw->plane==1) add_information(head1,1,tempw->seat);

if(tempw->plane==2) add_information(head2,2,tempw->seat);

if(tempw->plane==3) add_information(head3,3,tempw->seat);

tempw2=tempw->pre;

tempw2->next=tempw->next;

if(tempw->next==NULL) wait_end=tempw2;

else tempw->next->pre=tempw2;

delete(tempw);

wait_head->count--;

write_to_file();

cout<name<<"已经成功订票,已经由电话"<phone<<"通知了"<

break;

}

}

}

}continue;

}

else

{

if (q==NULL)

{

step++;

if(step==2) q=head2;

if(step==3) q=head3;

if(step==4) {cout<

}

}

}while(1);

}

bool comp(node *x,node *y)

{

node *p,*q;

int i,j,k;

p=x;

q=y;

i=j=0;

do

{

while ( (p->name[i] != q->name[j]) && (p->name[i] != '\0') ) i++;

if (p->name[i] == '\0') {return(false);break;}

else

{

k=i;

while ( (p->name[k] == q->name[j]) && (q->name[j]!='\0') ) {k++;j++;}

if (q->name[j]=='\0') return(true);

else

{

j=0;

i++;

}

}

}while( (q->name[j]!='\0') && (p->name[i] != '\0') );

return(false);

}

void write_to_file()

{

FILE *fp;

int i,j;

int x[m];

node *p;

wait *tempw;

tempw=new wait;

tempw=wait_head;

fp=fopen("piao.dat","w");

for (i=1;i<=m-1;i++)

{

fwrite(&a[i],sizeof(piao),1,fp);

}

fclose(fp);

fp=fopen("information.dat","w");

x[0]=0;x[1]=a[1].seat[0];

for(i=0,j=1;j<=m-1;j++) {i=i+a[j].seat[0];x[j]=a[j].seat[0]+x[j-1];} j=1;p=head1->next;

for(j=1;j<=i;j++)

{

if(j==x[1]+1) p=head2->next;

if(j==x[2]+1) p=head3->next;

if(p==NULL)break;

fwrite(p,sizeof(node),1,fp);

p=p->next;

}

fclose(fp);

fp=fopen("wait.txt","w");

for(j=0;j<=wait_head->count;j++)

{

if(tempw==NULL)break;

fwrite(tempw,sizeof(wait),1,fp);

tempw=tempw->next;

}

fclose(fp);

}

C语言课程设计报告—飞机订票系统

C语言课程设计报告 指导老师:

C语言课程设计报告 一、 C语言课程设计的目的 C语言的教学是学生根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。具体来说: 1.进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法; 6、掌握书写程设计开发文档的能力(书写课程设计报告); 二、课程设计报告正文 (1)课程设计题目的原文; 假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(文件保存) 完成航班信息浏览功能; 查询航线(至少一种查询方式)。 (2)题目的分析(需求分析); 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中) 浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外 要提供键盘式选择菜单以实现功能选择。 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、 预售票总数、已售票数。 (3)整体设计与模块划分;

根据需求分析,该程序可分为以下四大模块: 飞机订票系统 输入模块显示模块查询模块退出模块 (4)代码设计; 包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等; (一)主函数 (1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所需的文件;调用菜单函数。 程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。 菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数。 (2)程序: void menu() { int n,w; do { puts("\t\t***********************MENU***************************\n\n"); puts("\t\t\t\t 1.enter new data"); puts("\t\t\t\t 2.Browse all"); puts("\t\t\t\t 3.Search"); puts("\t\t\t\t 4.exit");

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

数据结构 课程设计报告 院系:信息管理学院 专业:软件工程 班级:软件Q1141 学号:11150132 姓名:王毅 教师:邓沌华 时间:2013. 4 一、问题描述 题目:飞机订票系统 题目要求: (1)可以录入航班情况 (2)可以查询某个航线的情况(如,输入航班号,查询起降时间, 起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; (3)可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)可以退票,退票后修改相关数据文件;

(5)当航班信息改变可以修改航班数据文件 二、系统分析及设计 1 2、概要设计 主函数中 flight a[15]; //全局航班数组,存储供测试的航班信息,一共15架飞机,航班信 息可以在所有文件中改变 o_customer co; //全局乘客数组存储已经买了票的顾客信息,顾客信息可以在所有文 件中调用、修改 int k = 15; //全局变量,当前的共有航班的辆数,也可被所有文件调用和修改供测试的航班情况如下:

○1按航班号查询航班int number_check() //有此辆航班则返回1,无则返回0 ○2按终点站查询航班int station_check() //有到该站的航班则返回1,无则返回0. ○3订票 int Init(int k);//录入乘客信息,订票成功返回1,否则返回0. order_f() //订票函数 { m = n = 0; m = number_check();//乘客选择航班号方式的查询航班,m = 1方可订票 n = station_check();//乘客选择终点站查询方法查询航班,n = 1,方可订票 if(Init(0) == 0){} //按编号查询,只显示一个编号的信息,票存在,但订票失败就给予其它方案 if(Init(k) == 0){}//按照终点站查询,订票失败时给予相应处理方法} ○4退票 void takeoff(){} //请用户输入他的证件号,避免同名现象造成的影响 //买票的乘客的信息已经存入全局数组中,直接从数组中找出该乘客信息,然后改变相应航班和乘客的信息

航空客运订票系统

航空客运订票系统 设计报告 姓名: 班级: 学号: 学院: 专业: 指导: 2013.6.20

目录 1.需求分析 (1) 1.1概述 (1) 1.2 数据需求 (1) 1.3功能性需求 (2) 1.4 其他需求 (2) 2. 概要设计 (3) 2.1数据结构定义 (3) 3.详细设计 (5) 3.1 系统模块图 (5) 3.2 数据结构定义 (6) 3.3 主要模块算法描述 (8) 1.数据的输入和保存 (8) 4.系统实现 (10) 4.1开发环境 (10) 4.2运行界面 (10) 4.3测试用例 (13) 6.参考文献 (14) 7.源程序 (14)

1.需求分析 该项目是制作一个航空客运订票系统,编写系统需求分析的目的是明确软件的功能、界面,使得系统分析人员及软件开发人员能清楚地了解用户的需求,方便开发工作。 1.1概述 随着出行人数越来越多,航空客运所占的比例越来越多,机场的售票压力越来越大,此软件意在解决机场的售票问题让更多的人在家就能购买机票,减轻机场负担。 1.2 数据需求 两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述8个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。

1.3功能性需求 1.主界面模块:供用户选择使用本系统的各个功能。 2.录入航线信息模块:可以录入飞行目的地、航线号、飞机号、时间、一等舱数量、二等舱数量、三等舱数量。为以后的模块提供数据。 3.查询模块:用户输入目的地后,会显示飞往该地的航班、飞机号、起飞时间、一等舱剩余票数、二等舱剩余票数、三等舱剩余票数。 4.订票模块:用户输入目的地后,会显示飞往该地的航班、飞机号、起飞时间、一等舱剩余票数、二等舱剩余票数、三等舱剩余票数。提示用户是否订票,旅客订票成功后会显示订票成功。不成功会提示旅客进入排队等票。 5.退票模块:用户输入目的地后,会显示飞往该地的航班、飞机号、起飞时间、一等舱剩余票数、二等舱剩余票数、三等舱剩余票数。提示用户是否退票,旅客退票成功后会显示退票成功。 1.4 其他需求 ①界面简洁,美观 ②程序实用交互性好

数据库课程设计-飞机订票系统

数据库课程设计报告题目飞机订票管理系统

目录 第一章概述 (2) 1.1项目背景 (2) 1.2 编写目的 (2) 1.3 开发工具 (3) 1.3.1软件定义 (3) 1.3.2 开发环境 (3) 第二章需求分析 (3) 2.1 问题述 (3) 2.2 ER模型图 (3) 第三章数据库逻辑设计 (4) 3.1 定义数据库表 (4) 数据库表 (4) 第四章软件功能设计 (6) 4.1 软件功能结构图 (6) 4.2软件划分模块 (7) 4.2.1 整体流程: (7) 4.2.2 航班信息查询模块 (8) 4.2.3 顾客查询模块 (10) 4.2.4 订票、退票功能 (12) 4.2.5 财务查询 (17) 第五章界面设计 (17) 第六章结束语 (18)

第一章概述 1.1项目背景 航空业作为运输行业的基础,要提高我国运输行业的整体水平,必须从基础抓起。订票系统是航空业从事生产和管理的基层单位,加强订票系统是航空业基础地位的关键,也是保障航空业业可持续发展的重要基石。 随着现在航空运输业的发展,机票预订系统也成为了航空运输业的软件副产品,目前的管理系统都是与数据库关联,故数据库的管理也成为很热门的研究对象。此项目是以数据库为支撑,java(eclipse)为平台而开发的。 1.2 编写目的 编写此项目的目的是为了进一步了解数据库的储存管理机制以及数据库与其他的语言语言工具之间关联和协作。也可以熟悉项目开发的流程,步骤,为以后编写其他的程序打下基础。 1,了解并掌握数据结构的设计方法,具备初步的独立分析能力; 2,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能 3,提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

航空客运订票系统

航空客运订票系统 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

课程设计报告 课程名称数据结构 课题名称航空客运订票系统 专业通信工程 班级 学号 姓名 指导教师 2013 年 6 月 29 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题航空客运订票系统 专业班级 学生姓名 学号 指导老师张鏖烽田娟秀李杰君 审批 任务书下达日期 2013 年 6 月 23 日 任务完成日期 2013 年 6 月 29 日 目录 1.需求分析 (1) 2.概要设计 (1) 定义“航线”类型 (2) 主函数 (2) 调用关系 (3) 3.详细设计 (3) 航线与客户的存储结构 (3)

各个系统模块 (3) 算法设计 (4) 主函数功能 (6) 整个系统的流程图 (7) 存储结构设计 (7) 4.调试分析 (7) 5.用户使用说明 (8) 6.测试结果 (10) 7.心得体会 (12) 8.附录 (13)

课题名称航空客运订票系统 1.需求分析 航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 【基本要求】 (1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量); (2)系统能实现的操作和功能如下: ①录入:可以录入航班情况,全部数据可以只放在内存中,最好存储在文件中; ②查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; ③承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补; ④承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 初始化航班信息如下: 通过输入0~5这六个数字选择相应的操作,如:查询航班,订票,退票等操作; 2.概要设计 两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述8个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。 注:由于“航线”可只用一条单链表记录,故采用全局变量,减少参数的传递。

航空售票管理系统

摘要 伴随着经济的不断发展,必然带动交通业和旅游业务的不断扩大, 特别是航空售票和订票的信息管理日异复杂, 传统的售票方式已经难以满足快节奏, 高效率的现代生活需求,这就要求航空公司要有一套好的售票数据库系统。 一个正常营运的航空公司需要管理所拥有的飞机、航线的设置、客户的信息等,但更重要的还要提供票务管理。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。对数据的添加、修改、删除及查询等方面的操作应简单易行,并且能够具有较好的稳定性。航空售票管理系统主要采用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)

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

摘要 随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们出行越来越多,出行的方式也是百花齐放,作为空中重要的交通工具,飞机航空系统也在不断地得到优化, 其中重要的一项就是航空飞机订票系统,因此好的订票系统关系着人们的日常出行方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而艰巨的任务。 本文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)

航空客运订票系统

通达学院程序设计报告(2017 / 2018 学年第一学期) 题目:航空客运订票系统 专业计算机科学与技术 学生姓名 班级学号 指导教师吴晓诗 指导单位计算机学院计算机科学与技术系 日期2017.11.21-2017.12.8

航空客运订票系统 一、课题内容和要求 1.航空客运订票的业务活动包括:查询航线、客票预定和办理退票等。要求在TC 或VC环境下设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 2.要求: (1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日期(星期 几)、乘员定额、余票量、已经订票的客户名单(包括姓名、订票量)以及等候替补的客户名单(包括姓名、所需票量)。 (2)作为模拟系统,全部数据可以只存放在内存中。 (3)通过此系统可以实现如下功能: ①录入功能:可以录入航班情况 ②查询功能:根据客户提供的终点站名进行查询,可以输出以下信息:航班号、 飞机号、星期几飞行和余票量等。也可以根据航班号,查询飞机某个航线的情况。 ③订票功能:根据客户提出的要求(姓名、终点站名、订票数量)查询该航班的 余票量情况。如尚有足够的余票,则为客户办理订票手续;若已满员或余票量少于订票数量,则需要重新询问客户要求,如需要,可登记排队候补。 二、需求分析 )运行环境(软、硬件环境) Window10 64位codeblocks 使用语言:c++ 2)输入的形式和输入值的范围 由航空公司输入航线情况并以单链表的形式存储在内存里面 3)输出的形式描述 通过客户的输入输出相应的内容

4)功能描述 用户通过本系统实现该航空公司的查询、订票(包括候补)、和退票功能 5)测试数据 三、概要设计 1)流程图示意 2)抽象数据类型定义描述 (对各类的成员及成员函数进行抽象描述,参见书或ppt 及实验) 一条航线包括了目的地、航班号、飞机号、飞行周日、总票数、余票量、订票人员、候补人员等信息,我们可以将航线看成一类,定义为一个类,而订票人员通

航空公司管理信息系统

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

飞机订票系统设计与实现 (里面附有源代码!)

课程设计题目飞机订票系统 院系******* 专业*************** 姓名****** 学号********* 指导教师*** 2012年7月

1. 需求分析 1.1 问题描述 基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。本课程设计的题目为:飞机订票系统。 1.2 基本要求 1.2.1 输入的形式和输入值的范围 录入航班信息时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息)。 客户订票时,需要输入起飞抵达城市,然后选择航班进行查询,选择航班时需要输入航班号,值为字符串。 客户退票时,需要输入姓名,证件号进行退票操作,值为字符串。 查询某个航班的情况时,需要输入航班号,值为字符串;在查询某个航线的情况时,还可以通过输入起飞抵达城市来查询,值为字符串。 查询某个订单时,需要输入订单号,值为整型(int);或者需要输入客户姓名和证件号,值为字符串。 修改航班时,需要输入字符型数据选择进行何种修改操作;增加航班时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息);删除航班时,需要输入要删除的航班的航班号;修改航班时间时,需要输入要修改的航班的航班号,修改后的航班起飞时间和抵达时间。 1.2.2 输出形式 在所有操作后的输出中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。 录入航班情况时,输出显示添加航班信息是否成功。 客户订票时,当客户输入起飞抵达城市后,输出可供客户选择的航班信息;客户选择了航班后,输入提示信息告知用户订票是否成功。 客户退票时,输出客户退票成功或者无此客户,无法退票。 查询航班时,输出显示对应的航班信息,或者输出提示信息告知没有相应的航班信息。 查询订单时,输出显示对应的订单信息,或者输出提示信息告知没有相应的订单信息。 修改航班时,输出对应的提示的信息,提示操作是否成功。

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

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

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

一、简介 1.设计目的: 1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发 2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。 3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 航空空订票系统: (1)熟练掌握链表存储结构及其建立过程和常用操作; (2)熟练掌握队列的建立过程和常用操作; (3)学会自己调试程序的方法并掌握一定的技巧。 2.问题的描述: 航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。 二、数据结构的设计: (1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户名单。 (2)客户信息:客户姓名、证件号、座位号。 三、功能(函数)设计: 1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、载客量、余票量、票价格,折扣,已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);

民航订票管理系统

实验十三数据库管理系统综合应用 -------民航订票管理系统 一、实验目的: 通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握所讲解的内容。 二、实验简述: 民航订票系统主要分为机场、航空公司和客户三方的服务。航空公司提供航线和飞机的资料,机场则对本机场起飞和降落的航班和机票进行管理,而客户能得到的服务应该有航班线路和剩余票数的查询,以及网上订票等功能。客户又可以分为两类,一类是普通客户,对于普通客户只有普通的查询功能和订票功能,没有相应的机票优惠,另一种是经常旅客,需要办理注册手续,但增加了里程积分功能和积分优惠政策。机场还要紧急应对措施,在航班出现延误时,要发送相应的信息。 三、实验要求: 完成该系统的数据库设计; 用SQL实现数据库的设计,并在SQL Server上调试通过。 四、参考答案: 1、需求分析 (1)航空公司 航空公司的操作流程如图C.1所示。 图C.1 航空公司操作分类表 (2)客户 客户的操作流程如图C.2所示。

图C.2 客户操作分类表 (3)机场 机场的任务是根据航空公司提供的航线和飞机,安排航班,以及航班的机票。如果出现晚点等情况,要记录并发送信息,对特殊客户记录其消费信息,并相应提供优惠。 (4)客户订票 客户订票涉及到多个因素:由客户提出订票申请;由机场管理航班机票;对于特殊客户,除给予票价优惠以外,还要累计里程;订票后需判断是否超员。这些因素涉及到客户资料、航班资料以及由航空公司提供的航线(里程)和飞机(座位数)资料中所提供的相关数据。 客户订票的操作流程如图C.3所示。 2、概念模型设计 数据库需要表述的信息有以下几种: (1)航空公司信息 (2)客户信息 (3)飞机信息 (4)航线信息 (5)航班信息 (6)订票信息 (7)特殊客户积分

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

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

飞机订票系统课程设计报告 一、系统分析。 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 //定义结构体数组,航班信息 {

航空客运订票系统

洛阳理工学院 课程设计报告 课程名称数据结构课程设计 设计题目航空客运订票系统 专

课程设计任务书 设计题目:航空客运订票系统__________________________________ _________________________________________________________ 设计内容与要求: 内容: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件 要求: 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 课程设计评语 成绩: 指导教师:_______________ 年月日

目录 一.问题描述 (2) 二.基本要求 (2) 三.数据结构 (2) 四.总体设计 (3) 五.详细设计 (4) 5.1录入功能 void lurugongneng() (4) 5.2查询功能 void chaxungongnen() (4) 5.3订票功能 void dingpiaogongnen() (6) 5.4退票功能 void tuipiaogongnen() (7) 5.5修改功能 void xiugaigongnen() (8) 六.测试与调试 (9) 6.1 程序的模块 (9) 6.2 程序的调试 (9) 6.3 测试结果 (9) 七.源程序清单 (16)

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

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

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

C语言飞机订票系统课程设计

第一章绪论 :项目背景描述 1、课程设计性质与目的: C语言程序设计是一门实践性很强的课程。C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解,提高动手操作能力及分析问题和解决问题的能力。 2、课程设计包含的知识点: 1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语 句。 2.掌握数组的基本概念。掌握一维数组与二维数组的使用,掌握字符数组与 字符串的关系。 3.熟练掌握指针、地址、指针类型的概念及其使用。掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。 5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。结构体与指针、函数的关系。

第二章可行性分析 一、问题描述: 假设某航空公司只有N架X个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。 二、功能要求: 1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应 当包括:起飞地、目的地航班号、航班定额。 2、本系统显示这样的菜单: 1.)录入:可以录入航班情况(数据可以存储在一个数据文件中) 2.)浏览:航班信息浏览功能需要提供显示操作; 1、查询:可提供按照航班号、起点站、终点站、飞行时间、查 询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。 (1)输入航班信息 (2)输出航班信息 (3)查找航班信息 (4)订票预约 (5)删除定票预约 (6)退出系统 2、本系统成功执行菜单的每个信息,选项4)和5)将要求额 外的输入,并且它们都允许用户收回其输入。 3、查找航班信息既可按线路查,也可按目的地查。 4、在两次运行之间,数据被保存于一个文件里,当本程序重新开 始的时候,它首先从该文件读入数据 三、算法提示: 1、数据结构:结构体类型数组 2、数据库结构:下表构成该系统的基本数据库。 四、测试数据: 录入北京到上海的星期一起飞的航班,假设其定额为30,上海到南京的航班起飞时间为星期二。 五、其它: 在实现系统基本功能后,完善系统的其它功能。在测试数据是发现退票系统出现问题,退票数会超过定额,在加上一个限定条件后成功。基于本系统可以尝试输出所定票的的顾客的完整信息,包括姓名,身份证号等个人信息,由于时间有限,尚未添加。

民航订票系统

1 绪论 1.1 系统设计的目的 为了方便机场工作人员对机票的管理,提高飞机票的管理效率,降低飞机票管理中的出错率,减少信息交流及其带来不必要的开销。需要设计一个民航订票系统,该系统能及时反映航班及机票的剩余数量等信息,可快速的帮乘客订到想要的机票,而乘客也可以通过该系统实现自助退票的功能。 1.2 实现的目标 该系统是由两个人共同设计实现功能,由于一个人的能力有限,该系统仅能实现录入航班信息、查询航班信息、订购飞机票、退订飞机票等一部分功能(航班的信息存储在文件夹中)。 1.3 课题的研究方法 机票管理系统是实现机场机票的预定、统计和分析,提高机票运用的科学管理水平,充分发挥机票利用率,节省订退票时间。系统的主要设计思想是实现对机票的查询、退订等功能。航班的信息以文件的形式存储,用头文件包含、全局变量定义和结构体定义源代码,用结构体数组来存放顾客名、航班号、座位号等信息,用链式结构存储信息。系统的人机接口采用简单的字符界面进行交互。系统的设计方法是结构化设计方法,采用C语言进行开发。软件开发平台采用Visual C++6.0[1]。

2 软件模块结构图 民航订票系统可以分为四个部分,订票、退票、查询信息、信息载入。 图2.1 民航订票系统模块结构图

3 详细设计 3.1 数据结构设计 用printf()函数输出界面,typedef struct airline{}定义航班的信息,如航班号、飞机号、目的地、座位总数和剩余座位数等。typedef struct customer{}定义顾客信息,如顾客名、所订航班号和座位号等。初始化链表,并在airline、customer 链表中操作,实现系统的功能[1]。 3.2 模块设计 3.2.1 界面设计 用printf()函数输出界面,提示用户选择需要的功能,用条件语句捕捉用户输入的选项,并执行代码,进入用户所选的操作界面。若用户输入非选项的字符,则提示输入错误,提醒用户重新选择。 3.2.2 订票模块设计 进入订票模块后,进行订票。若票已经售完,提示用户不能预订该航班的机票。若还有余票,则提示用户输入个人信息订票。订票成功后,系统中该航班的余票减少相应的数量,并将顾客信息存入文件[2]。代码实现: status book(airline *l,char *flight_num,customer *c,char *name) { airline *p=l; customer *q=c->next ; p=l->next ; for(;q->next !=NULL;q=q->next){} for(;p!=NULL;p=p->next ) { if(strcmp(flight_num,p->flight_num )==0) { if(p->left >0)

C语言飞机订票系统课程设计

第一章绪论 1.1:项目背景描述 1、课程设计性质与目的: C语言程序设计是一门实践性很强的课程。C程序课程设计是学习C语言 程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解,提高动手操作能力及分析问题和解决问题的能力。 2、课程设计包含的知识点: 1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语句。 2.掌握数组的基本概念。掌握一维数组与二维数组的使用,掌握字符数组与字符串的关系。 3.熟练掌握指针、地址、指针类型的概念及其使用。掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。 5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。结构体与指针、函数的关系。

第二章可行性分析 一、问题描述: 假设某航空公司只有N架X个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。 二、功能要求: 1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包 括:起飞地、目的地航班号、航班定额。 2、本系统显示这样的菜单: 1.)录入:可以录入航班情况(数据可以存储在一个数据文件中) 2.)浏览:航班信息浏览功能需要提供显示操作; 1、查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以 查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是 否满仓);另外要提供键盘式选择菜单以实现功能选择。 (1)输入航班信息 (2)输出航班信息 (3)查找航班信息 (4)订票预约 (5)删除定票预约 (6)退出系统 2、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入, 并且它们都允许用户收回其输入。 3、查找航班信息既可按线路查,也可按目的地查。 4、在两次运行之间,数据被保存于一个文件里,当本程序重新开 始的时候,它首先从该文件读入数据 三、算法提示: 1、数据结构:结构体类型数组 2、数据库结构:下表构成该系统的基本数据库。 四、测试数据: 录入北京到上海的星期一起飞的航班,假设其定额为30,上海到南京的航班起飞时间为星期二。 五、其它: 在实现系统基本功能后,完善系统的其它功能。在测试数据是发现退票系统出现问题,退票数会超过定额,在加上一个限定条件后成功。基于本系统可以尝试输出所定票的的顾客的完整信息,包括姓名,身份证号等个人信息,由于时间有限,尚未添加。

航空客运订票系统

这是我上网搜的一个材料,大家看一下,我们这次课程设计用java语言来实现,大家仔细看一下项目需求分析,基本要实现的功能如下,大家自己也在网上下些资料,共享一下,人多力量大,好好研究研究项目,下周会聚集大家讨论一下,定下每个人要完成的任务,大家一定要仔细研究,到时候有什么要添加修改的都提出来,做到让项目完美。 航空客运定票系统应该为客户提供三个基本的功能:查询航线、客票预定和办理退票。 (一)查询航线: 能够根据客户提出终点站名输出相关的信息,包括航班号、飞机号、飞行日期、载员定额、余票量、已定票的客户名单(包括该客户的姓名、定票量、舱位等级)以及等候替补的客户名单(包括姓名和所需票量)、最近一天航班的日期和余票额; 由于航空公司的航班保持基本不变,所以应该采用顺序存储结构将各条航线的基本情况登陆在一张线性表上,按照终点站名有序排列。 (二)客票预定: 根据客户提出的要求(航班号和定票数额)查询该航班的余票情况。如余票能够满足客户的要求则为客户办理定票手续并输出相应的座位号;若该航班已经满员或余票额少于客户的定票额,则需重新询问客户需求。若需要可登记排队候补并留下客户的联系方式,不需要则退出。 在客票预定这一环节里将出现两个客户名单:已定票客户名单和需定票客户名单。两客户名单可分别由线性表和队列实现。为查找方便,已定票客户的线性表应按姓名有序,同时为了插入和删除方便,,应以链表作为存储结构。由于无法知道预约的人数,队列也应该以链表作为存储结构。 (三)办理退票: 根据客户提供的情况(日期航班),为客户办理退票手续,同时在系统中删除该客户的基本信息。然后查询该航班是否有人排队替补,首先访问排在第一的客户,若退票额能够满足他的要求,则为他办理定票手续,否则依次询问其他排队候补的客户。 从问题的提出可以看到,我们需要的只是能实现对数据的插入,删除,检索这样一个软件。由于乘客的数量较大并且不固定,因此选择用链表来保存乘客的基本信息:包括乘客的姓名,身份证号,搭乘班机的航班号,以及预定的座位号(假设座位预先订号)。为了将这些信息保存起来以备下次程序运行时调用,将必需的信息写入文件中,在程序的初始化时读入。综合一下来看,我们需要做的是建立一个可以插入和删除节点的链表,并能检索这个链表,在必要的时候将链表的内容保存到文件中。 任何一家航空公司都想尽可能的为客户提供优质的服务。设计这样一个面向顾客的航空订票系统,最重要的就是设计的功能人性化,这就要求:采用先进的设计理念与开发工具,用技术全面提升服务,保证系统功能的强大与完整;具有高可靠性和强大有效的容错能力是系统

相关主题
文本预览
相关文档 最新文档