基于c语言的飞机订票系统Word文件下载.docx
- 文档编号:6525245
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:27
- 大小:180.02KB
基于c语言的飞机订票系统Word文件下载.docx
《基于c语言的飞机订票系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于c语言的飞机订票系统Word文件下载.docx(27页珍藏版)》请在冰点文库上搜索。
空座
票价
单链表如下:
每个结点包括数据域和指针域:
数据域
指针域
C语言描述如下:
typedefstructflightnode{
charair_num[10];
/*航班号*/
charstart_time[15];
/*起飞时间*/
charend_time[15];
/*到达时间*/
charend_place[30];
/*目的地*/
inttotal;
/*限座*/
intleft;
/*空座*/
intprice;
/*票价*/
structflightnode*next;
/*指向个结点*/
}flightnode;
基本操作:
intCreatFlight(flightnode**l);
//生成航班信息链表
intInsertFlight(flightnode**p,char*air_num,char*start_time,char*end_place,inttotal,intleft,intprice);
//插入航班信息的结点
flightnode*modefy_airline(flightnode*l,char*air_num);
//修改航班信息的函数
intBookTicket(flightnode*a,char*air_num,passengernode*c,char*name,char*ID_num);
//订票函数
intCancelTicket(passengernode*c,flightnode*l,char*name,char*ID_num);
//退票函数
intSearchFlight(flightnode*head);
//查询航班信息函数
2、乘客信息类型:
为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、证件号码、航班号和座位号四个数据项:
旅客姓名
证件号码
座位号
C语言描述如下:
typedefstructpassengernode{/*定义乘客资料结点*/
charname[20];
charID_num[20];
charair_num[20];
intseat_num;
structpassengernode*next;
}passengernode;
intCreatPassenger(passengernode**l);
//生成乘客资料链表
intInsertPassenger(passengernode**p,char*name,char*ID_num,char*air_num,intseat_num);
//插入乘客资料的结点
3、主函数和其他函数的伪码算法
voidmain()//主函数
{
while()
{printf(/*主菜单界面*/)
switch(ch=getchar())
{case’1’:
BookTicket;
break;
case’2’:
CanclelTicket;
case’3’:
if(){SearchFlight;
}
elseif(){SearchPassenger;
};
case’4’:
exit;
}}}
flightnode*head_flight()
{//生成航班头结点
passengernode*head_passengernode()
{//生成乘客资料头结点
intCreatFlight(flightnode**l)//生成航班信息链表
{//初始化航班信息
InsertFlight()//插入航班信息
}//CreatFlight
intCreatPassenger(passengernode**l)//生成乘客资料链表
{//初始化乘客资料
InsertPassenger()//插入乘客资料
}//CreatPassenger
intInsertFlight()//插入航班信息新结点
{//定义指针,动态分配,复制信息流,赋值,next返回指针,循环
//航班信息链的尾插
}//InsertFlight
intInsertPassenger()//插入乘客资料新结点
//乘客信息链的尾插
}//InsertPassenger
flightnode*modefy_airline(flightnode*l,char*air_num){}//修改航班信息
intBookTicket()//订票
{…
InsertPassenger()
}//BookTicket
intCancelTicket()//退票
l=modefy_airline(l,air_num);
}//CancelTicket
intSearchFlight(flightnode*head)//查询航班
{//输出航班信息
}//SearchFlight
intSearchPassenger(passengernode*head)//查询乘客
{//输出乘客信息
}//SearchPassenger
四、调试分析
1、调试结果:
(1)系统主菜单界面:
(2)进入订票的界面:
(3)查询信息的界面:
选择1,查询航班信息的界面:
选择2,输入密码,查询乘客的信息的界面:
新增乘客,查询乘客信息:
密码错误时:
(4)进入退票的界面:
名字或者证件错误时:
2、时间复杂度分析:
本程序运行所耗费的时间主要在于循环语句,for和while语句,其时间复杂度应该为O(n)。
3、模块设计和调试时存在问题的思考:
原先在信息查询中没有乘客与管理人员的区别,乘客与管理人员都可以看到相同的信息,航班信息和乘客资料,后来,在浏览乘客资料时要求输入管理人员的密码,以确保乘客资料的安全性。
4、算法的改进设想:
本程序还存在很多缺点,不能完全的实现老师要求的各种功能,特别是在查询功能方面,此程序应该增加一些查询的方式的设计,如可以按照起飞抵达地点查询航班情况。
还有票价折扣和航班已无票,提供相关可选航班,订单须有编号的功能没有设计到。
五、用户手册
1、本程序运行环境是windows操作系统,执行文件是5.exe。
2、进行演示程序后,即显示用户界面:
3、进入“订票系统BookTicket”的命令后,即提示输入航班号、订票人姓名、ID号,结束符为“回车符”,该命令执行后输出“已成功订票”“航班号和座位号”的信息。
4、进入“退票系统CancelTicket”的命令后,即提示输入订票人姓名和ID号,结束符为“回车符”,该命令执行后输出“已成功取消”或者输入错误信息则会输出“无此顾客”的信息。
5、进入“查看信息”的命令后,即进入“查看航班信息”和“查看乘客信息”,进入“查看航班信息”则会输出所有的航班信息分别为航班号、起止时间、起止地点、票价、总座、空座。
进入“查看乘客信息”则提示输入管理员密码,输入密码之后,即会输出所有订票的乘客信息,分别为姓名、ID、航班号、座位号。
6、选择EXIT推出飞机订票系统。
六、测试结果
1、订票:
①输入:
f2009、yangyating、0841919204
输出:
SuccessfulforBookingticket.
Yourflight:
f2009
Yourseatnumber:
46
②输入:
f2005、Sujuan、0841919205
f2005
22
③输入:
f2222、sujuan、0841919107
Sorry,thereisn’ttheplane,pleasechecktheairlinenumber!
2、查询信息:
(1)查询航班信息:
Flight
Start_time
Arrival_place
Price
Total
Left_seat
f2008
08:
00-08:
30
Changsha-lasa
4000
100
23
f2009
09:
00-12:
00
Changsha-Beijing
1000
55
f2010
12:
00-13:
Changsha-deguo
7000
150
76
f2011
16:
30-19:
Changsha-Shanghai
500
25
f2012
17:
00-20:
Changsha-Sanya
900
65
40
f2013
21:
00-23:
45
Changsha-Guangdong
399
35
(2)查询乘客信息:
5566
输出:
Name
ID
Seat_number
Sujuan
0841919205
f2005
22
Donghui
0841919206
f2006
2
W73
0841919207
f2007
9
yangyating
0841919204
f2009
46
②输入:
1234
sorry,thekeyiswrong
3、退票:
A、0841919205
Successfulforcancelingticket.
yangyating、0841919204
sujuan、0841919107
Sorry,thereisn’tthecustomer!
再查看乘客信息:
输入:
七、附录
本系统源程序如下:
#include<
stdio.h>
//标准输入、输出头文件
stdlib.h>
//包含字符串函数处理头文件
string>
//定义字符串
conio.h>
#defineOK1
#defineERROR0
typedefstructflightnode{//定义航班信息结点
//航班号
//起飞时间
//到达时间
//目的地
//限座
//空座
//票价
//指向个结点
typedefstructpassengernode{//定义乘客资料结点
//姓名
//证件号码
//座位号
flightnode*head_flight();
//生成航班信息的头结点
passengernode*head_passenger();
//生成乘客资料的头结点
//插入乘客资料的结点
intSearchPassenger(passengernode*head);
//查询乘客信息函数
{
intp=2;
//p=1时进入主菜单,p=0时退出系统
passengernode*cus=head_passenger();
flightnode*air=head_flight();
charname[20],air_num[20],ID_num[30],mima[20],ch;
chart[20]="
5566"
;
//管理员密码
system("
cls"
);
CreatFlight(&
air);
CreatPassenger(&
cus);
while(p==2)//主菜单界面
printf("
\nwelcometotheairlinesystem!
\n\npleasechoosetheservesbelowandpressthenumber:
\n\n"
================================================================\n\n"
1->
BookTicket\n"
2->
CancelTicket\n"
3->
SearchInformation\n"
4->
Exit\n\n"
================================================================\n"
switch(ch=getchar()){
case'
1'
:
{printf("
\n*-------------BookingTicket-------------*\n"
//进入订票功能
PleaseinputaairlinenumberandpressenterforOK:
"
scanf("
%s"
air_num);
PleaseinputyournameandpressenterforOK:
name);
PleaseinputyourIDnumberandpressenterforOK:
ID_num);
BookTicket(air,air_num,cus,name,ID_num);
getch();
2'
*-----------------------CancelingTicket--------------------*\n"
//进入退票功能
Pleaseinputthecancelnameforbookingticket:
PleaseinputtheIDforbookingticket:
CancelTicket(cus,air,name,ID_num);
3'
*---------------SearchInformation---------------------*\n"
//进入信息查询功能
printf("
flightinformation\n"
);
passengerinformation\n"
other->
exit\n"
*------------------------------------------------------*\n"
if((ch=getch())=='
)//航班信息查询
*------------------flightinformation-----------------*\n"
SearchFlight(air);
elseif(ch=='
){//乘客资料查询
\npleaseinputthekey:
mima);
//输入管理员密码
if(strcmp(mima,t)==0){printf("
\n*---------------passengerinformation---------------*\n\n"
SearchPassenger(cus);
elseprintf("
sorry,thekeyiswrong"
}}break;
4'
{getch();
p=0;
//退出系统
}break;
}}
flightnode*head_flight()//生成航班信息的头结点
flightnode*a;
a=(flightnode*)malloc(sizeof(flightnode));
//动态分配空间给flightnode指针并付给a
if(a==NULL)
a->
next=NULL;
returna;
passengernode*head_passenger()//生成乘客资料头结点
passengernode*c;
c=(passengernode*)malloc(sizeof(passengernode));
//分配
if(c==NULL)
c->
returnc;
intCreatFlight(flightnode**l)//生成航班信息链表(用单链表存储)
flightnode*p=*l;
//
inti=0;
char*air_num[6]={"
f2008"
"
f2009"
f2010"
f2011"
f2012"
f2013"
char*start_time[6]={"
08:
30"
12:
00"
16:
55"
45"
char*end_place[6]={"
Changsha-lasa"
Changsha-Beijing"
Changsha-deguo"
Changsha-Shanghai"
Changsha-Sanya"
"
Changsha-Guangdong"
};
//初始化航班信息
inttotal[6]={100,100,150,100,65,100};
intprice[6]={4000,1000,7000,500,900,399};
intleft[6]={23,55,76,25,40,35};
for(i=0;
i<
6;
i++)
InsertFlight(&
p,air_num[i],start_time[i],end_place[i],total[i],left[i],price[i]);
//插入航班信息
returnOK;
intCreatPassenger(passengernode**l)//生成乘客资料链表(用单链表存储)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语言 飞机 订票 系统