航班购票系统课程设计文档格式.docx

上传人:b****6 文档编号:17251741 上传时间:2022-11-29 格式:DOCX 页数:29 大小:483.58KB
下载 相关 举报
航班购票系统课程设计文档格式.docx_第1页
第1页 / 共29页
航班购票系统课程设计文档格式.docx_第2页
第2页 / 共29页
航班购票系统课程设计文档格式.docx_第3页
第3页 / 共29页
航班购票系统课程设计文档格式.docx_第4页
第4页 / 共29页
航班购票系统课程设计文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

航班购票系统课程设计文档格式.docx

《航班购票系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《航班购票系统课程设计文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

航班购票系统课程设计文档格式.docx

(2)系统功能:

可以对数据表中的信息进行浏览。

(3)系统查询:

可以对航班的信息进行查询。

3需求分析

用户使用此程序所要完成的工作主要为:

查询任意航线信息、查询飞机航班信息、客户购票查询、办理订票业务、办理退票业务。

通过此系统可以方便的进行上述工作。

每条航线所涉及的信息有:

终点站名、航班号、飞行时间、票价、票价折扣、总票数、余票量。

已订票的客户名单信息包括姓名、证件号、订票量、航班号、订单编号。

查询航线功能可以根据旅客提出的终点站名输出航班号、飞行时间、票价、票价折扣、余票量。

订票业务功能根据客户提出的要求(航班号、航班时间)查询该航班票额情况,若尚有余票,则为客户办理订票手续;

若已满员或余票额少于定票额,则需重新询问客户要求。

退票业务功能根据客户提供的情况(订单号、姓名)为客户办理退票手续。

4概要设计

每个模块的算法设计说明如下:

(1)录入模块:

查找单链表的链尾,在链头插入一个“航班信息”的新结点。

(2)浏览模块:

顺着单链表输出航班信息。

(3)修改模块:

输入密码,确认是否有权限对航班信息进行修改,有则进行修改,否则不能修改。

提供两种修改方式:

添加航班和对已有的航班信息进行改动(修改和删除)

(4)查询模块:

提供两种查方式:

根据航班号查询特定航班信息和根据航线查询该航线所有航班信息。

顺着单链表查找,如果与航班号(航线)一致,输出相关信息并询问乘客是否要订票,若订进入订票模块;

否则,查询不成功。

(5)订票模块:

查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功;

若无则订票不成功,退出订票。

(6)退票模块:

输入要退票的客户信息或订单号,查找乘客资料的链表中是否有这位乘客,有则删去此结点,无则退票失败。

4.1数据库设计

系统用到的抽象数据类型定义:

1.ADTFltInfo{

数据对象V:

一个单链表,该链表包含了所有航程信息

数据关系R:

链表中各数据元素之间是非顺序结构

基本操作:

(1)ChuFltInfo(&

F);

(2)InFltInfo(&

(3)UpdateFltInfo_hbh(&

(4)SelectFltIfo_Bh(F);

(5)SelectFltIfo_Mdd(F);

(6)Read(F);

}ADTFltInfo

2.ADTCusInfoPrt{

数据元素:

一个单链表,该链表包含所有的客户订票信息

关系:

链表中所有数据元素是非顺序结构

(1)ChuCusInfo(&

C);

(2)Select_CusInfo(C);

(3)Book_Ticket(&

C,&

(4)Return_Ticket_dd(&

(5)Return_Ticket_XM(&

}ADTCusInfoPrt

4.2函数及功能要求

mure():

提供航空订票系统的界面,通过该程序可以调用其他子程序。

Yz():

管理员信息验证的子程序。

3.mure_x():

主菜单中功能选择。

4.mure_1():

管理员操作选择的子程序。

5.muer_2():

客户操作选择的子程序。

6.du(FltInfoPtrF):

读取航班所有信息的子程序。

7.ChuCusInfo(CusInfoPrt&

C):

初始化客户信息链表。

8.ChuFltInfo(FltInfoPtr&

F):

初始化航班信息链表。

9.UpdateFltInfo_hbh(FltInfoPtr&

按航班号修改航班信息。

10.InFltInfo(FltInfoPtr&

录入航班信息。

11.Select_CusInfo(CusInfoPrtC):

根据客户名和客户证号查询客户的订票情况。

12.Book_Ticket(CusInfoPrt&

C,FltInfoPtr&

根据航班号订票。

13.Return_Ticket_dd(CusInfoPrt&

根据订单号退票。

14:

Return_Ticket_XM(CusInfoPrt&

根据客户名和客户证号退票。

15.SelectFltIfo_Mdd(FltInfoPtrF):

根据航线查询该航线所有航班的信息。

16.SelectFltIfo_Bh(FltInfoPtrF):

根据航班号查询特定的航班信息。

4.3模块调用关系

各程序模块之间的调用关系(子程序编号见上):

程序1可调用子程序3。

子程序3可调用子程序4,5。

子程序4可调用子程序2,8。

子程序8可调用子程序9,10。

子程序5可调用子程序6,7。

子程序6可调用子程序11,12,13,14,15,16。

5详细设计

航空订票系统的主界面分为管理员进入和客户进入,对应的功能有管理员航班信息的录入和修改,客户订票、退票、订票信息的查询、航班信息的查询等一系列功能。

此系统主要运用了链式存储结构来实现,在航班信息方面,要对航班进行录入、查询、修改等操作,由于链表的优势就在于便于进行添加、删除和查找,因此有关航班信息方面的部分可以由链表来实现。

在定义结构体方面,本系统定义了两个结构体,分别用来储存航班信息和客户基本信息。

根据本系统的功能及所定义的数据结构,部分功能函数如下。

5.1初始化航班信息链表伪码

航班信息链表的初始化,以下函数可将其实现。

statusChuFltInfo(FltInfoPtr&

F)

{

F=(FltInfoPtr)malloc(sizeof(FltInfo));

if(申请空间失败){程序返回erro;

}

else

{

F->

next=NULL;

程序返回ok;

}

5.2录入航班信息链表伪码

录入航班信息需依次输入航班号、航班时间、航程、航班票价等基本信息。

如果添加成功,会出现友情提示“添加成功!

”;

如果此次添加的航班号信息已经存在,会出现相应的航班信息以及友情提示,管理员可以根据不同情况作出选择。

以下函数可将其实现。

statusInFltInfo(FltInfoPtr&

F)

p2=F;

p1=(FltInfoPtr)malloc(sizeof(FltInfo));

if(p1申请空间失败)

程序返回erro;

printf("

请输入航班信息:

"

);

请输入航班号:

scanf("

%6d"

&

p1->

date.Hbh);

请输入航班时间(XX月XX日XX:

XX:

XX):

%17s"

date.Hbsj);

航班航程(XX-XX):

%10s"

date.Hc);

请输入航班票价:

%f"

date.Hbpj);

请输入票价折扣:

date.Pjzk);

请输入总票数:

%d"

date.Zps);

p1->

date.Syps=p1->

date.Zps;

while(p2下一个节点不为空)

{

if(p1中航班号!

=p2中航班号)

{

P2指向下一个节点;

}else

printf("

该航班信息已存在,原信息为:

\n"

航班号起降时间航程航班票价票价折扣剩余票数\n"

p2->

next->

%20s"

%12s"

%11.2f"

%8d"

是否替换原信息:

1.替换2.不替换\n"

inta;

scanf("

a);

switch(a){

case1:

{

p1中的数据替换p2中的数据;

}程序返回ok;

case2:

释放p1的内存;

default:

break;

}

break;

}

}

没有该航班号,添加该条信息;

程序返回ok;

}

5.3按航班号修改航班信息

按航班号修改航班信息需依次修改航班号、航班时间、航程、航班票价、票价折扣、剩余票数等基本信息。

修改成功就会出现友情提示,如果要修改的航班信息不存在,则提示:

该航班号不存在,是否添加?

statusUpdateFltInfo_hbh(FltInfoPtr&

F)

p1=F->

next;

printf("

请输入需要改变的航班号:

scanf("

Num);

while(p1不为空)

if(p1中的航班号==需要改变的航班号)

printf("

请输入该航班号正确的信息:

scanf("

p1->

程序返回ok;

p1指向下一个节点;

1.添加2.不添加"

x);

switch(x)

case1:

p2=(FltInfoPtr)malloc(sizeof(FltInfo));

if(p2申请空间失败){程序返回erro;

else{

p2->

date.Hbh=Num;

p2->

date.Syps=p2->

插入节点p2;

}

}break;

case2:

default:

程序返回ok;

5.4读取航班所有信息

读取航班所有信息,包括航班号、起降时间、航程、票价等一系列基本信息。

voiddu(FltInfoPtrF)

p1->

%8d\n"

p1=p1->

5.5根据航班号查询特定的航班信息

根据航班号查询特定的航班信息需要输入航班号,如果信息符合则显示相关的航班信息,否则提示查询的信息不存在。

statusSelectFltIfo_Bh(FltInfoPtrF)

请输入要查询的航班号:

if(p1中的航班号==所查询的航班号)

date.Syps);

程序返回ok;

您查询的信息不存在!

5.6根据航线查询该航线所有航班的信息

根据航线查询该航线所有航班的信息需要输入航班航程,如果信息符合则显示相关的航班信息,否则提示查询的信息不存在。

statusSelectFltIfo_Mdd(FltInfoPtrF)

if(p1中的航程与所需查询的航程相同)

5.7初始客户信息链表

客户信息链表的初始化,以下函数可将其实现。

statusChuCusInfo(CusInfoPrt&

C)

C=(CusInfoPrt)malloc(sizeof(CusInfo));

if(C申请空间失败){程序返回erro;

C的下一个节点置空;

5.8根据客户名和客户证号查询客户的订票情况

根据客户名和客户证号查询客户的订票情况需要输入姓名与证件号,如果两个信息都正确无误则输出客户订票的详细信息,否则提示查询的信息不存在。

statusSelect_CusInfo(CusInfoPrtC)

p1=C->

请输入姓名与证件号:

请输入用户名:

%s"

请输入证件号:

Znum);

if(p1的姓名与查询的用户名相同&

&

与查询证件号相同)

姓名证件号订票数量航班号订单编号\n"

%4s"

date.Xm);

date.Zjh);

date.Dpsl);

%13d"

%15d"

date.Ddbh);

5.9根据航班号订票

根据航班号订票需要输入要订购的航班号,如果信息正确则显示起降时间、航程、票价等一系列基本信息,并提示是否继续订票。

继续则需输入姓名、证件号、票数等信息,否则提示查询的信息不存在。

statusBook_Ticket(CusInfoPrt&

请输入要订购的航班号:

while(p1不为空且p1中的航班号不等于要订购的航班号)

if(p1不为空)

{printf("

inti;

1.继续订票2.退出"

i);

switch(i)

case1:

p2=(CusInfoPrt)malloc(sizeof(CusInfo));

if(p2申请空间失败)程序返回erro;

请输入姓名:

请输入订票数量:

date.Syps-(p2->

p2->

date.Ddbh=(Num*10000+((p2->

date.Zjh)%10000));

next=C->

C->

next=p2;

订票成功\n"

case2:

mure_1();

default:

5.10根据订单号退票退票

根据订单号退票需要输入订单号,如果信息匹配则显示一系列基本信息并提示是否确定退票,否则提示该订单不存在。

statusReturn_Ticket_dd(CusInfoPrt&

请输入订单号:

while(p1不为空&

p1的订单号等于查询的订单号)

p2=p1;

if(p1为空)

该订单不存在\n"

else{

%4s%8d%8d%13d%15d\n"

date.Xm,p1->

date.Zjh,p1->

date.Dpsl,p1->

date.Hbh,p1->

确定退票?

1.是2.否\n"

intj;

j);

switch(j)

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

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1