机票票务管理系统文档格式.docx

上传人:b****6 文档编号:19298953 上传时间:2023-01-05 格式:DOCX 页数:19 大小:18.24KB
下载 相关 举报
机票票务管理系统文档格式.docx_第1页
第1页 / 共19页
机票票务管理系统文档格式.docx_第2页
第2页 / 共19页
机票票务管理系统文档格式.docx_第3页
第3页 / 共19页
机票票务管理系统文档格式.docx_第4页
第4页 / 共19页
机票票务管理系统文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

机票票务管理系统文档格式.docx

《机票票务管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《机票票务管理系统文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

机票票务管理系统文档格式.docx

}lineinfo;

structairline*start;

voidPassword();

voidMenu();

voidmain()/*主函数*/

printf("

请输入用户名和密码后进入程序:

\n"

);

Menu();

Password();

//调用密码函数

}

#defineID12030318

#definePW12030318

externvoidMenu();

voidPassword()//密码函数

intid,pw;

/*定义用户输入的用户名和密码,应该是数字*/

intx=1;

/*输入次数*/

inty=3;

/*可输入次数*/

请输入用户名:

"

/*提示*/

scanf("

%d"

&

id);

/*用户输入用户名*/

while(x<

=3)/*利用循环多次输入*/

请输入密码:

pw);

/*用户输入密码*/

x++;

/*计数*/

if(x>

4)

密码输入错误!

按任意键退出\n"

return;

}/*如果输入三次错误循环停止*/

if(id==ID&

&

pw==PW)/*比较密码*/

输入正确!

/*提示*/

/*引用主菜单*/

/*如果用户名和密码相匹配,那么进入主菜单*/

else

y=y-1;

错误!

请重新输入!

\n还可重新输入%d次!

y);

voidInput();

/*录入信息函数*/

voidSearch();

/*查询信息函数*/ 

voidBook();

/*订票管理函数*/ 

voidReturn();

/*退票管理函数

voidMenu()/*菜单函数*/

intSEL;

intx;

charm;

while

(1)

system("

cls"

/*清屏*/

**********欢迎进入机票票务管理系统**********\n"

请输入您所需要的功能:

*\n"

录入航班信息 

请按1 

查询航班信息 

请按2 

订票 

管理 

请按3 

退票 

请按4 

退 

出 

请按5 

*******本程序部分功能尚不完善,请谅解*******\n"

请选择:

"

SEL);

switch(SEL)

case1:

********************************************\n"

◆◆◆录入航班信息◆◆◆\n"

Input();

是否继续进行(yorn):

%s"

m);

if(m=='

y'

||m=='

Y'

返回主菜单,请按0\n"

x);

if(x==0)

break;

case2:

◆◆◆查询航班信息◆◆◆\n"

Search();

case3:

◆◆◆订票 

管理◆◆◆\n"

Book();

case4:

◆◆◆退票 

Return();

case5:

\n谢谢使用,再见!

按任意键退出程序……\n"

exit(0);

default:

输入错误!

请重新输入:

printf("

voidSave(intm) 

/*保存函数*/

inti;

FILE*fp;

if((fp=fopen("

airline_list"

"

wb"

))==NULL) 

/*创建文件并判断是否能打开*/

printf("

无法打开文件!

for(i=0;

i<

m;

i++)/*将内存中职工的信息输出到磁盘文件中去*/

if(fwrite(&

lineinfo,sizeof(structairline),1,fp)!

=1)

文件写入错误!

fclose(fp);

intLoad()/*导入函数*/

inti=0;

airliner_list"

rb"

))==NULL)

do

fread(&

lineinfo,sizeof(structairline),1,fp);

i++;

while(feof(fp)==0);

return(i-1);

voidSave();

voidDisplay();

voidInput() 

/*录入函数*/

/*终点站名*/

inti,m;

\n请输入录入航班信息数:

for(i=0;

i++)

\n请输入职工信息:

第%d航线的终点站名:

i+1);

ter_name);

strcpy(lineinfo.ter_name,ter_name);

第%d航线的航班号:

air_num);

strcpy(lineinfo.air_num,air_num);

第%d航线的飞机号:

plane_num);

strcpy(lineinfo.plane_num,plane_num);

第%d航线的飞行周日:

day);

strcpy(lineinfo.day,day);

第%d航线的乘员定额:

tkt_amt);

lineinfo.tkt_amt=tkt_amt;

第%d航线的余票量:

tkt_sur);

lineinfo.tkt_sur=tkt_sur;

Save(m);

/*调用录入函数*/

list();

voidSearch_num();

voidSearch_name();

voidSearch()/*查询函数*/

intt,flag;

\n按航班号查询请按1;

按终点站名查询请按2;

返回主菜单请按3\n"

t);

if(t>

=1&

t<

=3)

flag=1;

您输入有误,请重新选择!

while(flag==0);

while(flag==1)

switch(t)

按航班号查询\n"

Search_num();

按终点站名查询\n"

Search_name();

voidSearch_num()

/*根据客户提出的航班号输出航线信息*/

structairline*info,*find();

charnum[10];

intm=Load();

info=start;

请输入终点站名:

num);

while(i<

m)

if(!

strcmp(num,info->

air_num))

info++;

if(i>

=m)

对不起,该航线未找到!

终点站名\t航班号\t飞机号\t飞行周日\t乘员定额\t余票量\n"

Display(info);

voidSearch_name()

/*根据客户提出的终点站名输出航线信息*/

name);

strcmp(name,info->

ter_name))

structairline*find()

/*根据系统提出的航班号查询并以指针形式返回*/

structairline*info;

charnumber[10];

请输入航班号:

number);

MAXSIZE){

strcmp(number,info->

air_num))returninfo;

对不起,该航线末找到!

returnNULL;

voidprtlink()

/*打印订票乘员名单域的客户名单信息*/

linklist*p;

info=find();

p=info->

order;

if(p!

=NULL)

客户姓名 

订票数额 

舱位等级\n"

while(p)

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

p->

name,p->

ord_amt,p->

grade);

p=p->

next;

该航线没有客户信息!

!

linklist*insertlink(linklist*head,intamount,charname[],intgrade)

/*增加订票乘员名单域的客户信息*/

linklist*p1,*new;

p1=head;

new=(linklist*)malloc(sizeof(linklist));

new)

\nOutofmemory!

strcpy(new->

name,name);

new->

ord_amt=amount;

grade=grade;

next=NULL;

if(head==NULL)/*若原无订票客户信息*/

head=new;

next=p1;

returnhead;

linkqueueappendqueue(linkqueueq,charname[],intamount)

/*增加排队等候的客户名单域*/

qptrnew;

new=(qptr)malloc(sizeof(qnode));

req_amt=amount;

if(q.front==NULL)/*若原排队等候客户名单域为空*/

q.front=new;

q.rear->

next=new;

q.rear=new;

returnq;

voidBook()

/*办理订票业务*/

intamount,grade;

(info=find()))

/*根据客户提供的航班号进行查询,如为空,退出该模块*/

请输入你订票所需要的数量:

amount);

if(amount>

info->

tkt_amt)/*若客户订票额超过乘员定票总额,退出*/

\n对不起,您输入的票的数量已经超过乘员定额!

if(amount<

=info->

tkt_sur)/*若客户订票额末超过余票量,订票成功并等记信息*/

请输入您的姓名(订票客户):

请输入%s票的舱位等级:

order=insertlink(info->

order,amount,name,grade);

/*在订票乘员名单域中添加客户信息*/

amount;

i++)/*依次输出该订票客户的座位号*/

%s的座位号是:

%d\n"

name,info->

tkt_amt-info->

tkt_sur+i+1);

tkt_sur-=amount;

/*该航线的余票量应减掉该客户的订票量*/

\n祝您旅途愉快!

else 

/*若满员或余票额少于订票额,询问客户是否需要进行排队等候*/

charr;

\n已经没有更多的票,您需要排队等候吗?

(Y/N)"

r=getchar();

%c"

r);

if(r=='

||r=='

\n请输入您的姓名(排队订票客户):

info->

wait=appendqueue(info->

wait,name,amount);

/*在排队等候乘员名单域中添加客户信息*/

\n注册成功!

elseprintf("

\n欢迎您下次再次订购!

}

voidReturn()

/*退票模块*/

qnode*t,*back,*f,*r;

linklist*p1,*p2,*head;

charcusname[10];

/*调用查询函数,根据客户提供的航线进行搜索*/

head=info->

请输入你的姓名(退票客户):

cusname);

while(p1!

{/*根据客户提供的姓名到订票客户名单域进行查询*/

strcmp(cusname,p1->

name))

p2=p1;

p1=p1->

if(p1==NULL)

对不起,你没有订过票!

}/*若未找到,退出本模块*/

{/*若信息查询成功,删除订票客户名单域中的信息*/

if(p1==head)

head=p1->

p2->

next=p1->

tkt_sur+=p1->

ord_amt;

grade=p1->

grade;

%s成功退票!

p1->

name);

free(p1);

order=head;

/*重新将航线名单域指向订票单链表的头指针*/

f=(info->

wait).front;

/*f指向排队等候名单队列的头结点*/

r=(info->

wait).rear;

/*r指向排队等候名单队列的尾结点*/

t=f;

/*t为当前满点条件的排队候补名单域*/

while(t)

if(info->

tkt_sur>

wait.front->

req_amt){/*若满足条件者为头结点*/

wait.front=t->

%s订票成功!

t->

t->

req_amt;

i++)/*输出座位号*/

name,(info->

tkt_sur)-i);

tkt_sur-=t->

order,t->

req_amt,t->

name,grade);

/*插入到订票客户名单链表中*/

free(t);

back=t;

t=t->

if((info->

tkt_sur)>

=(t->

req_amt)&

t!

=NULL)/*若满足条件者不为头结点*/

back->

next=t->

<

%s>

'

sseatnumberis:

if(f==r)

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1