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

2025-06-25

找匹配姓名、证件号、航班号的客户结点,找到后定义航班指针*f=h->next,使用for循环找到匹配航班号的航班结点,执行f->left=f->left+p->ticket_num,修改退票后相应航班结点的空座数,之后执行pr->next=p->next;free(p);删除要退票的客户订单信息。如果没有找到匹配的客户结点,输出提示信息。 开始 输入姓名、证件号、航班号,分别存于name、ID_num、flight_num

调用delete_passenger函数

完成客户的退票 结束

开始 delete_passenger函数的流程图: passengernode *pr=PList->head passengernode *p=pr->next

N p!=NULL

Y

strcmp(name,p->name)==0&& N strcmp(ID_num,p->ID_num)== 0&&strcmp(flight_num,p-> flight_num)==0

Y

flightnode *f=h->next

N f!=NULL

Y

N strcmp(flight_num, f->flight_num)==0

Y

f->left=f->left+p->ticket_num; f=f->next

pr->next=p->next free(p) pr=pr->next;

p=pr->next;

返回“1” 返回“0”

结束

3.4 查询航班模块

在主函数中输入“4”,调用void flight_check(flightnode *h)函数选择使用哪一种查询方

11

式进行查询。提示客户输入查询方式,如客户输入“1”,则调用int

flight_num_check(flightnode *l,char *flight_num)函数按航班号对航班进行查询,提示客户输入航班号,存于flight_num中;如客户输入“2”,则调用int place_check(flightnode *l,char *start_place,char *end_place)函数按起飞抵达城市对航班进行查询,提示客户输入起飞抵达城市,分别存于start_place和end_place中;如客户输入“3”,则调用void check_all_flight(flightnode *l)函数浏览全部航班信息。

在int flight_num_check(flightnode *l,char *flight_num)函数中,定义航班指针*p=h,使用for循环匹配flight_num和p->flight_num,找到匹配的航班节点后,输出该航班的所有信息。

在int place_check(flightnode *l,char *start_place,char *end_place)函数中,定义航班指针*p=h,使用for循环寻找匹配start_place和start_place的结点,找到匹配的航班结点后,输出该航班的所有信息。

在void check_all_flight(flightnode *l)函数中,定义航班指针*p=h,使用for循环输出所有航班信息。 开始

请客户选择查询方

式,存于a中 根据a的值进行选择 a==1 a==2 a==3

调用flight_num_c 调用check_all_fl 调用place_chec heck函数进行查询 ight函数进行查询 k函数进行查询

结束

flight_num_check函数的流程图:

开始

flightnode *p=h p!=NULL Y

strcmp(p->flight_num, flight_num)==0 Y 输出航班信息,返回“1”

N N p=p->next 返回“0” 结束 3.5 查询订单模块

在主函数中输入“5”,调用void passenger_check(passengerList *PList)函数选择使用哪

12

一种查询方式进行查询。提示客户输入查询方式,如客户输入“1”,则调用int

ID_name_check(passengerList *PList,char *name,char *ID_num)函数按客户的姓名和证件号对订单进行查询,提示客户输入姓名和证件号,分别存于name和ID_num中;如客户输入“2”,则调用int order_num_check(passengerList *PList,int order_num)函数按订单号对订单进行查询,提示客户输入订单号,存于order_num中;如客户输入“3”,则调用void check_all_passenger(passengerList *PList)函数浏览全部订单信息。

在int ID_name_check(passengerList *PList,char *name,char *ID_num)函数中,定义客户指针*p= PList->head->next,使用for循环寻找匹配name和ID_num的结点,找到匹配的订单节点后,输出该订单的所有信息。

在int order_num_check(passengerList *PList,int order_num)函数中,定义客户指针

*p=PList->head->next,使用for循环寻找匹配order_num的结点,找到匹配的订单结点后,输出该订单的所有信息。

在void check_all_passenger(passengerList *PList)函数中,定义客户指针*p=PList->head->next,使用for循环输出所有订单信息。 开始

请客户选择查询方

式,存于a中

根据a的值进行选择 a==1 a==2 a==3

调用name_ID_che 调用check_all_pas 调用order_num_ch ck函数进行查询 senger函数进行查询 eck函数进行查询 结束

order_num_check函数的流程图: 开始

passengernode *p=PList->head->next

N p!=NULL Y N

p->order_num ==order_num

Y p=p->next 返回“0” 输出航班信息,返回“1”

结束

3.6 修改航班模块

在主函数中输入“6”,调用void modify_flight(flightnode *&h,passengerList *&PList)函

13

数对航班信息进行修改。提示客户输入修改模式,如客户输入“1”,则调用void add_flight(flightnode *&h)函数添加航班信息;如客户输入“2”,则调用void delete_flight(flightnode *&h,passengerList *&PList)函数删除指定的航班信息,提示客户输入航班号,存于flight_num中;如客户输入“3”,则示客户输入航班号,如果该航班号存在,则提示用户输入修改后的起飞抵达时间。

在void delete_flight(flightnode *&h,passengerList *&PList)函数中,定义航班指针*pr=h,定义航班指针p=pr->next,定义客户指针*qr=PList->head,定义客户指针*q=qr->next。使用while循环寻找匹配航班号的航班结点,找到后执行pr->next=p->next;free(p),删除指定的航班信息;使用while循环找到匹配航班号的订单结点,执行qr->next=q->next;free(q),删除对该航班订票的订单信息。如果没有找到匹配的航班结点,输出提示信息。 开始 请客户选择修改模 式,存于a中 根据a的值进行选择 a==1 a==3 a==2 调用add_flight函 输入航班号,存 调用delete_fli 数添加航班信息 入flight_num ght函数删除航班 flight_num_check (p,flight_num)==1 输入修改后的起飞抵达时间, 分别存入start_time和end_time flightnode *p=h->next p!=NULL strcmp(flight_num, p->flight_num)==0 strcpy(p->start_time,start_time) strcpy(p->end_time,end_time) p=p->next 结束

14

4. 测试与分析

4.1 合法数据的测试

(1) 编译链接后显示菜单

(2) 输入菜单号“1”,开始航班信息的录入

(3) 输入菜单号“2”,进入订票模块

15


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

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

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

下载本文档需要支付 7

支付方式:

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

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