数据结构课程设计:飞机订票系统设计与实现(里面附有源代码!)

2025-06-25

课 程 设 计

题目 飞机订票系统

院 系 ******* 专 业 *************** 姓 名 ****** 学 号 ********* 指 导 教 师 ***

2012年7月

1

1. 需求分析

1.1 问题描述

基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。本课程设计的题目为:飞机订票系统。

1.2 基本要求

1.2.1 输入的形式和输入值的范围

录入航班信息时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息)。

客户订票时,需要输入起飞抵达城市,然后选择航班进行查询,选择航班时需要输入航班号,值为字符串。

客户退票时,需要输入姓名,证件号进行退票操作,值为字符串。

查询某个航班的情况时,需要输入航班号,值为字符串;在查询某个航线的情况时,还可以通过输入起飞抵达城市来查询,值为字符串。

查询某个订单时,需要输入订单号,值为整型(int);或者需要输入客户姓名和证件号,值为字符串。

修改航班时,需要输入字符型数据选择进行何种修改操作;增加航班时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息);删除航班时,需要输入要删除的航班的航班号;修改航班时间时,需要输入要修改的航班的航班号,修改后的航班起飞时间和抵达时间。

1.2.2 输出形式

在所有操作后的输出中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。

录入航班情况时,输出显示添加航班信息是否成功。

客户订票时,当客户输入起飞抵达城市后,输出可供客户选择的航班信息;客户选择了航班后,输入提示信息告知用户订票是否成功。

客户退票时,输出客户退票成功或者无此客户,无法退票。 查询航班时,输出显示对应的航班信息,或者输出提示信息告知没有相应的航班信息。 查询订单时,输出显示对应的订单信息,或者输出提示信息告知没有相应的订单信息。 修改航班时,输出对应的提示的信息,提示操作是否成功。

2

1.2.3 功能要求

(1)可以录入航班情况,数据存储在一个数据文件中;

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

(3)可以订票,订票情况存在一个数据文件中(如果该航班已经无票,提供相关可选航班);

(4)可退票并且退票后修改相关数据文件;

(5)客户资料:姓名,证件号,订票数量及航班情况,订单要有编号; (6)修改航班信息,当航班信息改变可修改航班数据文件;

(7)要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。

2. 概要设计

2.1 数据结构

(1)航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞时间、降落时间、起飞城市、抵达城市、航班票价、票价折扣、确定航班是否满仓和空座数九个数据项: 航班号 起飞 降落 起飞 抵达 航班 空座数 票价 票价 时间 时间 城市 城市 是否满仓 折扣 字符串 字符串 字符串 字符串 字符串 整数 (int) 单链表如下:

D1 D2 h

每个结点包括数据域和指针域: 数据域 指针域

C语言描述如下:

typedef struct flightnode{ char air_num[10];//航班号 char start_time[15];//起飞时间 char end_time[15];//抵达时间 char start_place[20];//起飞城市 char end_place[20]; //降落城市 int left; //空座数 float price; //票价 float price_discount;//票价折扣

int isFull; //航班是否满仓 struct flightnode *next;//指向下一个结点

整数 浮点数 浮点数 (int) (float) (float) D3 ^ 3

}flightnode;//航班结点

(2)客户的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、证件号、航班号、订票数量和订单号五个数据项: 姓名 证件号 航班号 订票数量 订单号 字符串 字符串 字符串 整数(int) 整数(int) 每个结点包括数据域和指针域:

数据域 指针域 C语言描述如下:

typedef struct passengernode{//定义客户资料结点 char name[20]; //姓名 char ID_num[20]; //证件号 char flight_num[10];//航班号 int order_num; //订单号 int ticket_num; //订票数量

struct passengernode *next;//指向下一个结点 }passengernode;

(3)客户链表:每个数据元素包括头指针和尾指针两个数据项: 每个结点包括两个指针域: 头指针域 尾指针域

C语言描述如下:

typedef struct passengerList{ passengernode *head; passengernode *rear; }passengerList;

2.2 程序模块

2.2.1 录入航班信息模块

void add_flight(flightnode *&h)调用void insert_flight(flightnode *&h,char*

flight_num,char* start_place,char* end_place,char* start_time,char* end_time,int left,float price,float price_discount,int isFull)函数,将新航班结点插入航班链表中。

2.2.2 客户订票模块

int book(flightnode *&h,passengerList *&PList)函数调用int

insert_passenger(passengernode *&h,char *name,char *ID_num,char *flight_num,int ticket_num,int order_num)函数,将新客户结点插入客户链表中。

4

2.2.3 客户退票模块

void cancel(passengerList *&PList,flightnode *&h)函数调用int

delete_passenger(passengerList *&PList,flightnode *&h,char *name,char *ID_num)函数,将相应的顾客结点删除,并修改相应的航班信息。

2.2.4 查询航班模块

void flight_check(flightnode *h)调用void check_all_flight(flightnode *h)函数进行所有航班信息浏览,调用int place_check(flightnode *h,char *start_place,char *end_place)函数按起飞抵达城市对航班进行查询,调用int flight_num_check(flightnode *h,char *flight_num)按航班号对航班进行查询。

2.2.5 查询订单模块

void passenger_check(passengerList *PList)调用void check_all_passenger(passengerList *PList)函数进行所有订单信息浏览,调用int order_num_check(passengerList *PList,int order_num)函数按订单号对订单进行查询,调用int ID_name_check(passengerList *PList,char *name,char *ID_num)按客户姓名和证件号对订单进行查询。

2.2.6 修改航班模块

增加航班时,void modify_flight(flightnode *&h,passengerList *&PList)函数调用void add_flight(flightnode *&h)函数,将新航班信息结点插入航班链表中。

删除航班时,void modify_flight(flightnode *&h,passengerList *&PList)函数调用void delete_flight(flightnode *&h,passengerList *&PList)函数将相应的航班信息删除,并删除相应的订单信息。

修改航班时间时,void modify_flight(flightnode *&h,passengerList *&PList)函数修改指定航班的起飞抵达时间。

2.3 各模块之间的调用关系以及算法设计

2.3.1 各模块之间的调用关系

5


数据结构课程设计:飞机订票系统设计与实现(里面附有源代码!).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公开课2.0李时珍夜宿古寺

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219