C语言数据结构课程设计航空订票实验报告(含源代码)

上传人:jiups****uk12 文档编号:40017716 上传时间:2018-05-22 格式:DOC 页数:23 大小:302.50KB
返回 下载 相关 举报
C语言数据结构课程设计航空订票实验报告(含源代码)_第1页
第1页 / 共23页
C语言数据结构课程设计航空订票实验报告(含源代码)_第2页
第2页 / 共23页
C语言数据结构课程设计航空订票实验报告(含源代码)_第3页
第3页 / 共23页
C语言数据结构课程设计航空订票实验报告(含源代码)_第4页
第4页 / 共23页
C语言数据结构课程设计航空订票实验报告(含源代码)_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《C语言数据结构课程设计航空订票实验报告(含源代码)》由会员分享,可在线阅读,更多相关《C语言数据结构课程设计航空订票实验报告(含源代码)(23页珍藏版)》请在金锄头文库上搜索。

1、 数据结构课程设计实验报告设计题目_设计者 _指导老师 _班级 _学号 _一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数 据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城 市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票: 可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订

2、票信息的存储结构,设计程序完成 功能;二、设计概要主界面 选择操作项目1. 录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点, 起飞日期,出发时间,到达时间,票价。2. 订票输入旅客的姓名,证件号,航班号,和订票张数。程序中自动查询输入要定 的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数 不充足叫其选择其它航班。此也采用单链表的数据结构。3. 退票要旅客输入订单号,查询航班号,没有此航班号则叫旅客核对。有则执行:1) 查询旅客的航班 2) 修改航班的剩余票数。 3) 删除旅客订票信息。 4) 退票成功,显示剩余票数。4. 查询输入航班号,有与

3、之匹配的航班则输出之,没有则说没有此航班5. 修改航班信息查询到要修改的航班,然后直接进行修改6. 退出程序三、设计中主要用到的结构体typedef struct P/旅客机票信息 char name10;/姓名int ordernum;/机票编号char num10;/旅客证件号struct P *next;int ticketnum;/订票张数int flightn;/航班号person;typedef struct node/航班信息 int ticket;/剩余票数int flightnum;/航班号char startadd20;/出发地点char arriveadd20;/到达地点

4、char startdate20;/出发日期char starttime10;/出发时间char arrivetime10;/到达时间int price;/票价struct node *next;LinkList;四、主要函数void dingpiao(LinkList */航班编号初始化 typedef struct P/旅客 jipiao 信息 char name10;/姓名int ordernum;/机票编号char num10;/旅客证件号struct P *next;int ticketnum;/订票张数int flightn;/航班号person;typedef struct no

5、de/航班信息 int ticket;/剩余票数int flightnum;/航班号char startadd20;/出发地点char arriveadd20;/到达地点char startdate20;char starttime10;/出发时间char arrivetime10;/到达时间int price;/票价/float discount=1;/折扣struct node *next;LinkList;void showF(LinkList *fn)LinkList *f;f=fn-next;printf(“剩余票数t 航班号t 出发地点t 到达地点n“);while(f)print

6、f(“%dt%dt%st%sn“,f-ticket,f-flightnum,f-startadd,f-arriveadd);f=f-next;f=fn-next;printf(“出发时间t 到达时间t 票价n“);while(f)printf(“%st%st%dn“,f-startdate,f-starttime,f-price);f=f-next;void dingpiao(LinkList *r=(person *)malloc(sizeof(person);int n;/要定的航班号 char t;/重新订票选择项 LinkList *q=L-next;/航班 printf(“输入乘客姓

7、名(例如 zhang) “);scanf(“%s“,printf(“证件号:“);scanf(“%s“,printf(“输入订票航班号和订票张数“);scanf(“%d,%d“,while(q!=NULLif(q-flightnum=nr-ordernum=j;r-flightn=n;printf(“订票成功!订票编号为%d,剩余票数:%dn“,j,q-ticket);j+;elseif(q-flightnum=np-next=r;void showT(LinkList *L1,person *p1)person *p2;p2=p1-next;printf(“机票编号t 旅客姓名t 旅客证件号

8、t 旅客航班号t 旅客订票张数n“);while(p2)printf(“%dt%st%st%dt%dn“,p2-ordernum,p2-name,p2-num,p2-flightn,p2-ticketnum);p2=p2-next;void tuipiao(LinkList *LinkList *r=L-next;/查询航班,修改剩余票数时用person *pf=p;/查询编号 printf(“请输入订单号:“);scanf(“%d“,person *w=p-next;/查询编号 while(w!=NULLif(w=NULL)printf(“无该订单号,请再次核对!“);elsewhile(r

9、!=NULLif(!r)printf(“error!“);else r-ticket=r-ticket+w-ticketnum;while(pf-next!=wpf-next=w-next;free(w);printf(“退票成功!该航班剩余票数%dn“,r-ticket);void xiugai(LinkList *printf(“请输入你要修改航班号:“);scanf(“%d“,LinkList *r=L;while(r!=NULLif(!r)printf(“error!“);elseprintf(“请重新输入它的起点城市“);scanf(“%s“,printf(“请重新输入它的终点城市“

10、);scanf(“%s“,printf(“请重新输入它的起飞日期“);scanf(“%s“,printf(“请重新输入它的起飞时间“);scanf(“%s“,printf(“请重新输入它的单价“);scanf(“%d“,printf(“请重新输入它的剩余票数“); scanf(“%d“,void write(LinkList *p=(LinkList *)malloc(sizeof(LinkList);printf(“请输入你要航班号:“);scanf(“%d“,printf(“请输入它的起点“);scanf(“%s“,printf(“请输入它的终点“);scanf(“%s“,printf(“

11、输入它的起飞日期“);scanf(“%s“,printf(“输入它的起飞时间“);scanf(“%s“,printf(“输入它的到达时间“);scanf(“%s“,printf(“输入它的单价“);scanf(“%d“,printf(“请输入它的剩余票数“); scanf(“%d“,p-next=L-next;L-next=p;void scr()printf(“-订票系统-n“);printf(“ 数据结构课程设计n“); printf(“1.航班信息录入n“);printf(“2.订票n“);printf(“3.退票n“);printf(“4.航班信息查询n“);printf(“5.航班信

12、息修改n“);printf(“6.退出n“); void chaxun(LinkList *int m;printf(“请输入你要航班号:“);scanf(“%d“,while(p!=NULLif(!p)printf(“error!“);elseprintf(“该航班起点:%sn 终点:%sn 起飞日期:%sn 起飞时间:%sn 到达时间:%sn 票价:%dn 剩余票数:%dn“,p-startadd,p-arriveadd,p-startdate,p-starttime,p-arrivetime,p-price,p-ticket);int main() LinkList *h;/航班pers

13、on *p;/旅客p=(person *)malloc(sizeof(person);h = (LinkList *) malloc (sizeof(LinkList); p-next=NULL;h-next = NULL;int ch=1;scr();while(ch!=6)printf(“请选择你要进行的操作:“);scanf(“%d“,switch(ch)case 1:write(h);showF(h);break;case 2:dingpiao(h,p);showT(h,p);break;case 3:tuipiao(h,p);showT(h,p);break;case 4:chaxun(h);break;case 5:xiugai(h);showF(h);break;case 6:break;default:printf(“输入有误请重新选择:“);system(“pause“);return 0;

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

当前位置:首页 > 行业资料 > 其它行业文档

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