,.
(int)
单链表如下:
每个结点包括数据域和指针域:
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;//指向下一个结点
h D1 D2 (int) (float) (float) D3 ^ 数据域 指针域 }flightnode;//航班结点
,.
(2)客户的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、证件号、航班号、订票数量和订单号五个数据项: 姓名 字符串
每个结点包括数据域和指针域:
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)客户链表:每个数据元素包括头指针和尾指针两个数据项: 每个结点包括两个指针域:
证件号 字符串 航班号 字符串 订票数量 整数(int) 订单号 整数(int) 数据域 指针域 头指针域 尾指针域 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)函数,将新客户结点插入客户链表中。
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)函数修改指定航班的起飞抵达时间。