1、航空客运订票系统程序要求:1、 问题描述航空客运订票得业务活动包括:查询航线、客票预订与办理退票等。设计一个航空客运订票系统,以使上述业务可以借助计算机完成。2、 要求1) 每条航线所涉及得信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票得客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补得客户名单;2) 系统实现得功能如下:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线得情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班就是否满仓);可以输入起
2、飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件存储结构:航线得所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列得操作来实现。程序流程图: Switch(1)录入功能请按次序输入航班号,飞机号,终点站,飞行日期,乘客总数,余票数等信息查询功能通过目得地查询Switch(1)请输入要查询得目得地Switch(2)请输入要查询得航班号通过航班号查询Sw
3、itch(2)Switch(3)订票功能请输入您需要得订票数订票成功订票数余票数输入您定得票数输入您得名字退票功能Switch(4)订票数incue #clude strng、h#inclde cno、heim /3架飞机dene 5 /每架飞机5张票strct ode car name21; ha i21; int seat,plane,ate; ode next,pre;stuctait ha nm21; hri1;haphoe8; it seat,lane,da,coun; wat next,r;struct pi int seatn+;;voi menu(); void makenll
4、piao();void makenul_iforaion();od listmenu();id istiao();vi makenull_wai();oidlis_inormation();oipl_infaion(oad);void book();vi add_infratn(node *ead,itx,nt y);id add_wt(int x,nt y);voi searc_delet(int x);dwit_to_ile();void shwwat();o p(nex,node);node had1,head2,*ead,*q;wat w_had,wat_end;harc;io;voi
5、d an() makenl(); it_enu(); cuendl”chose noeraon:”; nc; i (!=) stch(c) case 0 : show_ait();break; case 1 : st_pi();ook();eak; cse 2 : searh_dle();brek; cae 3: stp();brea; cs 4 : list_infrtio();rak; cae 5 : search_delte();brk; deault : rek; whil(c!=6); cuEit System ;oid knull() makeul_p(); anu_iomn();
6、 makenull_wit();oid lt_menu() oue; cound 菜单; otndl *; cutendl 、 查瞧排队情况*; cuted” * 、订票 ; cutedl * 2 、 退票 ; cendl” * 3 、 查瞧剩余票 ”; cutendl” * 4、查瞧飞机信息 ”; coted 、 查瞧乘客信息 *; coutendl * 6、 退出 *; coted *; couten”;d makeul_iao() FILE fp; it i; i((fp=fope(”pia、d,r)) = NULL ) fp=fopen(ao、dat”,”w); or (=;inx=N
7、ULL; head-preNULL; head2eUL; epreNULL; ead3-nx=ULL; q=head1; for(=1;nx=r; re=q; r-net=ULL; qnet; fcose(f); i(i=a1、set0+1) had2-nex=q; ptNLL; qpre=h; if(i=、seat0+a2、eat0) hed3nex=q; pre-next=NUL; qp=ha3; void manull_wait() wt *emw; FILf; tep=ne at; it i; if((f=foe(”ait、tt,”r”)=ULL ) fpfopen(wai、txt,w
8、); fls(p); at_nd=ewait; wai_head=new wait; witenxt=NLL; watnr=ULL; wait_ead=i_; wthad-cunt=; p=fopen(wt、xt,r”); fread(wi_he,size(wait),1,p); r(i=1;ait_had-un;i+) frd(tepw,sizof(wait),1,fp); wit_edntemw; tep-re=i_nd; tempnxt=ULL; wit_ed=tempw; id listao() int i,j; for(i;=m1;) f(i、eat0!=) cotenl第”i 架飞
9、机剩余得票:enl; o(=1;j=;+) f (a、set=0) cout” j; coendl; ele cutndlTe” plneis ul !nend; voidlt_informion() int; ocotendx;couend;whie(x | xm); coutendl第 架飞机得信息如下 net!=NUL) q=headnex; lse qNULL; ut”飞机空,无预订票 !”dte=qpan; cout”日期:q-daed; coutnme; couendl”ID 号 :-d; =qnext;x+; if(x% 3 =0)ch=getc(); und;voi ok()
10、it i,j,; coundli; if(i1|) undl* 超出范围!*el”请重新输入:; s cutedl您要订得就是到”i”地得飞机edl; cuendl第 ”i 架飞机剩余得票 :”d; for(p=1;pn;p+) if(ai、seatp) cout” p; ot; if (1| n) coutnl* 超出范围!*nd请重新输入:; else qdate=i; coutel”您得订票日期: deedl; beak; while(1);i (ai、sej=) i、seat1; uendl; 、sa0+; if(1)add_ioratin(hea1,); if(i=2) addnor
11、maton(ead2,j); if(i=3) ad_informti(ea3,3,j); ele cotnd 对不起,该座位已被预订,您被安排到订票等候队列 *”ext=NULL; out请输入个人信息nd; ound*tewid; cout电话:;intepwhone; tempseat=; tmwpane=x; wiendext=temp; temp-pe=wait_ed; win=watendnxt; cutenl”*正在排队等候 *dl; watheadcnt+; rie_toile();void how_wat() wait tep; tempw=wai_ead-nex; if (t
12、mw=NUL) ctndl排队中没有人!dl; whle(tw!=NULL) cottempwamenext; vdadd_nforaton(ode*had,in x,int y) ode *temp; tempnew oe; empeLL; temp-ext=NULL; ot”请输入个人信息e; cotedl”*”endl; couttepame; couttmp-id; tempseat=; emp-lne=x; tm-nex=ead; temp-reead; f(head-nex!U)headet-pr=emp; he-nextemp; wrt_t_fil(); ctedl* 订票成功
13、*en;void seachlete(i ) node*,*,; i *tempw,tmpw2,*epw; it step=,t1,t2,i; char ch; p=new noe; tempw=ne wait; temw2=nw wait; tempnewwait; q=ead; coutendl”请输入个人信息”end; cot*”endl; colname; do q=q-nxt; if ( (q!=NLL) (p(q,p) otdate=qne; tLcae!dl; cut”*”; ouendl姓名:”name; coutendD号 : qid; tel”座位号 : set; ondl
14、班机号 : plne; couedl”日期 : qdatenl; if (x=) couth; if (c=Y|ch=y) t1=qplan; t=q-set; at1、seat=0; t1、et0; r=q;=qpre; -preex=rnext; i(rext!=NUL) rnxtprr-pe; dle(r); cout*记录删除成功 ! *; wr_tofile(); empw=wait_ead; o(i;iwa_head-;i+) pw=tpnxt; if(emw=UL) ek; i((tempwplane=t1) & (tempwse=2) strcp(tmpw3nam,mwme);
15、 strcpy(tempw3-phone,temp-phn); coutend等候得人中有可以订票得了:ndl; couted姓名 : tpw-na; utendlID号 : ”tepwipn=2) ad_iformaion(ead2,2,emp); if(tmpw-pa=3) addnformatio(ead3,3,temwsat); emp2=tepwpe; temwnxt=temp-next; f(temwnt=NUL) wen=epw2; els eextre=tempw2; dete(tempw); wihedcut-; ri_to_e(); coutendl”等候得”tempwna
16、m已经成功订票,已经由电话”phon”通知了”el; rak; coine; else if (q=NLL) ste+; if(step=2) qd2; if(p=3)q=had3; if(step=4) counamej) & (pnaei ! ) )+; f (pnmei = 0) retrn(fle);break; se ki; whil ( (p-e =q-naej) & (me!=0) k+;+; i (qname=0) urn(tre); els j=; +; whie( (nj!=0) & (-aei ! 0) ); return(fase);oid rite_o_fle() F
17、ILE f; in i,j; nm; node*p; wait tmpw; empw=new wait; tmpw=wat_had; fpope(a、dt,”w); or (i;i=m1;+) fre(ai,sizef(po),,f); fls(f); fp=fpen(informatn、,”); x0;x1=a1、seat0; for(=0,j=1;=m-1;j) i=i+aj、et;xjj、et0+xj-1; =1;p=had1next; for(j=1;j=;j+) i(jx1+1) p=headnext; if(j=x2+) p=heaet; f(p=NUL)break; fwrie(p,szof(noe),1,p); p-nex; fose(fp); ffope(”wait、tt,w); f(=0;j=wait_headont;+) if(tempw=NL)break; fite(tepw,sieo(wit),1,fp); pw=tmpe; fcos(fp);