航空客运订票系统Word文档格式.docx

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

航空客运订票系统Word文档格式.docx

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

航空客运订票系统Word文档格式.docx

6)评分标准:

1)完成原理分析:

20分;

2)完成设计过程:

40分;

3)完成代码分析:

20分。

4)个人创新工作:

学生签名:

2012年12月21日

课程设计(论文)评审意见

(1)完成问题分析(20分):

优( )、良( )、中( )、一般( )、差( );

(2)算法思想  (20分):

(3)数据结构  (20分):

(4)测试数据(20分):

(5)回答问题  (20分):

(6)格式规范性及考勤是否降等级:

是( )、否( )

评阅人:

职称:

年月日

前言

“数据结构”是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其他理工专业的热门选修课。

从课程性质上讲,“数据结构”是一门专业技术基础课。

它的教学要求是:

学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步掌握算法的时间分析和空间分析的技术。

另一方面,本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范。

目录

正文-3-

一、需求分析-3-

二、个人工作-4-

三、概要设计-5-

四、源程序-7-

五、程序结果-25-

6、课程设计体会.........................................-31-

正文

1、需求分析

随着经济的发展,人们生活水平提高,更多的人选择外出旅游,航空业因此得以快速发展,要面对庞大的游客对乘坐飞机的需求,一个完备的航空客运管理系统是必须的,而且是有效的。

因此,设计和开发一个航空客运订票系统被摆在首位。

我设计的这个航空客运订票系统的业务活动包括:

查询航线、客票预订和办理退票等。

查询航线模块能根据旅客提出的终点站名输出下列信息:

承办订票业务模块将根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理办理订票手续,输出座位号;

承办退票业务模块能根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

两个客户名单分别由线性表和队列实现。

为查找方便,已订票客户的线性表按客户姓名有序,并且,为插入和删除方便,应以链表做存储结构。

由于预约人数无法预计,队列也应以链表作为存储结构。

整个系统将各条航线的情况登陆在一张线形表上,航线采用的是顺序存储结构,并按航班有序或终点站有序。

每条航线是这张线形表上的一个记录,其中乘客名单域为指向乘客名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。

2、个人工作

选择了题目后,我就投入了紧张的工作中,首先,参照老师给定的课程设计任务论文模版,我做了一个简要的提纲,列举了所有我需要做的,同时借鉴了自己上学期做课设的一些经验总结,添加了一些个人的个性元素。

然后,到学校图书馆查询相关资料,把课本中相关知识点勾出来,从网上搜集了有关材料,并与我的同学做了相关讨论,得到了学长学姐的帮助,最后将所得资料加以整合,按照课程设计的任务要求,将程序编写出来,我特意将界面稍微优化了,因而源程序较长,但基本都满足了课题的任务要求。

3、概要设计

(1)主函数流程图:

系统主程序功能显示及流程。

包括主菜单栏,下辖航线管理、订票管理、退票办理、乘客管理等子系统。

(2)航运管理函数流程图:

航线管理的子系统。

可以新增航线以及查询已有航线信息。

(3)订票办理函数流程图:

订票办理的子系统,实现订票功能。

(4)退票办理函数流程图:

退票办理的子系统,实现退票功能。

(5)乘客管理函数流程图:

乘客管理的子系统,可以查询的票乘客的信息和候补乘客的信息。

4、源程序

#include<

iostream.h>

process.h>

string.h>

conio.h>

stdio.h>

iomanip.h>

#defineMAX50

#defineNULL0

typedefstructCustomer//已定票乘客信息

{

charName[7];

//姓名

intAmount;

//定票数

charRank;

//舱位等级

intSeat_No;

//座位号

structCustomer*Next;

}Customer;

typedefstructReplace//替补乘客信息

charSeat_No;

structReplace*Next;

}Replace,*PReplace;

typedefstructFlight//航线信息

charDes_Name[10];

//终点站名

charFlight_No[6];

//航班号

charPlane_No[6];

//飞机号

charWeek_Day;

//飞行周日

intCustomer_Amount;

//乘员定额

intFree_Amount;

//剩余票数

floatPrice[3];

//舱位等级的价格

Replace*ReplName;

//该航班的候补乘客名单

Customer*CustName;

//该航班的已定票乘客名单

structFlight*Next;

//指示下一航线结点

}Flight,*PFlight;

intCustomer_Count=0;

//所有航线的定票乘客总数

Flight*Head;

//航线头指针

Flight*p2;

//航线结点指针

Customer*Custp1[MAX];

//各条航线乘客结点指针

Replace*Replp1[MAX];

//各条航线候补结点指针

intIsEmpty=1;

//是否有定票乘客

intIsReplace=1;

//是否有候补乘客

Customer*prior;

//满足要求的定票乘客的前结点,以作删除操作

//-------启动画面函数----------

voidCover()

{

charline[]={"

━━━━━━━━━━"

};

charbar[]={"

...."

inti,j,k=0,x=0,y=0;

for(i=1;

i<

=strlen(line)/2;

{

system("

cls"

);

for(j=0;

j<

9;

j++)//改变行坐标

cout<

endl;

(75-strlen(line))/2;

j++)//改变列坐标

"

"

;

for(j=1;

=i;

j++)//进度显示器

■"

for(x=strlen(line)/2;

x>

i;

x--)

□"

if(k==4)

i++;

j++)//行坐标定位

line;

//输出线条

(65-strlen(bar))/2;

j++)

(i-1)*10<

%Loading"

cout.write(bar,k);

10;

24;

designer:

11软会3班--小龙"

=12;

─"

10000000;

j++);

//延时效果

k++;

if(k>

4)

k=0;

}

}

//---------------菜单模板函数---------------

charModelMenu(char*s[],intItemcount)

inti;

charanswer;

\n\n"

\t\t\t┌──────────────┐"

\t\t\t"

s[0]<

\t\t\t├──────────────┤"

\t\t\t│              │"

\t\t\t│ ┌──────────┐ │"

Itemcount;

i++)

s[i]<

if(i+1!

=Itemcount)

\t\t\t│ ├──────────┤ │"

\t\t\t│ └──────────┘ │"

\t\t\t└──────────────┘"

\t\t\t请输入菜单项前的操作代码:

cin>

answer;

returnanswer;

//---------------主菜单函数---------------

charMainMenu()

char*MenuItem[]={"

│  航空客运订票系统菜单  │"

"

│ │[1].航线管理│ │"

\

│ │[2].订票办理│ │"

│ │[3].退票办理│ │"

│ │[4].乘客管理│ │"

│ │[5].系统离开│ │"

returnModelMenu(MenuItem,6);

//---------------是否继续函数---------------

charContinue()

while

(1)

{

\t\t"

for(i=0;

15;

\n\t\t\t是否继续(Y/N)?

if(answer=='

y'

||answer=='

Y'

return'

elseif(answer=='

n'

N'

else

\t\t\t输入错误,请重新输入!

//---------------操作出错函数---------------

voidErrorMess()

\n\t\t\t对不起,没有相关菜单项,按任意键继续..."

getch();

//-----------------系统退出-----------------

intExitSystem()

\n\t\t\t你确定是否真要离开系统吗(Y/N)?

return1;

return0;

//--------------操作提示函数-------------

voidprefix(char*Item)

\n\n\t\t\t当前操作:

Item<

//--------------航线查找函数-------------

//Find_Line()为重载函数

intFind_Line(PFlightL,char*key)//引用调用

intflag=0;

//该标志位0表示未找到相关信息,反之即找到,以下标志位同理

Flight*p1;

p1=L;

//赋航线首地址

if(p1==p2)//首航线不作比较

returnflag;

while(p1!

=p2&

&

p1!

=NULL)//本航班号不纳入比较范围,否则会一直提示航线不唯一

if(strcmp(p1->

Flight_No,key)==0)

flag=1;

break;

p1=p1->

Next;

//指向下一航班结点

intFind_Line(PFlightL,char*key,PFlight&

p2,int&

Flight_No)//引用调用

//该标志位0表示未找到相关信息,反之即找到

//赋航线首结点

=NULL)

Flight_No,key)==0)//不包括当前航线

p2=p1;

//指向下一航班结点

if(p1!

=NULL)//遇结束符不作统计范围

Flight_No++;

//-----------------航线添加函数-------------

voidLine_Add()

//建立临时航线结点

if(Head==NULL)//航线为空

p1=p2=newFlight;

//建立首个航线

Head=p2;

p1=newFlight;

//建立航线结点

p2->

Next=p1;

//前一航线结点指向当前航班结点

//保留当前航班结点地址

prefix("

航线增设"

\t\t\t请输入终点站名:

p2->

Des_Name;

while

(1)//数据合法性检验

\n\t\t\t请输入航班号(唯一):

Flight_No;

if(Find_Line(Head,p2->

Flight_No))//存在航班号

\n\t\t\t输入的航班号不唯一!

\n\t\t\t请输入飞机号:

Plane_No;

\n\t\t\t请输入飞行周日(1-7):

Week_Day;

if(p2->

Week_Day<

'

1'

||p2->

Week_Day>

7'

\n\t\t数据输入错误,按任意键继续输入."

\n\t\t\t请输入乘员定额:

Customer_Amount;

\n\t\t\t请输入头等舱票价:

Price[0];

\n\t\t\t请输入普通舱票价:

Price[1];

\n\t\t\t请输入经济舱票价:

Price[2];

Free_Amount=p2->

//剩余票数与乘员定额相同

CustName=NULL;

//该航线定票乘客头指针为空

ReplName=NULL;

//初始候补名单为空

if(Continue()=='

Next=NULL;

//航线的下一结点为空

return;

//------------航线是否为空函数-------------

intEmpty_Flight()

if(Head==NULL)

\n\n\n\n\n\n\n\n\t\t对不起,没有相关航线。

按任意键返回..."

//------------航线查看函数-----------------

voidLine_See()

intDay;

p1=Head;

char*Week_Day[]={"

星期一"

星期二"

星期三"

星期四"

星期五"

星期六"

星期日"

if(Empty_Flight())//航班线为空

航班查看"

┌────┬───┬───┬────┬────┬────┬────────┐"

│││││││票价  │"

│终点站名│航班号│飞机号│飞行周日│乘员定额│剩余票数├──┬──┬──┤"

│    │   │   │    │    │    │头舱│普舱│经舱│"

├────┼───┼───┼────┼────┼────┼──┼──┼──┤"

=NULL)

Day=p1->

Week_Day-'

0'

-1;

//数字转换相应星期数

│"

setiosflags(ios:

:

left)<

setw(8)<

p1->

Des_Name<

│"

setw(6)<

Flight_No<

\

Plane_No<

Week_Day[Day]<

│"

setw(5)<

Customer_Amount<

Free_Amount<

setw(4)<

Price[0]<

Price[1]<

Price[2]<

└────┴───┴───┴────┴────┴────┴──┴──┴──┘"

\n\t\t\t按任意键返回子菜单..."

voidSub1Menu()

│航空客运航线管理子菜单│"

│ │[1].航线增设│ │"

│ │[2].航线查看│ │"

│ │[3].返回主菜单│ │"

switch(ModelMenu(MenuItem,4))

case'

{Line_Add();

break;

2'

{Line_See();

3'

{return;

default:

{ErrorMess();

//---------------订票办理函数---------------

voidSub2Menu()

intTicket_Count,Seat_No,i,flag=0;

intFli

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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