数据结构课程设计:飞机订票系统设计与实现(里面附有源代码!)_第1页
数据结构课程设计:飞机订票系统设计与实现(里面附有源代码!)_第2页
数据结构课程设计:飞机订票系统设计与实现(里面附有源代码!)_第3页
数据结构课程设计:飞机订票系统设计与实现(里面附有源代码!)_第4页
数据结构课程设计:飞机订票系统设计与实现(里面附有源代码!)_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计题目飞机订票系统*指导教师_20122012 年 7 7 月1. 需求分析问题描述基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一 个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询 和修改等基本功能。本课程设计的题目为:飞机订票系统。基本要求输入的形式和输入值的范围录入航班信息时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入 航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int) (“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息, 值为整型(“

2、1”表示继续录入航班信息,“0”表示停止录入航班信息)。 客户订票时,需要输入起飞抵达城市,然后选择航班进行查询,选择航班时需要输入航班 号,值为字符串。 客户退票时,需要输入姓名,证件号进行退票操作,值为字符串。 查询某个航班的情况时,需要输入航班号,值为字符串;在查询某个航线的情况时,还可 以通过输入起飞抵达城市来查询,值为字符串。 查询某个订单时,需要输入订单号,值为整型(int);或者需要输入客户姓名和证件号, 值为字符串。修改航班时, 需要输入字符型数据选择进行何种修改操作; 增加航班时,需要输入航班号, 起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(

3、float); 还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓); 如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息) ;删除航班时,需要输入要删除的航班的航班号;修改航 班时间时,需要输入要修改的航班的航班号,修改后的航班起飞时间和抵达时间。输出形式在所有操作后的输出中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显 示删除的元素的值,查找操作后显示要查找元素的位置。录入航班情况时,输出显示添加航班信息是否成功。 客户订票时,当客户输入起飞抵达城市后,输出可供客户选择的航班信息;客户选择了航

4、班后,输入提示信息告知用户订票是否成功。客户退票时,输出客户退票成功或者无此客户,无法退票。查询航班时,输出显示对应的航班信息,或者输出提示信息告知没有相应的航班信息。查询订单时,输出显示对应的订单信息,或者输出提示信息告知没有相应的订单信息。 修改航班时,输出对应的提示的信息,提示操作是否成功。功能要求(1) 可以录入航班情况,数据存储在一个数据文件中;(2) 可以查询某个航线的情况:输入航班号,查询起降时间,起飞抵达城市,航班票价, 票价折扣,确定航班是否满仓;输入起飞抵达城市,查询飞机航班情况;(3) 可以订票,订票情况存在一个数据文件中(如果该航班已经无票,提供相关可选航 班);(4)

5、 可退票并且退票后修改相关数据文件;(5) 客户资料:姓名,证件号,订票数量及航班情况,订单要有编号;(6) 修改航班信息,当航班信息改变可修改航班数据文件;(7) 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功2. 概要设计数据结构(1)航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包 括航班号、起飞时间、降落时间、起飞城市、抵达城市、航班票价、票价折扣、确定航班 是否满仓和空座数九个数据项:航班号起飞 时间降落 时间起飞 城市 抵达 城市航班 是否满仓空座数票价票价 折扣字符串字符串字符串字符串字符串整数(int)整数(int)浮点数(fl

6、oat)浮点数(float)C语言描述如下:typedef struct flight no de char air nu m10;主函数详细设计录入航班信息浏览、 按航按起浏览” 按订按客全部班号飞抵全部单号户姓航班查询达城订单查询名和信息航班市查信息订单证件1FV修改航班信息1/1退岀1J1 11增加航班信息工删除航班信息修改航班起飞单链表如下:订票退票查询航班查询订单抵达录入航班信息模块在主函数中输入“T,调用void add_flight(flightnode *&h)函数,此函数将航班指针*p指 向已存在航班链表*h的头结点,利用for(;p-next!=NULL;p=p-n

7、ext)(*p指向航线链表的 最后一个结点,然后让用户输入航班信息,然后调用void in sert_flight(flight node *&h,char*flight_num,char* start_place,char* end_place,char* start_time,char* end_time,int left,floatprice,float price_discount,int isFull)函数,用malloc函数申请一个航班结点,并用指针*q指 向,将航班信息赋到新申请的结点中,p- next=q;p=p- next该操作将该结点插入航班链表中。流程图如下:顾客

8、订票模块在主函数中输入“2”,调用int book(flightnode *&h,passengerList *&PList)函数完成客户的 订票。用航班指针*p指向已存在航班链表*h的头结点的下一个结点,请客户输入起飞抵 达城市,分别存于start_place和end_place中。 调用int place_check(flightnode *l,char *start_place,char *en d_place)函数,如果函数返回“1”则请客户输入要订的航班号,如果 输入的航班号不存在,输出提示信息,如果航班存在则提示客户输入订的票数、客户的姓名和证件号,调用voidin

9、sert_passengerList(flightnode *&h,passengerList *&PList,char *name,char *ID_num,char*flight_num,int ticket_num)函数,定义航班指针*p=h-next,使用for循环匹配flight_num和p-flight_num,找到后,执行p-left=p-left-ticket_num,修改相应航班的空座数。用malloc函数申请一个客户结点,并用指针*q指向,将客户信息和航班号赋到新申请的结点 中,PList-rear-门6乂上=4;卩口$匸9&=4亥操作将该结点插入客

10、户链表中。如果该航班已满仓或该航班的空座数不够,输出可供选择的航班,让客户选择,之后调用void in sert_passe ngerList(flight node *&h,passe ngerList *&PList,char *n ame,char *ID_ num,char *flight_num,int ticket_num)函数将客户结点插入客户链表中.p=p n ext返回“ 1 ”返回“ 0”,顾客退票模块| 在主函数中输入“3”,调用void cancel(passengerList *&PList,flightnode *&h)函数完成客户

11、的退票。提示客户输入客户的姓名和证件号以及要退的航班号,此函数再调用intdelete_passenger(passengerList *&PLi&,结ghtnode *&h,char *name,char *ID_num,char*flight_num)函数,用客户结点指针*pr等于已存在客户链表结点Plist的头指针,7目当于将*pr指向客户链表的头结点,用客户结点指针*p指向pr的下一个结点。使用while循环寻 找匹配姓名、证件号、航班号的客户结点,找到后定义航班指针*f=h-next,使用for循环找到匹配航班号的航班结点,执行f-left=f-left+p-

12、ticket_num,修改退票后相应航班结点返回“ 0”接上页:的空座数,之后执行pr-n ext=p- next;free(p);删除要退票的客户订单信息。如果没有找到匹配的客户结点,输出提示信息。输入姓名、证件号、航班号,分别存于 name、ID num、flight num查询航班模块在主函数中输入“4”,调用void flight_check(flightnode *h)函数选择使用哪一种查询方式 进行查询。提示客户输入查询方式,如客户输入“1”,则调用int flight_num_check(flightnode *l,char*flight_num)函数按航班号对航班进行查询,提示

13、客户输入航班号,存于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循环匹配flig

14、ht_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循环输出所有航 班信息。开始 J请客户选择查询方式,存于 a 中根据 a 的值进行选择a=1a=3a=2调用flight_

15、num_check函数进行查询调用check_all_flight函数进行查询调用place_chec k函数进行查询flight_num_check函数的流程图:查询订单模块在主函数中输入 “5”,调用void passenger_check(passengerList *PLis函数选择使用哪一种 查询方式进行查询。提示客户输入查询方式,如客户输入“1” ,则调用intID_name_check(passengerList*PList,char *name,char *ID_num)函数按客户的姓名和证件号 对订单进行查询,提示客户输入姓名和证件号,分别存于name和ID_num中;如客户

16、输入 “2” ,则调用int order_num_check(passengerList *PList,int order_num函数按订单号对订 单进行查询, 提示客户输入订单号, 存于order_num中; 如客户输入“3”, 则调用void check_all_passenger(passe ngerList *PLis函数浏览全部订单信息。在int ID_name_check(passengerList *PList,char *name,char *ID_num函数中,定义客户指针*p=PList-head-next,使用for循环寻找匹配name和ID_num的结点,找到匹配的订单

17、节 点后,输出该订单的所有信息。在int order_ nu m_check(passe ngerList *PList, int order_ num)函数中,定义客户指针*p=PList-head-next,使用for循环寻找匹配order_num的结点,找到匹配的订单结点后, 输出该订单的所有信息。在void check_all_passe nger(passe ngerList *PList)函 数中,定义客 户指针*p=PList-head-next,使用for循环输出所有订单信息。修改航班模块在主函数中输入“6”,调用void modify_flight(flightnode *&

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

19、node *&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),删 除对该航班订票的订单信息。如果没有找到匹配的航班结点,输出提示信息。合法数据的测试(1)编译链接后显示菜单*飞机订票系*?单 *请选擇服务;(2)输入菜单号1”

20、,开始航班信息的录入请输入你要増加的航班号=ZZBJ情输人出炭地江HEHCHCHJ情输入目的:BEIJINC请输A起飞肝间=14 = 00 ItlSi AM达时l-TH-&A =1情输入你要増协的航班号:ZZBJ02请输A岀发地:ZHENGZHOU艷入旦的fi =BEIJIMG请输A起飞肝间:i5:00请输A抚达时间=1V!08请输入黑价仏盹丄 情揄入护b:0-?诸输入剩余座位数胡色请斑入皐春满仓裘不沿有満仓M臾满仓=0壇加殉班ZZBJ02成珈嗟否继续录入航班信息“表示继绩录人涸表云停止录入iWiA =0(3)输入菜单号2”,进入订票模块请输入信息匸谙输入起飞城市:ZHENGZHOU谙

21、揃人枉达城市叮EIHNG航班号起飞城市抿达城市 起飞时间抵达时间价格 折扣杲否溝仓空座的ZZBJZHENGZHOUBEIJING14:00L6:0B700,000.7Q30*BJ02ZHENGZHOUBEIJING1S:0Q17:00&Q9.000.70Q20航班号:22BJ姓:ZHAOKINVUAN证件号 =123456订票数哥1你脸付金額4温的 恭喜鏗.订票成功?请输八你的姓名=EHAOXINVUAH谙愉入你的证件号=12356顾EHftOXINYU AN, 123456退票成功1234-560-息亜=F入录订退杏一查修退干票班单线出(4)输入菜单号“3” ,进入退票模块(5)输入

22、菜单号“4”,查询航班信息请选棒航班脊询方式:1恚示拎航ste号进行查询;z羔示按起飞祇达城市进行查询;2表示浏罠全部航班信息- 请选择输入:a.输入菜单号“1”,按航班号查询航班信息航班話ZZBJ抚达时间16:00价格700.00折扣0.70杲否满仓0空胡30起飞城不ZHENGZHOUift达城韦BEIJING起飞时间14:00b.输入菜单号“2” ,按起飞抵达城市查询航班信息j応班号诸选怪输入诸输入超 谙输人乘达;起飞城市抵达城i:2ZHENGZHOUSzBEUrNG市起飞时间抵达时间价格折扣杲否满仓ZZ:BJ02ZMENGZMOUBEJJIWr15 :W17: M30.70620ZZBJ

23、ZHENGZHOUBEIJ IN*J14:0016 = 700.000-70030c.输入菜单号“3” ,浏览全部航班信息鈕归号起飞城市请选廳語起飞时间抵达时间价格折扣杲否漏仓主座数SZLZSHENZHENLANZHOIJ17 = 00333.008.800?0SHZZSHANGHAIZHENGZHOU14:00L7:9B222.000.8Q080BJHKBEIJINGHONGKONG1&:0020:0B10B0.000.80020ZZBJ02ZHENGZHOUBEIJING15;0017=UQB.B00.70G2DZZBJZHENGZHOUBEIJING14:0016 = M9700

24、.000.70030(6)输入菜单号“5”,查询订单信息i青选择订单查询方式=L裘示按容户姓名和证件号进行查询;2裘示按订单号进行查询;3裘示査看全部订单宿息-a.输入菜单号“1”,按客户姓名和证件号查询订单信息订单号2请选挥输人=1航班号SHZZ厂粟数员1姓名JIN证件号123b.输入菜单号“ 2”,按订单号查询订单信息谙选怪输入=2iWiA订卑号泊航10号订单号姓塔证件号订票数量3KATE1234SZLZ1C.输入菜单号“ 3”,浏览全部订单信息请选怪输人泊订单号姓名证杵号H询壬号订票数量1ZHftOKIHYUflH123456ZZBJ12JIM123SHZZ13KATE1234SZLZ1

25、(7)输入菜单号“6”,进入航班修改模块X XX XX XX WK XXX舟兀纟哲倍H 條-己|;:F XX昇HWSXXXKX:昇*n*删除翫班-2wu u u u uu修改航王妊时间一3VUWUlLVU-UUUUUFUUUUCJfUUUUUU*uVJmuuI_Ji_rii1选择:a.输入菜单号“1”,增加航班谙选择订 请输斤你要毎协的航班吕=SZTJ请输入出发地=ZHENGZHOU请输入目的地:TIftNJIN请輸入起飞日君可汁汨0请输入抵达时国=11=00请输A票价活翻 请jnAftrffl50-8谙输入亦嚓座位数:理_ 谙输入晶否满仓t除示卷有滿仓丄以漏仓=0壇加航班眈帖成功,杲否继绩录

26、入航班息表示继绩录入渦耒示停止录入2 itfflA:0b.输入菜单号“2”,删除航班请选怪注请输入你蓼删除的航班号临灯 卅|除EZTJ航;班成功!c.输入菜单号“3”,修改航班时间请选偉汩谙输入参修改的航班的航班号詔H朗肌班号起飞城韦抵蔻城韦起飞亦1抵达时间价格 折扣杲否満仓空座数EMZZ SHANGHAI ZHENGZHOU 9:B011:09222.000.80079谙输人修改后的起飞时间:12=00请输入修讀后的姙达001:14:00航班SH翻时间修改成功(8)输入菜单号“0”,退出本系统再恥Press any hey to cont inue非法数据的测试(1)在主菜单中输入错误号码后

27、,系统自动跳转到主菜单,继续让用户输入请选择月艮务:(2)选择订票服务后,输入了没有开通航班的城市请输人信息:请输人起飞S = ZHEHGZHOU请输入抵达城市=SHENVANG肮班号 起飞城帀城达城市起飞时间 抵达时间 价椅 折扣 杲否满仓 空座数抱歉段有从ZMENGZMOUa SHENVANG的航班信息!(3)选择订票服务后,输入了系统中没有的航班号请轴1入倡息:谙输风起飞城帀=ZHENGZHOU谙输入抿达城市注EING駅班号起飞城韦抵达城市起飞时间抿达时间价格折扣杲否満仓空座数ZHENGZHOU BEIJING 15-0017:00600.000.70&20ZEBJZHENGZH

28、CU BEIJING 14:06700-000.70829航班号SZZBM3对不起.您输入的航班不存在f(4)选择退票服务后,输入了没有订票的客户姓名和证件号晴输入你的姓名油HDY青输入你的证件号皿1芜此顾客无法退票?(5)选择航班查询服务后,输入了没有开通航班的城市请选择諭入=2请输人私飞竝审=ZHENGZHOU请蠕人抵达遥扁呦- 航班号起飞城市抵达城市 起飞时间抵达时间倚格 折扣是否潢仓空座数抱歉*没有从ZHENGZHOU至IUUHM的航班信息?(6)选择航班查询服务后,输入了系统中不存在的航班号请选择输人注请输久航班号血刚胱班起飞城市 柚达城市 起飞时冋柢达时间价格 折扣是否满仓空座数

29、抱歉”没有航班号为ZZUH的航班信息?(7)选择订单查询服务后,输入了没有订票的客户姓名和证件号请选择输入注 诰箱入客户姓名沖HDY请输人证件号1234560fcrM-单纭出E亠_吕丄JL.丁、一肛仆11g询询录订退sf.订单号姓名证件号航班号订票数肯抱歉沿有ftHDvan的订单信前(8)选择订单查询服务后,输入了系统中不存在的订单号清选择输人:2请输入订li号:4订单号姓名证件号航班号订票数貫抱歉,没有订单号为的订单信息?(9)选择删除航班服务后,输入了系统中不存在的航班号请选择沙请输人祢要删隧的航班号吨豳 无几班*无法血碟*(10)选择修改航班时间服务后,输入了系统中不存在的航班号请选怪二

30、? 谙埼人要修改的航班的航班号:屹亞航班吕起飞城市抵达城市起飞时间牴达时间枷格 折扣杲否満仓空座数抱就没有航班号为覺ZZ的航班信卽5.用户使用说明运行环境Windows xp;Microsoft Visual C+主要功能飞机订票系统系统功能模块如下:主要功能包括录入航班信息、客户订票、客户退票、查询航班信息、查询订单信息、修改 航班信息六个模块;其中查询航班信息模块包括按航班号查询、按起飞抵达城市查询和浏 览全部航班信息;其中查询订单信息模块包括按订单号查询、按客户姓名和证件号查询以 及浏览全部订单信息;其中修改航班信息模块包括添加航班信息、删除航班信息和修改航 班起飞抵达时间。操作注意事项

31、用户在使用飞机订票系统之前,应注意以下事项:用户在输入数据时,飞机航班号、起飞抵达城市、起飞抵达时间、客户姓名、证件号等为 字符串形式;空座数、订票数量、航班是否满仓等为整型(int);票价、票价折扣等为浮 点型(float);其他形式的输入,请按输入提示进行操作,以免引起不必要的故障。业务流程输入相应的选择信息,便可进入相应的模块中。(1)输入“1”,进入【录入航班信息】模块,输入航班的相关信息,完成航班信息的录 入。(2)输入“2”,进入【客户订票】模块,输入客户的信息、要订的票数和要订的航班号, 完成客户的订票操作。(3)输入“3”,进入【客户退票】模块,输入客户的信息、要退的航班号,完

32、成客户的 退票操作。(4)输入“4”,进入【查询航班信息】模块,可以浏览或查询航班的相关信息。(5)输入“5”,进入【查询订单信息】模块,可以浏览或查询订单的相关信息。(6)输入“6”,进入【修改航班信息】模块,可以添加航班信息、删除航班信息和修改 航班的起飞抵达时间。6. 总结经过这两周的数据结构课程设计,我收获很大,在实现系统功能的过程中,也遇到很多问 题,分工协作,设计修改,编写调试,每一步都渗透着沟通和分析,每一次沟通之后,都 会对系统功能有更深层次的理解和阐述,这也促使我们一步步完成了整个系统,并使之可 以运行。两周的时间太短暂了,我们无法把全部学到的知识运用到具体的系统实现中,深

33、深感受到数据结构这门课程的重要性,以及它在实际应用中的广泛性。本系统由于种种原 因仍然存在需要改进,需要完善的地方,我对于这个系统的认识和对数据结构这门课程的 理解已经更加深入了。在今后的学习和工作中,会更加深入地把知识和思想体会更广泛地 应用到其他相关领域。本系统在人性化的方面做得还不够,对于另类的输入错误,还不能很好地应对,这也体现 出本系统不够健壮,会在今后的学习中加以改进和完善;在功能模块方面还可以增加更多 相关模块,是系统更加完善。在实现系统的过程中,我感受到自己的知识的薄弱零散,经过这次做系统,我觉得自己的 知识得到巩固和整合, 知识体系更加系统化。 我也深深体会到实践检验真理,

34、只有实践中, 才能出真知。我懂得了学习不只是纸上谈兵,更重要的是实践,就比如平常我们在学习中 经常会遇到一些问题,看似无关紧要跳过去,不求甚解,在得知答案的时候,总是感觉心 领神会,久而久之,对于的知识点就模棱两可,形成知识漏洞。但这次课程设计所要编写 的程序很长,涉及的知识点也很多,选择此题目的时候我心里面还底气十足,自认为没什 么问题,对于程序的步骤仿佛了然于胸,但在实际操作中才发现并非如此,在编写程序的 过程中,我不断地查阅相关资料进行学习,积极地思考该怎样实现系统的每一个功能。通过这次数据结构的课程设计, 我巩固和加深对数据结构基本知识的理解, 锻炼了综合运 用课本知识的能力,自己也真

35、正地完整而系统地设计并编写了一个程序,使得自己的编程 能力大为提高。通过对我所选择飞机订票系统的设计和编写,我初步掌握简单软件的分析 方法和设计方法,更深的领悟了“纸上得来终觉浅,觉知此事要躬行”的重要意义,第一 次体会到了数据结构编程知识在实际生活中的重要性和应用的广泛性。参考文献1谭浩强C程序设计(第四版)北京:清华大学出版社,20062李春葆 数据结构教程 (第二版) 北京:清华大学出版社,2007附录:程序源代码#include #include #include #include typedef struct flightnodechar flight_num10; n); prin

36、tf(tt请输入:); scanf(%d,&mark);int flight_num_check(flightnode *h,char *flight_num)ntt请选择输入:); a=getch();printf(%cn,a);if(a=1)printf(tt请输入航班号:); scanf(%s,flight_num); flight_num_check(p,flight_num);else if(a=2)printf(tt请输入起飞城市:); scanf(%s,start_place); printf(tt请输入抵达城市:);scanf(%s,end_place); place_

37、check(p,start_place,end_place);else if(a=3) check_all_flight(p);elsereturn;int ID_name_check(passengerList *PList,char *name,char *ID_num)passengernode *p=PList-head-next; int mark=0;printf(%-8s%-20s%-20s%-10s%-8s%n订单号,姓名,证件号,航班号,订票数量);for(;p!=NULL;p=p-next)if(strcmp(p-ID_num,ID_num)=0&strcmp(p-

38、name,name)=0)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-ID_num,p-flight_num,p-ticket_num);mark=1;if(mark=0)printf(tt抱歉,没有s,%S勺订单信息!n,name,ID_num);return 0;return 1;int order_num_check(passengerList *PList,int order_num)passengernode *p=PList-head-next;printf(%-8s%-20s%-20s%-10s%-8s%n订单号,姓

39、名,证件号,航班号,订票数量); for(;p!=NULL;p=p-next)if(p-order_num=order_num)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-ID_num,p-flight_num,p-ticket_num);return 1;printf(tt抱歉,没有订单号为%d的订单信息!n,order_num);return 0;void check_all_passenger(passengerList *PList)passengernode *p=PList-head-next;int m=0;prin

40、tf(%-8s%-20s%-20s%-10s%-8s%n订单号,姓名,证件号,航班号,订票数量); for(;p!=NULL;p=p-next)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-ID_num,p-flight_num,p-ticket_num);m=1;if(m=0)printf(tt订单信息为空!n);void passenger_check(passengerList *PList)char name20,ID_num15;int order_num;char a;printf(tt请选择订单查询方式:n);prin

41、tf(tt1表示按客户姓名和证件号进行查询;n); printf(tt2表示按订单号进行查询;n);printf(tt3表示查看全部订单信息.ntt请选择输入:); a=getch();printf(%cn,a);if(a=1)printf(tt请输入客户姓名:); scanf(%s,name); printf(tt请输入证件号:);scanf(%s,ID_num); ID_name_check(PList,name,ID_num);else if(a=2)printf(tt请输入订单号:); scanf(%d,&order_num); order_num_check(PList,or

42、der_num);else if(a=3) check_all_passenger(PList);else return;void modify_flight(flightnode *&h,passengerList *&PList)flightnode *p=h-next;char flight_num10,start_time10,end_time10;char a;printf(tt*航线信息修改*n);printf(tt*n);printf(tt*printf(tt*printf(tt*增加航班 -1删除航班 -2修改航班时间-3*n);*n);*n);printf(t

43、t*n);printf(tt请选择:);a=getch();printf(%cn,a);if(a=1)add_flight(h);else if(a=2)delete_flight(h,PList);else if(a=3)printf(tt请输入要修改的航班的航班号:);scanf(%s,flight_num);if(flight_num_check(p,flight_num)=1)printf(tt请输入修改后的起飞时间:); scanf(%s,start_time);printf(tt请输入修改后的抵达时间:);scanf(%s,end_time);for(;p!=NULL;p=p-next)if(strcmp(flight_num,p-flight_num)=0)strcpy(p-start_time,start_time);strcpy(p-end_time,end_time);printf(tt航班s时间修改成功!n,flight_num);elsereturn;int book(flightnode *&h,passengerList *&PList)char name20;n,p-price*p-price_discount* ticket_num);getch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论