(完整版)数据结构课程设计-航空客运订票系统.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定
教师签名
嘉应学院计算机学院
实验报告
课程名称:数据结构课程设计
开课学期:2017-2018 学年第 2 学期
班级:1503
指导老师:钟治初
实验题目:航空客运订票系统
学号:
姓名:
上机时间:
1.需求分析
(1)航空管理。每条航班所涉及的信息有:终点站名、航班号、飞机型号、飞行周日(星期几)、乘员定额、余票量。
(2)客户管理。有关订票的客户信息(包括姓名、订票量、航位等级(1, 2 和 3))以及等候替补的客户名单(包括姓名、所需票量)。
(3)系统实现的主要操作和功能。系统实现的主要操作和功能如下:
① 查询航班。根据旅客提出的终点站名输入下列信息:航班号、飞机型号、飞机日期、余
票额。
② 承办订票业务。根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有
余票,则为客户办理订票手续,输出座位号;若已满或者余票少于订票额,则需要重新询问
客户要求;若需要,可等待排队后补。
③ 承办退票业务。根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该
航班是否有人排队候补,首先查询排在第一的客户,若所退票额能满足该客户的要求,则为其办理订票手续,否则询问其他排队候补的客户。
2.概要设计
1)本系统设计了一个含有多个菜单项的主控菜单,系统主控菜单运行界面
2)存储结构设计
本系统主要采用链表结构类型存储航班信息和订票的乘客信息。航班信息链表结点由10个分量构成,乘客信息链表由 5 个分量构成。
3)系统功能设计
本系统分为以下 5 个功能模块。
(1)航班管理。航班管理子模块可完成添加新的航班,按终点站点名查询航班,浏览所有航
班。
(2)订票办理。在添加了航班的基础上可办理订票业务。乘客根据所需航班输入终点站名和
订票量订票。如果订票量超过余票量,则会提示是否成为候补乘客;如果订票成功,则会要
求输入订票乘客的姓名及所订票的舱位等级。
(3) 退票办理。已办理订票业务的乘客可根据所订票的航班和乘客姓名办理退票业务。、
(4)乘客管理。可以查看已经订票的乘客信息和候补乘客的信息。
(5)退出系统。退出整个航空客运订票系统。
3.模块设计
1)模块设计
本程序包括主程序模块、菜单选择模块和队列操作模块。
主程序模块 -> 菜单选择模块 -> 队列操作模块
2)系统子程序及功能设计
本系统共设置 14 个函数,其中包括主函数。个函数名及功能说明如下。
(1)char Continue( )//询问是否继续的函数
(2)void ErrorMess( )//操作出错函数
(3-1)int Find_Line1( )//航班核对函数
(3-2)int Find_Line2( )//按航班号查询函数
(4)void Line_search( )//按目录地查询航班函数
(5)void Line_Add( )//航班添加函数
(6)int Empty_Flight()//航班是否为空函数
(7)int Line_See( )//航班查看函数
(8)void LinemanageMenu ()//航班管理菜单
(9)void bookingMenu( )//订票办理函数
(10)void Display_Reserve( )//订票乘客信息
(11)void Display_Replace( )//候补乘客信息
(12)void RefundticketMenu( )//退票办理函数
(13)void CustomermagMenu( )//乘客管理子菜单函数
(14)void main( )//主程序画面函数
4.详细设计
1)数据类型定义
(1)乘客信息的结构体定义
(2)航班信息的结构体定义
(3)全局变量定义
2)系统主要子程序详细设计
(1)主程序模块设计
主函数。设定用户操作界面以及界面的颜色和大小,调用菜单子模块函数。
(2)航班管理模块子菜单界面函数
(3)航班管理的主要工作函数
(4)订票办理函数,用于办理订票业务
5.测试分析
1)航班管理菜单
在主菜单下,用户输入 1 并按下回车键,运行。该子模块可以实现添加新航班,按终点站
名查找航班的信息,浏览查看所有航班信息这三项航班管理操作。
2) 订票业务办理
在进行了航班添加之后,即航班不为空时,在主菜单下输入 2 并回车办理订票业务,在界面提示下输入订票的相关航班信息和订票客户信息。运行。如果需要订票数超过余票量,则可选择等待成为候补乘客或选择放弃订票。
3)退票业务办理
办理订票业务之后,可以办理对应的退票业务。在主菜单下输入 3 并按下回车键办理订票
业务,在界面提示下输入匹配的退票航班信息和订票客户姓名即可退票成功,运行。
4)乘客管理子菜单
办理了订票业务之后,系统可以管理办理了订票业务的乘客信息。在主菜单下输入 4 并按下回车键进入乘客管理菜单界面,运行。在此子功能模块下可以进行查看订票和候补乘客的信息。
6.退出
在主菜单下输入 5 并按下回车键,即退出“航空客运订票系统”。
完整代码如下:
#include
#include
#include
#include
#define MAX 60
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef struct Customer
{
char Name[8];
int Amount;
char Rank;
int IDinfor;
struct Customer *Next;
}Customer;
typedef struct Flight
{
char Des_Name[10];
char Flight_No[6];
char Plane_No[6];
int Week_Day;
int Customer_Amount;
int Free_Amount;
int Price[3];
Customer *CustName;
Customer *ReplName;
struct Flight *Next;
}Flight,*PFlight;
//全局变量
int Customer_Count = 0;
Flight *Head = NULL;
Flight *p2;
Customer *Custp1[MAX];
Customer *Replp1[MAX];
int IsEmpty = 1;
int IsReplace = 1;
Customer *prior;
int shouldsave = 0;
//1.询问是否继续的函数