毕业设计航空售票系统c语言文档格式.docx
《毕业设计航空售票系统c语言文档格式.docx》由会员分享,可在线阅读,更多相关《毕业设计航空售票系统c语言文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
广州00345589343120
天津00436678944120
系统面向用户显示所有航线信息,为用户提供各个航班的信息,供用户参考。
(2)查询航线信息
请输入查询航班的方式:
航班号--->
1
终点站--->
2
飞行日期->
3
用户根据需要可选择三种查询方式,输入“1”,按航班号查询,系统提示输入要查询的航班号;
输入“2”,按终点站查询,系统提示输入要查询的终点站名;
输入“3”,按飞行日期查询,系统提示输入要查询的飞行日期。
(3)订票业务
请输入飞行日期1
请输入订票数量:
请输入舱位等级(1/2/3):
请输入您的名字:
订票成功,座位号为1—1
用户根据所查询的信息,选择相应的航班,系统提示输入订票数量,舱位等级以及用户姓名,最后系统自动提示“订票成功”。
(4)退票业务
请输入航班号:
退票信息:
姓名/终点站/票数
确认要退票?
()
是
(1)
否(0)
退票成功
用户在退票时,按系统提示输入航班号,用户姓名,系统则会自动显示出用户要退的票的信息,然后选择是否退票,选择“1”退票,选择“2”不退票。
(5)管理员操作界面
请输入管理员密码:
(houkaiyang)
请选择操作
查询航班订票情况
(1)
增加新航班
(2)
请输入新航班号:
管理员在进入内部管理界面时,根据提示输入密码,进入之后,选择“1”,查询航班订票情况,选择“2”,增加新航班。
第2章设计描述
2.1任务分解说明
(1)分析系统中链表的设计,用来记录航班信息。
(2)根据问题描述,设计链表;
(3)完成系统中各个信息的定义;
(4)完成系统的应用模块;
(5)功能调试;
(6)完成系统设计报告。
2.2数据结构设计说明
航空售票系统
退出系统
退票业务
查询航线信息
显示所有航线
管理系统
订票业务
本系统中“航线”只用一条单链表记录,故采用全局变量,减少参数的传递。
(1)、定义“航线”类型
ADTLairline{
数据对象:
D={ai|ai∈航线链表集,i=1,2,3……,n,n>
=0}
数据关系:
R1={<
ai-1,ai>
|ai-1,ai∈D,i=1,2,3……,n}
基本操作:
Lairlinesearch_line()//按航班号查找航班
Lairlinesearch_plant()//按飞机号查找航班
Lairlinesearch_day()//按飞行日期查找航班
Lairlinesearch_addr()//按航班终点查找航班voidguide()//主菜单界面
voidinsert_line()//插入新航班
voidprint_customer(airline*p)//显示航班客户信息
voidadmin()//进入管理员操作系统
voidbook()//订票系统
voidwaited(airline*p)//排队订票系统
voidrefund()//退票系统
voidsearch()//航班查询系统
voidInitLine()//初始化航线信息
voidprintline()//显示所有航班信息
}ADTLairline
(2)、主程序
voidmain()
{
初始化;
do{
接受命令;
处理命令(调用相应函数);
}while(“命令”!
=“退出”);
}
(3)、调用关系
函数模块
主程序模块
2.3函数接口即函数调用关系
main()
guide()
admin()
refund()
book()
search()
printline()
waited(p))
search_line()
search_addr()
search_day()
search_plant()
printcustomer()p)
)
printcustomer(p)
第3章算法描述
3.1主函数
主程序流程图,如图3—1
开始
flag=1
主菜单界面
初始化航线
gatchar
7
flag=0
6
清除屏幕
4
5
管理界面
查询航线
显示航线
flag
真
假
结束
图3—1
3.2按航班号查询函数
按航班号查询函数流程图,如图3—2
chara[5]
airline*p
P=L—>
next
输入航班号a
p
!
strcmp(a,p—>
line_num
p=p—>
图3—2
3.3按飞机号查询函数
按飞机号查询函数流程图,如图3—3
chara[8]
输入飞机号a
plant_num)
图3—3
3.4按飞行日期查询函数
按飞行日期查询函数流程图,如图3—4
inta
输入飞行日期a
a=p—>
day
图3—4
3.5按航班终点查询函数
按航班终点查询函数流程图,如图3—5
chara[20]
输入航班终点a
end_addr)
图3—53.6插入新航班函数流程图
插入新航班函数流程图,如图3—6
airline*p,*q
q=(Lairline)malloc(sizeof(airline)))
输入航班号
p=L
p—>
strcmp(p—>
next—>
line_num,
q—>
line_num)>
=0
P—>
next&
&
line_num,q—>
line_num)=0
输入飞行日期,飞机号,
终点站
航班已存在,请重新输入
图3—6
3.7显示航班客户信息函数
显示航班客户信息函数流程图,如图3—7
customer*c
book
c=p—>
booked
输入已订票客户信息
c
输入c—>
num,c—>
name
c=c—>
输出“暂时没有客户订票”
wait
假
输出排队订票客户信息
真
输出c—>
图3—7
3.8管理员操作函数
管理员操作函数流程图,如图3—8
inti,flag,tag
chara[20],airline*p
输入管理员密码
i=0
i<
strcmp(a,”houkaiyang”)
密码错误
i++
i=3
tag=1
tag
返回主界面
选择进行的操作
图3—8
3.9订票系统函数
订票系统函数流程图,如图3—9
airline*p
customer*cst,*c
输入查询航班方式
输出航班信息
cst=(customer*)malloc(sizeof(customer)))
输入订票数量,舱位等级,名字
cst—>
num<
=p—>
left
next=p—>
booked=cst
left=p—>
left—cst—>
num
订票成功,座位号为:
余票不足
没有该航班
图3—9
3.10排队订票系统函数
排队订票函数流程图,如图3—10
intflag
customer*q,*q0,*h
left>
0&
q—>
您正在排队订票,现在有票,是否订
q0=q—>
next,q—>
next=q—>
q0—>
booked,p—>
booked=q0
left—q0—>
订票成功
q=q—>
wait=h—>
图3—10
3.11退票系统函数
退票系统函数流程图,如图3—11
intflag,chara[20]
customer*c,*c1
p=search_line()
booked
输入您的姓名
booked—>
没有找到您的信息
假假
输出退票信息
strcmp(a,c—>
next—name)
booked=p—>
left+c—>
free(c)
真真
c—>
假
对不起,没有找到您的信息
图3—11
3.12航班查询函数
航班查询函数流程图,如图3—12
inti,flag=0
i
p=search_plant()
其他
操作错误,重新输入
p=search_addr()
p=search_day()
图3—12
第4章开发过程描述
4.1源代码
#include<
stdio.h>
malloc.h>
stdlib.h>
string.h>
#definePRprintf
#defineSCscanf
typedefstructcustomer{//客户信息
charname[20];
//客户姓名
intnum;
//订票量
intlevel;
//舱位等级
customer*next;
}customer,*Lcustomer;
typedefstructairline{//航线信息
charend_addr[20];
//航线终点
charline_num[5];
//航班号
charplant_num[8];
//飞机号
intday;
//飞行日期
inttotal;
//定员
intleft;
//剩余票数
customer*booked;
//已定客户信息
customer*wait;
//排队等候订票信息
airline*next;
}airline,*Lairline;
airline*L;
//将航班信息定义为全局变量,减少参数传递
Lairlinesearch_line()//按航班号查找航班
chara[5];
airline*p;
p=L->
next;
PR("
请输入航班号"
);
SC("
%s"
a);
for(;
p;
p=p->
next)
if(!
strcmp(a,p->
line_num))break;
returnp;
Lairlinesearch_plant()//按飞机号查找航班
chara[8];
请输入飞机号"
plant_num))break;
Lairlinesearch_day()//按飞行日期查找航班
inta;
请输入飞行日期"
%d"
&
a);
if(a==p->
day)break;
Lairlinesearch_addr()//按航班终点查找航班
chara[20];
请输入航班终点"
end_addr))break;
voidguide()//主菜单界面
**********************欢迎进入航空售票系统**********************\n"
\t\t显示所有航线==>
1\n"
\t\t查询航线信息==>
2\n"
\t\t订票业务==>
3\n"
\t\t退票业务==>
4\n"
\t\t管理系统==>
5\n"
\t\t退出系统==>
0\n"
**************************************************************\n"
\t\t清除屏幕信息==>
9\n\n"
请按上面指引操作:
\t"
voidinsert_line()//插入新航班
airline*p,*q;
intflag=1;
flag;
{
q=(Lairline)malloc(sizeof(airline));
PR("
"
SC("
q->
line_num);
for(p=L;
p->
if(strcmp(p->
next->
line_num,q->
=0)
break;
if(p->
strcmp(p->
line_num)==0)
{
PR("
航班已存在,请重新输入\n"
continue;
}
请输入飞行日期:
q->
day);
请输入飞机号:
plant_num);
请输入终点站:
end_addr);
q->
total=120;
left=120;
booked=NULL;
wait=NULL;
next=p->
p->
next=q;
增加航班成功,是否继续增加\n继续
(1)\n返回(0)"
flag);
}
voidprint_customer(airline*p)//显示航班客户信息
customer*c;
if(p->
booked)
c=p->
booked;
已定票客户信息\n票数\t/\t客户姓名\n"
for(;
c;
c=c->
%5d\t/\t%s\n"
c->
num,c->
name);
\n\n"
else
暂时没有客户订票\n\n"
wait)
wait;
排队订票客户信息\n票数\t/\t客户姓名\n"
暂时没有客户排队订票\n\n"
voidadmin()//进入管理员操作系统
inti,flag,tag;
(houkaiyang)"
for(i=0;
3;
i++)
if(strcmp(a,"
houkaiyang"
))
\t\t======密码错误======\n\n"
i++;
elsebreak;
if(i==3)
{guide();
return;
for(tag=1;
tag;
请选择操作\n查询航班订票情况
(1)\n增加新航班
(2)\n"
if(flag==1)
p=search_line();
if(p)
print_customer(p);
else
PR("
没有找到该航班\n"
elseif(flag==2)
insert_line();
else
操作错误,请按提示操作\n"
请选择操作\n继续
(1)\n退回主菜单(0)\n"
tag);
guide();
voidbook()//订票系统
inti;
intflag=0;
customer*cst,*c;
\n"
1\n"
2\n"
3\n"
i);
switch(i)
case1:
p=search_line();
flag=1;
break;
case2:
p=search_addr();
case3:
p=search_day();
default:
PR("
操作错误,请重新输入\n"
if(p)
终点站航班号飞机号飞行日期余票量\n"
%-20s%10s%10s%8d%8d\n"
p->
end_addr,p->
line_num,p->
plant_num,p->
day,p->
left);
cst=(customer*)malloc(sizeof(customer));
cst->
num);
请输入舱位等级(1/2/3)"
level);
请输入您的名字"