欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构实验报告飞机订票系统.docx

    • 资源ID:2400693       资源大小:22.20KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构实验报告飞机订票系统.docx

    1、数据结构实验报告飞机订票系统一、 订票系统【需求分析】本订票系统要能够实现航班情况的录入功能、航班的查询功能、订票功能、退票功能以及管理本系统的功能即能够修改航班信息。具体分析如下:1、录入功能可以录入航班信息,如录入航班号,到达城市,起飞时间,飞机票数,票价。2、查询功能可以查询航班的各项信息,如可以查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓,航班号。3、订票功能可以订票并且记录下乘客的相关信息如记录下乘客姓名,身份证号码,所订航班的航班号以及所订的票数。4、退票功能可以退票并且记录乘客的相关信息以及退票信息。5、修改功能可以根据需要由管理员对航班信息进行修改更正。【概要设计】1

    2、、算法设计:每个模块的算法设计说明如下:(1)录入模块: 查找单链表的链尾,在链尾插入一个“航班信息”的新结点。(2)查询模块:提供两种查方式:按航号和按航线查询,1代表按航号查询,2代表按航线查询。0则表示退出查询。顺着单链表查找,如果与航班号(航线)一致,输出相关信息,否则,查询不成功。(3)订票模块:查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功,否则失败。(4)退票模块:输入要退票的乘客姓名以及证件号码,查找乘客资料的链表中是否有这位乘客,有则删去此结点,并在空位加上1,无则退票失败。(5)修改模块: 输入密码,确认是否有权限对航班信息进行修改,有则在航班信

    3、息链表中查找要修改的结点,进行修改,否则不能修改。2.存储结构设计:(1) 航班的信息:为了便于查找和修改,航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞达到的时间、空座和目的的、票价以及限座七个数据项:航班号起飞时间达到时间目的地限座空座票价单链表如下:每个结点包括数据域和指针域:数据域指针域C语言描述如下:typedef struct flightnode char air_num10; /*航班号*/char start_time15; /*起飞时间*/char end_time15; /*到达时间*/char end_place30; /*目的地*/int

    4、total; /*限座*/int left; /*空座*/int price; /*票价*/struct flightnode *next; /*指向个结点*/flightnode;(2) 旅客的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、证件号码、航班号和座位号四个数据项:旅客姓名证件号码航班号座位号每个结点包括数据域和指针域:数据域指针域 C语言描述如下:typedef struct passengernode /*定义乘客资料结点*/char name20;char ID_num20;char air_num20;int seat_num;struct p

    5、assengernode *next;passengernode;【详细设计】本系统源程序如下:#include#include#define OK 1#define ERROR 0typedef struct flightnode /*定义航班信息结点*/char air_num10;char start_time15;char end_time15;char end_place30;int total;int left;int price;struct flightnode *next;flightnode;typedef struct passengernode /*定义乘客资料结点*/

    6、char name20;char ID_num20;char air_num20;int seat_num;struct passengernode *next;passengernode;flightnode *head_flight(); /*生成航班信息的头结点*/passengernode *head_passenger(); /*生成乘客资料的头结点*/int CreatFlight(flightnode *l); /*生成航班信息链表*/int CreatPassenger(passengernode *l); /*生成乘客资料链表*/int InsertFlight(flight

    7、node *p,char *air_num,char *start_time,char *end_place,int total,int left,int price); /*插入航班信息的结点*/int InsertPassenger(passengernode *p,char *name,char *ID_num,char *air_num,int seat_num); /*插入乘客资料的结点*/flightnode *modefy_airline(flightnode *l,char *air_num); /*修改航班信息的函数*/int BookTicket(flightnode*a,

    8、char *air_num,passengernode *c,char *name,char *ID_num); /*订票函数*/int CancelTicket(passengernode *c,flightnode*l,char *name,char *ID_num); /*退票函数*/int SearchFlight(flightnode*head); /*查询航班信息函数*/int SearchPassenger(passengernode *head); /*查询乘客信息函数*/void main() /*主函数*/int p=2; /*p=1时进入主菜单,p=0时退出系统*/pas

    9、sengernode *cus=head_passenger(); flightnode *air=head_flight();char name20,air_num20,ID_num30,mima20,ch; char t20=zhengjianze; /*管理员密码*/clrscr();CreatFlight(&air); CreatPassenger(&cus);while(p=2) printf(n welcome to the airline system!nn please choose the serves below and press the number:nn);print

    10、f( =nn);printf( 1 - Book Ticket n);printf( 2 - Cancel Ticket n);printf( 3 - Search Information n);printf( 4 - Exit nn);printf( =n);switch(ch=getch()case 1:printf(n *-Booking Ticket-*n); /*进入订票功能*/printf(Please input a airline number and press enter for OK:);scanf(%s,air_num);printf(Please input your

    11、 name and press enter for OK:);scanf(%s,name);printf(Please input your ID number and press enter for OK:);scanf(%s,ID_num);BookTicket(air,air_num,cus,name,ID_num);getch();break;case 2:printf( *-Canceling Ticket-*n); /*进入退票功能*/printf(Please input the cancel name for booking ticket:);scanf(%s,name);pr

    12、intf(Please input the ID for booking ticket:);scanf(%s,ID_num);CancelTicket(cus,air,name,ID_num);break;case 3:printf(*-Search Information-*n); /*进入信息查询功能*/ printf( 1 - flight information n ); printf( 2 - passenger informationn ); printf( other - exit n); printf(*-*n); if(ch=getch()=1) /*航班信息查询*/prin

    13、tf(*- flight information -*n); SearchFlight(air);else if(ch=2) /*乘客资料查询*/printf(n please input the key:);scanf(%s,mima); /*输入管理员密码*/if(strcmp(mima,t)=0)printf(n*-passenger information -*nn);SearchPassenger(cus);else printf(sorry,the key is wrong);getch();break;case 4:getch(); /*退出系统*/p=0;break;fligh

    14、tnode *head_flight()flightnode *a;a=(flightnode *)malloc(sizeof(flightnode);if(a=NULL)a-next=NULL;return a;passengernode *head_passenger()passengernode *c;c=(passengernode*)malloc(sizeof(passengernode);if(c=NULL)c-next=NULL;return c;int CreatFlight(flightnode *l)flightnode *p=*l;int i=0;char *air_nu

    15、m3=flight01,flight02,flight03;char *start_time3= 08:00, 12:00, 16:30;char *end_place3=Guangzhou,Shenzhen,Shantou; /*初始化航班信息*/int total3=100,100,100;int price3=300,200,250;int left3=23,54,76; for(i=0;i3;i+)InsertFlight(&p,air_numi,start_timei,end_placei,totali,lefti,pricei); /*插入航班信息*/return OK;int C

    16、reatPassenger(passengernode *l)passengernode *p=*l;int i=0;char *name3=liming,Ximing,Chongliang;char *ID_num3=52,54,51; /*初始化乘客资料*/char *air_num3=flight01,flight02,flight03;int seat_num3=12,5,8;for(i=0;iair_num,air_num);strcpy(q-start_time,start_time);strcpy(q-end_place,end_place);q-total=total;q-le

    17、ft=left;q-price=price;q-next=NULL;(*p)-next=q;(*p)=(*p)-next; /*航班信息链的尾插法*/return OK;int InsertPassenger(passengernode *p,char *name,char *ID_num,char *air_num,int seat_num)passengernode *q;q=(passengernode*)malloc(sizeof(passengernode);strcpy(q-name,name);strcpy(q-ID_num,ID_num);strcpy(q-air_num,ai

    18、r_num);q-seat_num=seat_num;q-next=NULL;(*p)-next=q;(*p)=(*p)-next; /*乘客资料链表的尾插法*/return OK;flightnode *modefy_airline(flightnode *l,char *air_num)flightnode *p;p=l-next;for(;p!=NULL;p=p-next)if(strcmp(air_num,p-air_num)=0)p-left+;return l;printf(NO the airline!);return 0;int BookTicket(flightnode *a

    19、,char *air_num,passengernode *c,char *name,char *ID_num)flightnode *p=a;passengernode *q=c-next;p=a-next;for(;q-next!=NULL;q=q-next);for(;p!=NULL;p=p-next)if(strcmp(p-air_num,air_num)=0)if(p-left0)printf( nSuccessful for Booking ticket.nn Your flight: %sn Your seat number : %d ,p-air_num,(p-total-p-

    20、left+1);printf(n *-*);InsertPassenger(&q,name,ID_num,air_num,p-total-p-left+1);p-left-; return OK;elseprintf(seat is full);return 0;/*if(strcmp)*/ printf(Sorry,there isnt the plane,please check the airline number!);printf(n *-*);int CancelTicket(passengernode *c,flightnode *l,char *name,char *ID_num

    21、)passengernode *p,*pr;char air_num20;pr=c;p=pr-next;while(p!=NULL)if(strcmp(p-name,name)=0&strcmp(p-ID_num,ID_num)=0)strcpy(air_num,p-air_num);l=modefy_airline(l,air_num);pr-next=p-next;p=pr-next;printf(successful for canceling ticket.);printf(n *-*);return OK;pr=pr-next;p=pr-next;printf(Sorry,there

    22、 isnt the customer!);printf(n *-*);return ERROR;int SearchFlight(flightnode *head)flightnode *p=head-next;printf( Flight Start_time Arrival_place Price Total Left_seatnn);for(;p!=NULL;p=p-next)printf( %s %-10s %-9s %-7d%-6d %-6dn,p-air_num,p-start_time,p-end_place,p-price,p-total,p-left);printf(n);p

    23、rintf( *-*nn);return OK;int SearchPassenger(passengernode *head)struct passengernode *q=head-next;printf( Name ID Flight Seat_numbernn);for(;q!=NULL;q=q-next)printf(%-12s %-8s %-5s %dn,q-name,q-ID_num,q-air_num,q-seat_num);printf(n);printf(n *-*);return OK;【调试分析】1、调试结果:(1)系统主菜单界面:(2)进入订票的界面:(3)查询信息的

    24、界面:选择1,查询航班信息的界面:选择2,输入密码,查询乘客的信息的界面:新增乘客,查询乘客信息:密码错误时:(4)进入退票的界面:名字或者证件错误时:2、时间复杂度分析:本程序运行所耗费的时间主要在于循环语句,for和while语句,其时间复杂度应该为O(n)。3、模块设计和调试时存在问题的思考:原先在信息查询中没有乘客与管理人员的区别,乘客与管理人员都可以看到相同的信息,航班信息和乘客资料,后来,在浏览乘客资料时要求输入管理人员的密码,以确保乘客资料的安全性。4、算法的改进设想:本程序还存在很多缺点,不能完全的实现老师要求的各种功能,特别是在查询功能方面,此程序应该增加一些查询的方式的设计,如可以按照终点地查询等。


    注意事项

    本文(数据结构实验报告飞机订票系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开