航班购票系统课程设计文档格式.docx
- 文档编号:17251741
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:29
- 大小:483.58KB
航班购票系统课程设计文档格式.docx
《航班购票系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《航班购票系统课程设计文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
(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)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航班 购票 系统 课程设计