基于c语言的飞机订票系统Word文件下载.docx

上传人:b****3 文档编号:6525245 上传时间:2023-05-06 格式:DOCX 页数:27 大小:180.02KB
下载 相关 举报
基于c语言的飞机订票系统Word文件下载.docx_第1页
第1页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第2页
第2页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第3页
第3页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第4页
第4页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第5页
第5页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第6页
第6页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第7页
第7页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第8页
第8页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第9页
第9页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第10页
第10页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第11页
第11页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第12页
第12页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第13页
第13页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第14页
第14页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第15页
第15页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第16页
第16页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第17页
第17页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第18页
第18页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第19页
第19页 / 共27页
基于c语言的飞机订票系统Word文件下载.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于c语言的飞机订票系统Word文件下载.docx

《基于c语言的飞机订票系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于c语言的飞机订票系统Word文件下载.docx(27页珍藏版)》请在冰点文库上搜索。

基于c语言的飞机订票系统Word文件下载.docx

空座

票价

单链表如下:

每个结点包括数据域和指针域:

数据域

指针域

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)//生成乘客资料链表(用单链表存储)

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

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

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

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