数据结构(C语言)实验报告_飞机订票系统_计算机-.NET.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构(C语言)实验报告_飞机订票系统_计算机-.NET.pdf》由会员分享,可在线阅读,更多相关《数据结构(C语言)实验报告_飞机订票系统_计算机-.NET.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、v .资 料.数据结构课程设计报告 一、订票系统【需求分析】本订票系统要能够实现航班情况的录入功能、航班的查询功能、订票功能、退票功能以及管理本系统的功能即能够修改航班信息。具体分析如下:1、录入功能 可以录入航班信息,如录入航班号,到达城市,起飞时间,飞机票数,票价。2、查询功能 可以查询航班的各项信息,如可以查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓,航班号。3、订票功能 可以订票并且记录下乘客的相关信息如记录下乘客姓名,身份证号码,所订航班的航班号以及所订的票数。4、退票功能 可以退票并且记录乘客的相关信息以及退票信息。5、修改功能 可以根据需要由管理员对航班信息进行修改更正
2、。【概要设计】1、算法设计:每个模块的算法设计说明如下:(1)录入模块:查找单链表的链尾,在链尾插入一个“航班信息”的新结点。(2)查询模块:提供两种查方式:按航号和按航线查询,1 代表按航号查询,2 代表按航线查询。0 则表示退出查询。顺着单链表查找,如果与航班号(航线)一致,输出相关信息,否则,查询不成功。(3)订票模块:查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功,否则失败。(4)退票模块:输入要退票的乘客姓名以及证件号码,查找乘客资料的链表中是否有这位乘客,有则删去此结点,并在空位加上 1,无则退票失败。(5)修改模块:输入密码,确认是否有权限对航班信息进
3、行修改,有则在航班信息链表中查找要修改的结点,进行修改,否则不能修改。2.存储结构设计:(1)航班的信息:为了便于查找和修改,航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞达到的时间、空座和目的的、票价以及限座v .资 料.七个数据项:航班号 起飞时间 达到时间 目的地 限座 空座 票价 单链表如下:每个结点包括数据域和指针域:数据域 指针域 C 语言描述如下:typedef struct flightnode char air_num10;/*航班号*/char start_time15;/*起飞时间*/char end_time15;/*到达时间*/char e
4、nd_place30;/*目的地*/int total;/*限座*/int left;/*空座*/int price;/*票价*/struct flightnode*next;/*指向个结点*/flightnode;(2)旅客的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、证件号码、航班号和座位号四个数据项:旅客姓名 证件号码 航班号 座位号 每个结点包括数据域和指针域:数据域 指针域 C 语言描述如下:typedef struct passengernode /*定义乘客资料结点*/char name20;char ID_num20;char air_num20
5、;int seat_num;struct passengernode*next;passengernode;【详细设计】本系统源程序如下:#include#include#define OK 1#define ERROR 0 h D1 D2 D3 退票功能以及管理本系统的功能即能够修改航班信息具体分析如下录入功能可以录入航班信息如录入航班号到达城市起飞时间飞机票数票价查询功能可以查询航班的各项信息如可以查询起降时间起飞抵达城市航班票价确定航班是否订的票数退票功能可以退票并且记录乘客的相关信息以及退票信息修改功能可以根据需要由管理员对航班信息进行修改更正概要设计算法设计每个模块的算法设计说明如下
6、录入模块查找单链表的链尾在链尾插入一个航班信息的新结果与航班号航线一致输出相关信息否则查询不成功订票模块查找乘客要订的航班号判断此航班是否有空位有则输入乘客有关信息订票成功否则失败退票模块输入要退票的乘客姓名以及证件号码查找乘客资料的链表中是否有这位乘客v .资 料.typedef struct flightnode /*定义航班信息结点*/char air_num10;char start_time15;char end_time15;char end_place30;int total;int left;int price;struct flightnode*next;flightnode
7、;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);/*生成航班信息链表*/int CreatPassenger(passengernode*l);/*
8、生成乘客资料链表*/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*modefy_airline(flightnode*l,char*air_num);/*修改航班信息的函数*/int BookT
9、icket(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 SearchPassenger(passengernode*head);/*查询乘客信息函数*/void main()/*主函数*/int p=2;/*p=1时进入主菜单,p=0时退出系统
10、*/passengernode*cus=head_passenger();flightnode*air=head_flight();char name20,air_num20,ID_num30,mima20,ch;char t20=zhengjianze;/*管理员密码*/clrscr();CreatFlight(&air);CreatPassenger(&cus);退票功能以及管理本系统的功能即能够修改航班信息具体分析如下录入功能可以录入航班信息如录入航班号到达城市起飞时间飞机票数票价查询功能可以查询航班的各项信息如可以查询起降时间起飞抵达城市航班票价确定航班是否订的票数退票功能可以退票并且
11、记录乘客的相关信息以及退票信息修改功能可以根据需要由管理员对航班信息进行修改更正概要设计算法设计每个模块的算法设计说明如下录入模块查找单链表的链尾在链尾插入一个航班信息的新结果与航班号航线一致输出相关信息否则查询不成功订票模块查找乘客要订的航班号判断此航班是否有空位有则输入乘客有关信息订票成功否则失败退票模块输入要退票的乘客姓名以及证件号码查找乘客资料的链表中是否有这位乘客v .资 料.while(p=2)printf(n welcome to the airline system!nn please choose the serves below and press the number:n
12、n);printf(=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 na
13、me 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);printf(
14、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)/*航班信息查询*/printf(*-flight informati
15、on-*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);退票功能以及管理本系统的功能即能够修改航班信息具体分析如下录入功能可以录入航班信息如录入航班号到达城市起飞时间飞机票数票价查询功能可以查询航班的各项信息如可以查询起降时间起飞抵达城市航班票价确定航班是否订的票数退票功能可以退票并且记录乘客的相关信息以及退票信息修改功能可以根
16、据需要由管理员对航班信息进行修改更正概要设计算法设计每个模块的算法设计说明如下录入模块查找单链表的链尾在链尾插入一个航班信息的新结果与航班号航线一致输出相关信息否则查询不成功订票模块查找乘客要订的航班号判断此航班是否有空位有则输入乘客有关信息订票成功否则失败退票模块输入要退票的乘客姓名以及证件号码查找乘客资料的链表中是否有这位乘客v .资 料.SearchPassenger(cus);else printf(sorry,the key is wrong);getch();break;case 4:getch();/*退出系统*/p=0;break;flightnode*head_flight(
17、)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,flight02,fligh
18、t03;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;退票功能以及管理本系统的功能即能够修改航班信息具体分析如下录入功能可以录入航班
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言 实验 报告 飞机 订票 系统 计算机 NET
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内