C语言数据结构课程设计航空订票实验报告(含源代码)_第1页
C语言数据结构课程设计航空订票实验报告(含源代码)_第2页
C语言数据结构课程设计航空订票实验报告(含源代码)_第3页
C语言数据结构课程设计航空订票实验报告(含源代码)_第4页
C语言数据结构课程设计航空订票实验报告(含源代码)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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;/到达地点char sta

4、rtdate20;/出发日期char starttime10;/出发时间char arrivetime10;/到达时间int price;/票价struct node *next;LinkList;四、主要函数void dingpiao(LinkList *&L,person *&p)/订票函数void write(LinkList *&L)/航班信息录入函数void showF(LinkList *fn)/展示航班信息的函数void showT(LinkList *L1,person *p1)/展示机票信息的函数void tuipiao(LinkList *&

5、L,person *p)/退票函数void xiugai(LinkList *&L)/修改航班信息的函数void scr()/主界面函数void chaxun(LinkList *&L)/查询函数int main()/主函数,定义为int型五、变量说明1.在主函数中LinkList *h 表示航班节点person *p 表示机票信息节点2.在其他函数中一般也用 r,p,f等表示链表指针 i j m等表示int变量六、演示截图1.航班信息录入2.订票3.退票4.查询5.修改航班信息6.主界面、七、实验心得体会1.巩固和加深了对数据结果的理解,提高综合运用本课程所学知识的能力2.培

6、养了我选用参考书,查阅手册及及文献资料的能力。培养独立思考,深入研究,分析问题,解决问题的能力。3.通过设计编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4.通过可看成设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。根据我在设计中遇到的问题,我将在以后的学习过程中注意一下几点:1. 认真上好专业课,多在实践中锻炼自己;2. 写程序的过程中要考虑周到,严密3. 在做设计的时候要有信心,有耐心,切勿浮躁。4. 认真学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。5. 在课余时间多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便

7、能节省调试程序的时间。附:源代码/#include"stdafx.h"#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#define M 50int j=1;/航班编号初始化 typedef struct P/旅客jipiao信息 char name10;/姓名int ordernum;/机票编号char num10;/旅客证件号struct P *next;int ticketnum;/订票张数int flightn;/航班号per

8、son;typedef struct node/航班信息 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

9、航班号t出发地点t到达地点n"); while(f) printf("%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 dingpia

10、o(LinkList *&L,person *&p)/头插法 person *r;r=(person *)malloc(sizeof(person);int n;/要定的航班号 char t;/重新订票选择项 LinkList *q=L->next;/航班 printf("输入乘客姓名(例如zhang) ");scanf("%s",&r->name);printf("证件号:");scanf("%s",&r->num);printf("输入订票航班号和订票

11、张数");scanf("%d,%d",&n,&r->ticketnum);while(q!=NULL&&q->flightnum!=n)/查询是否有此航班q=q->next;if(q->flightnum=n&&q->ticket-r->ticketnum>=0)/有且票量充足q->ticket-=r->ticketnum;r->ordernum=j;r->flightn=n;printf("订票成功!订票编号为%d,剩余票数:%dn&quo

12、t;,j,q->ticket); j+;else if(q->flightnum=n&&q->ticket-r->ticketnum<0)/有,但无票 printf("该航班已经满,请选择其他航班n"); else printf("没有该航班号!是否需要重新订票y?n");/无此航班scanf("%c",&t);if(t='y')dingpiao(L,p); r->next=p->next;p->next=r; void showT(LinkLis

13、t *L1,person *p1) person *p2; p2=p1->next; printf("机票编号t旅客姓名t旅客证件号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 *&L,person *p)int m;LinkList *r=L->next;

14、/查询航班,修改剩余票数时用person *pf=p;/查询编号 printf("请输入订单号:");scanf("%d",&m);person *w=p->next;/查询编号 while(w!=NULL&&w->ordernum!=m)/查询订单w=w->next;if(w=NULL)printf("无该订单号,请再次核对!");elsewhile(r!=NULL&&r->flightnum!=w->flightn)/修改航班剩余票数r=r->next;i

15、f(!r)printf("error!");else r->ticket=r->ticket+w->ticketnum; while(pf->next!=w&&pf->next!=NULL)/删除节点 pf=pf->next; pf->next=w->next; free(w);printf("退票成功!该航班剩余票数%dn",r->ticket);void xiugai(LinkList *&L) int x;printf("请输入你要修改航班号:");s

16、canf("%d",&x);LinkList *r=L;while(r!=NULL&&r->flightnum!=x)r=r->next;if(!r)printf("error!");elseprintf("请重新输入它的起点城市");scanf("%s",&r->startadd);printf("请重新输入它的终点城市");scanf("%s",&r->arriveadd);printf("请重新输

17、入它的起飞日期");scanf("%s",&r->startdate);printf("请重新输入它的起飞时间");scanf("%s",&r->starttime);printf("请重新输入它的单价");scanf("%d",&r->price);printf("请重新输入它的剩余票数"); scanf("%d",&r->ticket);void write(LinkList *&

18、;L)LinkList *p=L;p=(LinkList *)malloc(sizeof(LinkList);printf("请输入你要航班号:");scanf("%d",&p->flightnum);printf("请输入它的起点");scanf("%s",&p->startadd);printf("请输入它的终点");scanf("%s",&p->arriveadd);printf("输入它的起飞日期");sc

19、anf("%s",&p->startdate);printf("输入它的起飞时间");scanf("%s",&p->starttime);printf("输入它的到达时间");scanf("%s",&p->arrivetime);printf("输入它的单价");scanf("%d",&p->price);printf("请输入它的剩余票数"); scanf("%d&qu

20、ot;,&p->ticket);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.航班信息修改n");printf("6.退出n"); void chaxun(LinkList *&L)LinkList *p=L;int m;printf("请输入你要航班号:");scanf("%d",&m);while(p!=NULL&&p->flightnum!=m)p=p->next;if(!p)printf("error!&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论