民航售票管理系统课程设计CWord文件下载.docx
《民航售票管理系统课程设计CWord文件下载.docx》由会员分享,可在线阅读,更多相关《民航售票管理系统课程设计CWord文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
③在两个动态链表间,用指针连接起来。
④设计一个漂亮的欢迎界面和友好的系统界面。
⑤要求系统能够根据系统菜单相应的功能执行相应的部分。
⑥要求能够实现录入、查询等相应的功能。
流程图:
源程序部分及其界面图:
1.主函数:
主函数主要是通过调用其他函数来实现其功能的,主函数如下:
voidmain()
{
charfilename[20],filename2[20],ch;
intt,k,n;
huanying();
printf("
请输入要打开航班信息的文件名:
"
);
gets(filename);
head=insert(filename);
请输入要打开订票信息的文件名:
gets(filename2);
inse(filename2);
while
(1)
{system("
cls"
t=select();
switch(t)
{
case1:
scan();
break;
case2:
t=search2();
if(!
t)printf("
没有到达该终点的航班!
!
printf("
\n按回车键返回…"
getchar();
case3:
t=search1();
没有该时间出发的航班!
case4:
t=search();
没有该航班!
case5:
add();
case6:
t=modify();
getchar();
break;
case7:
t=del();
case8:
book();
case9:
按姓名(X)删除,还是按订票编号(d)删除?
scanf("
%c"
&
ch);
if(ch=='
x'
||ch=='
X'
)refund();
elserefun();
case10:
save(filename);
//保存航班信息
case11:
savename(filename2);
//保存退订票信息
case12:
scan2();
case13:
请输入要统计的航班号:
%d"
n);
k=tongji(n);
printf("
订%d的人数共有:
%d还剩余%d个座位"
n,k,shengyu-k);
//统计订票信息
case14:
system("
\n\n\n\n\n\n\t\t\t\t谢谢使用\n\t\t\t\t!
\n\n\n"
exit(0);
}
}
}
2.欢迎界面函数
该函数为欢迎用户使用功能的函数:
voidhuanying()
\n\n\n\t********************************************\n\n\n"
\t欢迎使用民航订票系统\n\n\n"
\t********************************************\n\n\n"
3.界面函数
界面函数主要是为用户提供一个友好的操作界面,如下所示:
intselect()
intt;
\n***********************************菜*单***********************************"
\t\t\t1.浏览信息\t2.按终点查找\n\t\t3.按起飞时间查找\t4.按航班号查找\n"
\t\t5.增添信息\t6.修改信息\n\t\t7.删除信息\t8.订票\n"
\t\t9.退票\t10.保存航班信息\n\t\t11.保存退订票信息\t12.查看订票情况\n"
\t\t13.统计订票信息\t14.退出\n"
***********************************菜*单***********************************\n"
请选择(1--8):
loop:
scanf("
t);
if(t<
=0||t>
14)
{printf("
输入不合法!
请重输…"
gotoloop;
returnt;
主界面的设计
4读取函数
读取函数主要是针对需要从文件中读入数据的需求而编写的,其功能为:
可以从一个二进制文件中读入数据,其源程序如下:
/*从文件中读入OK*/
Read*insert(charfilename[])
Read*head,*p;
structnewst;
head=(Read*)malloc(sizeof(Read));
end=head=NULL;
if((fp=fopen(filename,"
rb"
))==NULL)
returnhead;
elseif(!
feof(fp))
if(fread(&
t,sizeof(structnews),1,fp)==1)
{
p=(Read*)malloc(sizeof(Read));
//连入第一个节点
p->
number=t.number;
strcpy(p->
start,t.start);
finish,t.finish);
p->
fly.hour=t.fly.hour;
p->
fly.minute=t.fly.minute;
land.hour=t.land.hour;
land.minute=t.land.minute;
man=t.man;
amount=t.amount;
infor=t.infor;
head=end=p;
next=NULL;
while(!
{
if(fread(&
{p=(Read*)malloc(sizeof(Read));
//连入其他节点
p->
end->
next=p;
end=p;
}
}
}
fclose(fp);
returnhead;
5保存信息函数
保存信息函数主要功能是将要保存的信息保存到一个二进制文件当中,其源程序如下:
voidsave(charfilename[])
Read*p;
In*q;
wb"
不能打开%s文件!
filename);
exit
(1);
else
p=head;
while(p!
=NULL)
p->
amount=0;
q=p->
infor;
while(q!
{
amount++;
q=q->
next;
t.number=p->
number;
strcpy(t.start,p->
start);
strcpy(t.finish,p->
finish);
t.fly.hour=p->
fly.hour;
t.fly.minute=p->
fly.minute;
t.land.hour=p->
land.hour;
t.land.minute=p->
land.minute;
t.man=p->
man;
t.amount=p->
amount;
t.infor=p->
fwrite(&
t,sizeof(structnews),1,fp);
p=p->
printf("
保存文件成功,按任意键返回…"
航班信息的保存
6.添加航班信息的函数
添加航班信息函数的主要功能是实现航班信息的录入,是客户添加信息的主要途径。
将信息添加后,可通过保存函数将信息保存到文件当中,其源程序代码如下:
voidadd()
Read*t,*p=head;
t=(Read*)malloc(sizeof(Read));
\n请输入航班号:
(t->
number));
\n请输入起始站:
%s"
t->
\n请输入终点站:
\n请输入起飞时间(中间用“:
”隔开):
%d:
fly.hour),&
fly.minute));
\n请输入降落时间(中间用“:
land.hour),&
land.minute));
\n请输入载客定额:
man));
t->
infor=NULL;
if(head==NULL)/*空目录时*/
head=t;
head->
else/*在表尾添加*/
while(p->
next!
=NULL)p=p->
next=t;
输入成功!
按回车键返回…"
航班信息的增添
7.删除航班信息函数
删除航班信息函数主要功能是删除没用的航班信息,是信息维护函数之一。
删除后可通过保存函数来删除文件中的信息。
其源程序代码如下:
intdel()
intnum;
chart;
intflag=0;
Read*p=head,*p1=head;
if(p==NULL)
文件中没有信息!
请输入要删除的航班号码:
num);
if(p!
=NULL&
&
p->
number!
=num)/*找到了*/
{p=p->
if(p==NULL)gotoloop;
*航班号起点终点起飞时间降落时间载客定额*\n"
%-9d%-18s%-18s%d:
%-7d%d:
%-7d%d\n"
p->
number,p->
start,p->
finish,p->
fly.hour,p->
fly.minute,p->
land.hour,p->
land.minute,p->
man);
您确定要删除?
(Y:
是N:
否)\n"
/*确认删除*/
getchar();
if(t=='
y'
||t=='
Y'
)
{
if(p==head)
head=head->
else
while(p1->
=p)
p1=p1->
p1->
next=p->
已成功删除!
elseprintf("
成功取消!
flag=1;
returnflag;
删除航班信息
8.修改航班信息函数
修改航班信息函数的主要功能是修改已经录入或已保存在文件中的航班信息,是维护航班信息函数之一。
intmodify()
Read*p=head;
intn,flag=0;
文件错误!
请输入需要修改的航班号:
if(p->
number==n)
%d%s%s%d:
%d%d:
%d%d"
(p->
number),p->
finish,&
fly.minute),&
land.minute),&
修改成功!
flag=1;
p=p->
9.实现查找功能的函数
该类函数主要有:
按终点地址查找的函数,按起飞时间查找的函数、按航班号查找的函数。
只举一例说明:
intsearch2()
charfinish[N];
请输入终点地址:
finish);
if(strcmp(finish,p->
finish)==0)
{printf("
flag=1;
}
按终点站查询航班
10.订票函数
订票函数的主要功能是让客户可以搜索航班信息后,按航班号订票的函数。
voidbook()
intnum,flag=0,k,j;
In*t,*q;
t=(In*)malloc(sizeof(In));
请输入你要订的航班号:
=NULL)//查找航班号
if(p->
number==num)
{flag=1;
q=p->
flag)
k=tongji(num);
{q=q->
请输入你要订的票数:
scanf("
t->
if(k>
=p->
man)
对不起,票已售完…"
{
您要订的航班信息为:
\n"
请输入你的姓名:
name);
if(q==NULL)
{p->
infor=q=t;
q->
bh=1;
您的订票编号为:
%d\n"
q->
bh);
恭喜您,订票成功!
while
(1)
if(q->
next==NULL)
{q->
j=q->
bh+1;
q=q->
q->
bh=j;
printf("
j);
恭喜,订票成功!
break;
elseq=q->
订票界面
11.退票函数
退票函数主要功能是让已订票,但由于某种原因而退票的客户使用的功能,其源程序代码如下:
voidrefund()//退票模块
charch,name[20];
intnumber;
In*q,*q1;
请输入要退票的航班号:
number);
=NULL)//查找所定的航班号
number==number)//找到了
{printf("
您要退的航班信息为:
break;
elsep=p->
if(q==NULL)printf("
记错了吧!
没有人订此航班…"
你确定要退票(Y是N否)?
if(ch=='
pr