航空售票系统代码文档格式.docx

上传人:b****3 文档编号:6447282 上传时间:2023-05-06 格式:DOCX 页数:18 大小:31.30KB
下载 相关 举报
航空售票系统代码文档格式.docx_第1页
第1页 / 共18页
航空售票系统代码文档格式.docx_第2页
第2页 / 共18页
航空售票系统代码文档格式.docx_第3页
第3页 / 共18页
航空售票系统代码文档格式.docx_第4页
第4页 / 共18页
航空售票系统代码文档格式.docx_第5页
第5页 / 共18页
航空售票系统代码文档格式.docx_第6页
第6页 / 共18页
航空售票系统代码文档格式.docx_第7页
第7页 / 共18页
航空售票系统代码文档格式.docx_第8页
第8页 / 共18页
航空售票系统代码文档格式.docx_第9页
第9页 / 共18页
航空售票系统代码文档格式.docx_第10页
第10页 / 共18页
航空售票系统代码文档格式.docx_第11页
第11页 / 共18页
航空售票系统代码文档格式.docx_第12页
第12页 / 共18页
航空售票系统代码文档格式.docx_第13页
第13页 / 共18页
航空售票系统代码文档格式.docx_第14页
第14页 / 共18页
航空售票系统代码文档格式.docx_第15页
第15页 / 共18页
航空售票系统代码文档格式.docx_第16页
第16页 / 共18页
航空售票系统代码文档格式.docx_第17页
第17页 / 共18页
航空售票系统代码文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

航空售票系统代码文档格式.docx

《航空售票系统代码文档格式.docx》由会员分享,可在线阅读,更多相关《航空售票系统代码文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

航空售票系统代码文档格式.docx

#defineINFEASIBLE-1

#defineOVERFLOW-2

#defineMAXSIZE2

#defineMAXCHAR20

typedefintStatus;

typedefstructClientNode{//已订票客户结点

charname[20];

charID[20];

//客户的身份证号

intbooknum;

intgrade;

ClientNode*next;

}ClientNode;

typedefstruct{//已订票客户单链表(按ID有序)

ClientNode*client;

intlength;

}ClientLink;

typedefstructWClientNode{//侍订票客户结点

charphoneno[15];

intneednum;

WClientNode*next;

}WClientNode;

typedefstruct{//侍订票客户链队列

WClientNode*front;

WClientNode*rear;

}WClientQueue;

typedefstructflightnode{//航班结点

char*airline;

intnumber;

char*flight_no;

intweekday;

inttotal;

intremain;

flightnode*next;

ClientLinkclient;

WClientQueuenclient;

}flightnode;

typedefstruct{//航班顺序线性表

flightnode*flight;

}SqFlight;

StatusInitList_Sq(SqFlight&

LF){

//构造一个空的线性表LF

LF.flight=(flightnode*)malloc(sizeof(flightnode));

if(!

LF.flight)exit(ERROR);

LF.length=0;

LF.flight->

next=NULL;

return(OK);

}//InitList_Sq

StatusInitList_CL(ClientLink&

CL){//为客户链表建一个空链表

CL.client=(ClientNode*)malloc(sizeof(ClientNode));

CL.client)exit(ERROR);

CL.length=0;

CL.client->

}//InitList_CL

StatusInitList_WCQ(WClientQueue&

WCQ){//为待票客户建一个空的队列

WCQ.front=WCQ.rear=(WClientNode*)malloc(sizeof(WClientNode));

WCQ.front)exit(ERROR);

WCQ.front->

}//InitList_WCQ

StatusInitFlightNode(SqFlight&

LF){//对航线结点赋值并接到航班顺序表

flightnode*p,*q;

ClientLinkCL1;

InitList_CL(CL1);

WClientQueueWCQ1;

InitList_WCQ(WCQ1);

LF.flight){printf("

无法找到指向航线结点的指针\n"

);

exit(ERROR);

}

airline="

fuzhou--beijing"

;

//头结点赋值

client=CL1;

flight_no="

FU127"

nclient=WCQ1;

number=8427;

remain=200;

total=200;

weekday=1;

p=(flightnode*)malloc(sizeof(flightnode));

p){printf("

申请不到航线结点\n"

}

next=p;

ClientLinkCL2;

InitList_CL(CL2);

WClientQueueWCQ2;

InitList_WCQ(WCQ2);

p->

//结点1赋值

client=CL2;

BU127"

nclient=WCQ2;

number=8757;

remain=180;

total=180;

weekday=5;

q=p;

p=NULL;

q->

ClientLinkCL3;

InitList_CL(CL3);

WClientQueueWCQ3;

InitList_WCQ(WCQ3);

fuzhou--shanghai"

//结点2赋值

client=CL3;

FU786"

nclient=WCQ3;

number=3216;

weekday=2;

ClientLinkCL4;

InitList_CL(CL4);

WClientQueueWCQ4;

InitList_WCQ(WCQ4);

//结点3赋值,有四个航班,共4个结点

client=CL4;

FU236"

nclient=WCQ4;

number=5712;

remain=230;

total=230;

weekday=6;

Statuslookup(char*airline,SqFlightLF){//查询系统

//形参指针airline指向查询时输入的航线的首地址

//引用航班顺序线性表LF

flightnode*p=LF.flight;

char*h,*q=airline;

inti=0;

while(p){

h=p->

airline;

while(*airline==*h){//查询航线是否与在LF的航班航线里有

if(*airline=='

\0'

||*h=='

break;

airline++,h++;

}

&

*h=='

)//若有该航线输出航线信息

{

i++;

printf("

%s%s%d%d%d%d\n"

airline,p->

flight_no,p->

number,p->

remain,p->

total,p->

weekday);

airline=q;

p=p->

next;

//航班结点指针后移

有此航班%d条\n"

i);

flightnode*search(intnumber,SqFlightLF){

//形参number查看时输入的航班号

if(number==p->

number)break;

//查看的航班号是否在LF的航班号里有

return(p);

//返回指向该航班结点的指针

ClientNode*searchID(flightnode*p,char*ID){

//p是指向某个航班结点的指针

//ID是要查询的ID

ClientNode*h=p->

client.client->

ClientNode*prior_h=NULL;

//指向这个ID客户的前驱的指针

prior_h=p->

client.client;

char*p_ID=ID;

char*h_ID=NULL;

while(h){

ID=p_ID;

h_ID=h->

ID;

while(*ID==*h_ID){//查询的ID在已订客户链表中是否有

if(*ID=='

||*h_ID=='

)break;

ID++,h_ID++;

*h_ID=='

//若有结束循环

prior_h=prior_h->

h=h->

h)prior_h=NULL;

return(prior_h);

//返回前驱指针

Statuswbook(SqFlightLF,flightnode*p){//待票客户队列

WClientNode*h=NULL;

loop:

h=(WClientNode*)malloc(sizeof(WClientNode));

if(!

h)

gotoloop;

请输入客户的名字:

\n"

scanf("

%s"

h->

name);

请输入客户的ID:

ID);

请输入客户的电话号码:

phoneno);

请输入客户需要的票数:

%d"

&

h->

neednum);

h->

nclient.rear->

next=h;

nclient.rear=h;

Statusbook(intnumber,SqFlightLF){

flightnode*p=NULL;

ClientNode*h=NULL;

p=search(number,LF);

//调用search(),返回指向这个航班号的航班结点的指针

无此航班号\n"

return(ERROR);

if(p->

remain>

=0){//余票量大于0

h=(ClientNode*)malloc(sizeof(ClientNode));

请输入客户的定票数:

booknum);

if((h->

booknum)<

=(p->

remain))

remain=p->

remain-h->

booknum;

//余票量减去客户的订票量

else{//若余票量不足,询问客户是否要候补

余票数:

%d\n"

p->

remain);

已无足够的票,您是否要候补?

1.要2.不要3.按余票定票\n"

i);

switch(i)

case1:

wbook(LF,p);

//调用候补函数,实现候补

free(h);

h=NULL;

case2:

case3:

remain!

=0)

booknum=p->

remain;

remain=0;

else{

无法按余票购票,余票已为零\n"

return(ERROR);

default:

printf("

选择有误\n"

if(i==1){printf("

候票成功\n"

return(OK);

elseif(i==2){printf("

祝您下次购票成功\n"

请输客户的姓名:

loop1:

请输入客户的舱位等级1或2或3:

grade);

if(h->

grade!

=3&

=2&

=1)

无此等级舱位\n"

gotoloop1;

购票成功\n"

next=p->

Statusask_clien(flightnode*p,SqFlightLF){

////引用航班顺序线性表LF

inti,j;

WClientNode*h=p->

nclient.front->

WClientNode*prior_h=p->

nclient.front;

h)printf("

无人候票\n"

i=0;

j=0;

=h->

neednum)

%s要不要购票?

else

余票数不够%s的需要,您要不要购票?

{i=2;

1.要2.不要\n"

客户的名字:

%s\n"

客户的ID:

客户需要的票数:

book(p->

number,LF);

prior_h->

next->

next)p->

nclient.rear=prior_h;

prior_h->

next=prior_h->

j=1;

//j=1,表示prior_h将跳过一个队列结点

谢谢您对本航班的关注\n"

if(j==0)prior_h=prior_h->

remain<

余票已被购尽!

!

Statusback_ticket(intnumber,SqFlightLF){

请输入退票客户的ID:

ID);

prior_h=searchID(p,ID);

prior_h){printf("

无此客户的ID~~~~\n"

remain+prior_h->

退票成功\n"

询问待票客户:

ask_clien(p,LF);

voidmenu()

{

 选择菜单\n"

\n"

1.查询航线2.客票预定3.办理退票4.查看客户资料5.退出\n"

StatusGetElem(SqFlightLF,intnumber)

//用e返回L中第i个数据的值,1<

=i<

=Listlength(L).

尚未有客户\n"

客户票数:

returnOK;

}//GetList;

voidmain(){

charairline[20];

intnumber=0;

intdrop_out=0;

inti;

SqFlightLF;

InitList_Sq(LF);

InitFlightNode(LF);

航线有两条,输入格式:

fuzhou--beijing\n"

fuzhou--shanghai\n"

航班号可以通过查看航线得知;

while(drop_out!

=-1)

menu();

请选择菜单:

i=5;

请输入要查询的航线:

airline);

航线\n"

起点--终点飞机号航班号总票数余票数飞行周日\n"

lookup(airline,LF);

请输入要预定的航班号:

number);

book(number,LF);

请输入要退票的航班号:

back_ticket(number,LF);

case4:

查看客户资料,输入客户的航班号\n"

GetElem(LF,number);

case5:

drop_out=-1;

}}}

第三章结论

参考文献

附录

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2