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

上传人:汽*** 文档编号:493476037 上传时间:2023-12-25 格式:DOC 页数:13 大小:469.50KB
返回 下载 相关 举报
数据结构实验报告_飞机订票系统_第1页
第1页 / 共13页
数据结构实验报告_飞机订票系统_第2页
第2页 / 共13页
数据结构实验报告_飞机订票系统_第3页
第3页 / 共13页
数据结构实验报告_飞机订票系统_第4页
第4页 / 共13页
数据结构实验报告_飞机订票系统_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数据结构实验报告_飞机订票系统》由会员分享,可在线阅读,更多相关《数据结构实验报告_飞机订票系统(13页珍藏版)》请在金锄头文库上搜索。

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

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

3、模块:输入密码,确认是否有权限对航班信息进行修改,有则 在航班信息链表中查找要修改的结点,进行修改,否则不能修改。2. 存储结构设计:(1) 航班的信息:为了便于查找和修改,航班的情况存储结构采用单链表,每个元素表h单链表如下:D1D2 JD3示一个航班的情况,包括航班号、起飞达到的时间、空座和目的的、票价以及限座 七个数据项:航班号起飞时间达到时间目的地限座空座票价每个结点包括数据域和指针域:数据域指针域C语言描述如下:typedef struct flight no dechar air_num10;/* 航班号 */char start_time15;/*起飞时间 */char end_

4、time15;/*到达时间 */char end_place30;/* 目的地 */int total;/* 限座 */int left;/* 空座 */int price;/*票价 */struct flight node *n ext;/* 指向个结点 */flight no de;(2) 旅客的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素 包括姓名、证件号码、航班号和座位号四个数据项:旅客姓名证件号码航班号座位号每个结点包括数据域和指针域:数据域指针域C语言描述如下:typedef struct passe ngerno de /* 定义乘客资料结点 */ char

5、 n ame20;char ID_n um20;char air_ nu m20;int seat_ num;struct passe ngernode *n ext;passengernode;【详细设计】本系统源程序如下:#in clude#in clude#defi ne OK 1#define ERROR 0 typedef struct flightnode /* 定义航班信息结点 */char air_num10;char start_time15;char end_time15;char end_place30;int total;int left; int price;stru

6、ct flightnode *next;flightnode;typedef struct passengernode /* 定义乘客资料结点 */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);/* 生成航班信

7、息链表 */int CreatPassenger(passengernode *l); /* 生成乘客资料链表 */ int InsertFlight(flightnode *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 *m

8、odefy_airline(flightnode *l,char *air_num); /*修改航班信息的函数 */int BookTicket(flightnode*a,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 SearchPass

9、enger(passengernode *head); /*查询乘客信息函数 */void main() /* 主函数 */int p=2; /*p=1 时进入主菜单, p=0 时退出系统 */ passengernode *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)pri

10、ntf(nwelcome to the airline system!nn please choose the serves below andpress the number:nn);printf(printf(1printf(2printf(3printf(4- Book Ticketn);- Cancel Ticketn);- Search Informationn);- Exitnn);=nn);printf(n);switch(ch=getch()case 1:printf(n *Booking Ticket*n); /* 进入订票功能 */printf(Please input a

11、 airline number and press enter for OK:);scanf(%s,air_num);printf(Please input your 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); /

12、* 进入退票功能 */printf(Please input the cancel name for booking ticket:);scanf(%s,name);printf(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 info

13、rmationn );printf(other - exit n);printf(*n);if(ch=getch()=1) /* 航班信息查询 */printf(* 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 print

14、f(sorry,the key is wrong);getch();break;case 4:getch(); /* 退出系统 */ p=0;break; flightnode *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_num3=flight01

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号