ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:95.52KB ,
资源ID:8524160      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8524160.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计航空客运订票系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计航空客运订票系统.docx

1、课程设计航空客运订票系统 数据结构课程设计报告 课程名称_数据结构题目名称 航空客运订票系统 学生学院 计算机学院专业班级 11级软件1班 2012年 6月 29日一需求分析设计一个航空客运订票系统基本要求:1.每条航线所涉及的信息有:终点站名、航班号、飞机好、飞行周日、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、仓位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);2.作为示意系统 ,全部数据可以只放在内存中;3.系统能实现的操作和功能如下:(1)查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机好、星期几飞行,最近一天航班的日期和与票额;(2)承办订票业务:根

2、据客户提出的要求(航班号,订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员活余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补;(3)承办退票业务:根据客户提供的情况(日期、航班)。为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则一次询问其他排队候补的客户。2概要设计 用链队储存客户信息,用线性表储存航线函数声明void fromAirlineNum();/通过航班号查询void fromEndCity();/通过目的地查询void fromDay();/通过时间查询v

3、oid Initialize();/初始化录入功能void airLineCheck();/查询功能void customerBooking();/订票功能void cancelFuntion();/退票功能void customerInformation();/用户信息查询三详细设计 #include #include #include #include #define ok 1 typedef struct Booking/单链表 char name15;/已订票的客户姓名 int ticket;/已订票数量 struct Booking *next1;Booking,*Link;type

4、def struct yetBooking/单链队 char name15;/预订票的客户姓名 int moreticket;/ 要订票数量 struct yetBooking *next2;/下一个链队结点指针yetBooking,*Qptr;typedef struct Qptr front;/单链队头结点 Qptr rear;/单链队尾结点linkQueue; typedef struct airLine/创建一个航线的结构体 char fightNum15;/航班号- char planeNum15;/飞机号 int fightTime;/起飞时间 int level;/舱位等级 in

5、t moreTicket;/余票 char endCity15;/降落城市 int totalTicket;/票数总额 struct airLine *next;/指向下一个链结点的指针 struct Booking *bookingedList;/定义一个指向已订票客户的头结点指针 struct yetBooking *bookdingQueue; linkQueue Q;airLine,*Linklist;struct airLine *L=NULL;/定义全局量struct Booking *H;/为已订票客户链队来申请空间/linkQueue Q;/linkQueue类型的来申请空间L

6、inklist InitLinklist();/声明int InsertLinklist(Linklist &head1);/声明void fromAirlineNum();/通过航班号查询void fromEndCity();/通过目的地查询void fromDay();/通过时间查询void Initialize();/初始化录入功能void airLineCheck();/查询功能void customerBooking();/订票功能void cancelFuntion();/退票功能void customerInformation();/用户信息查询void main() H=(st

7、ruct Booking*)malloc(sizeof(Booking); /Q.front=Q.rear=(Qptr)malloc(sizeof(yetBooking); InitLinklist(); int n; do /打印主界面 printf(t 欢迎使用航空客运订票系统n); printf(t+n); printf(t=1. 录入航班功能 =n); printf(t=2. 航班查询功能 =n); printf(t=3. 订票功能 =n); printf(t=4. 退票功能 =n); printf(t=5. 用户信息查询 =n); printf(t=6. 退出 =n); printf

8、(t+n); printf(t请选择:); scanf(%d,&n);printf(n); switch(n) case 1: Initialize();/录入功能 break; case 2: airLineCheck();/查询功能 break; case 3: customerBooking();/订票功能 break; case 4: cancelFuntion();/退票功能 break; case 5: customerInformation(); break; default :exit(0);/退出 while(n=1|n=2|n=3|n=4|n=5);void Initial

9、ize()/航班录入功能 int j=1,m; do if(!InsertLinklist(Linklist) L) /向其中加入航班信息 printf(内存已满n); exit(OVERFLOW); /向链表中加一结点 printf(t是否要输入下一个航线记录?n); printf(t是请输入1n); printf(t否请输入2nt); scanf(%d,&m); /在这里依靠人来决定是否输入下一条航线记 while(m=1);Linklist InitLinklist() L=(Linklist)malloc(sizeof(airLine); if(!L) exit(OVERFLOW);

10、L-next=NULL;/建立一个带有头结点的单链表 return (L);int InsertLinklist(Linklist &L)/向航线链表添加新的结点 Linklist p; p=(Linklist)malloc(sizeof(airLine);/为一个新的结点分配空间 if(!p) exit(OVERFLOW); printf(t请依次输入下面几项内容:nn);/这里的输入采用一个个单独输入,避免了乱赋值的现象 printf(航班号n); scanf(%s,p-fightNum); printf(飞机号n); scanf(%s,p-planeNum); printf(终点站n);

11、 scanf(%s,p-endCity); printf(飞行日期(星期)n); scanf(%d,&p-fightTime); printf(舱位等级n); scanf(%d,&p-level); printf(票数总额n); scanf(%d,&p-totalTicket); p-moreTicket=p-totalTicket; p-bookingedList=(Booking*)malloc(sizeof(Booking);/为它申请空间 p-bookdingQueue=p-Q.front=p-Q.rear=(Qptr)malloc(sizeof(yetBooking);/为它申请空间

12、 p-next=L-next; L-next=p;/这二句是链表中的插入一个结点 p-Q.front-next2=NULL; return ok;void airLineCheck()/查询功能 int n; printf(t 查 找 航 线 信 息 n); printf(t+n); printf(t=1. 通过目的地查询 =n); printf(t=2. 通过航班号查询 =n); printf(t=3. 通过日期查询 =n); printf(t+n); printf(t请选择:n); scanf(%d,&n); switch(n) case 1:fromEndCity(); break; c

13、ase 2:fromAirlineNum(); break; case 3:fromDay(); break; default :break; void fromEndCity()/通过目的地查询 char c15; Linklist p=L; int m=1; printf(t请输入要查询的目的地:n); scanf(%s,c); do p=p-next; if(p) if(strcmpi(*p).endCity,c)=0) printf(t航班号:%sn,p-fightNum); printf(t飞机号:%sn,p-planeNum); printf(t飞行时间:周%dn,p-fightT

14、ime); printf(t票数总额%dn,p-totalTicket); printf(t余票量:%dnnn,p-moreTicket); m=0; else m=1; while(m!=1); if(m=1)printf(t对不起没有你要找的航班号:n);void fromAirlineNum()/通过航班号查询 char c15; Linklist p=L; int m=1; printf(t请输入要查询的航班号:n); scanf(%s,c); do p=p-next; if(p) if(strcmpi(*p).fightNum,c)=0) printf(t航班信息:n); print

15、f(t航班号:%sn,p-fightNum); printf(t飞机号:%sn,p-planeNum); printf(t飞行时间:周%dn,p-fightTime); printf(t票数总额%dn,p-totalTicket); printf(t余票量:%dnn,p-moreTicket); m=0; else /如果不匹配的话就做 printf(t对不起没有你要找的航班号:n); m=0; while(m!=0);void fromDay()/通过日期查询航班 int i; Linklist p=L; int m=2; printf(t请输入日期:n); scanf(%d,&i); pr

16、intf(t航班信息:n); do p=p-next; if(p) if(*p).fightTime=i) printf(t航班号:%sn,p-fightNum); printf(t飞机号:%sn,p-planeNum); printf(t飞行时间:周%dn,p-fightTime); printf(t票数总额%dn,p-totalTicket); printf(t余票量:%dnnn,p-moreTicket); m=0; else m=1; while(m!=1); if(m=1)printf(t对不起没有你要找的航班号:n);void customerBooking()/订票功能 Link

17、list p=L;/Linklist类型的L来指向链表头 Booking *h,*h1;/Booking 定义客户的结点,方便插入与删除 / linkQueue q;/linkQueue类型的来 ,方便插入与删除 struct yetBooking *q3; char c15; int m=1,ticket,n; int ydticket=0,yd=0; printf(请输入航班号:n); scanf(%s,c); /p=L-next; if(p) do/查找一下,是否有这个航班 if(!p) printf(对不起,没有你要找的航班:nn); m=-1; break; /goto loop1;

18、 m=strcmpi(p-fightNum,c); /通过比较来判定 if(m=0) printf(航班信息:n); printf(航班号:%sn,p-fightNum); printf(飞机号:%sn,p-planeNum); printf(飞行时间:周%dn,p-fightTime); printf(票数总额%dn,p-totalTicket); printf(余票量:%dn,p-moreTicket); else p=p-next; while(m!=0); if(m=0) /当有该航班时,进行订票 do printf(n请输入你要订的票数:n); scanf(%d,&ticket);

19、while(ticket=0) printf(票数应该大于0n); scanf(%d,&ticket); if(ticketmoreTicket) h=p-bookingedList; if(h) h1=h; h=h-next1; h=(struct Booking*)malloc(sizeof(Booking); printf(请输入你的名字:n); scanf(%s,h-name); h-ticket=ticket; h-next1=h1-next1; h1-next1=h; p-moreTicket=p-moreTicket-ticket; printf(订票成功:n); m=2; el

20、se /余票量不足时 printf(余票量:%dn,p-moreTicket); printf(对不起,余票 %d 张不足,不能完成订票n,p-moreTicket); printf( 是否要重新订票?n); printf(需要请输入1n); printf(取消请按2: n); printf(预订请输入3 : n); scanf(%d,&m); if(m=3) q3=(yetBooking*)malloc(sizeof(yetBooking); printf(请输入你的姓名n); scanf(%s,q3-name); q3-moreticket=ticket; q3-next2=NULL; p

21、-Q.rear-next2=q3; p-Q.rear=q3; printf(恭喜,预订成功!n); while(m=1); void cancelFuntion()/*退票功能 Linklist p=L; Booking *h=H,*h1,*h2; / linkQueue q=Q; char c15,name115; int m=1,ticket,n;/定义相应变量 printf(请输入航班号:n); scanf(%s,c); p=L-next; if(p) do /使用do while来查找是否有此航班 if(!p) /如果是到了表尾且没有匹配, printf(n对不起,没有你要找的航班:n

22、); m=-1; if(strcmpi(p-fightNum,c)=0)/比较航班号 输出信息 printf(t航班信息:n); printf(航班号:%sn,p-fightNum); printf(飞机号:%sn,p-planeNum); printf(飞行时间:周%dn,p-fightTime); printf(票数总额%dn,p-totalTicket); printf(余票量:%dn,p-moreTicket); m=0; else p=p-next; while(m0); if(m=0) /如果找到了,则退票 int i=1; do h=p-bookingedList; printf

23、(请输入你的姓名:n); scanf(%s,name1); printf(请输入你订的票数:n); scanf(%d,&ticket); while(ticketticket=ticket)/如果名字和订的票数相等,则就给他取消订票 p-moreTicket+=h-ticket; h2=h; if(i=1) h=h-next1; free(h2); else h1-next1=h-next1; free(h2); printf(你取消订票成功n); struct yetBooking *q3; if(p-Q.front=p-Q.rear) printf(没有人预订票:n); break; if

24、(p-moreTicket)=(p-Q.front-next2-moreticket) h2=(Booking*)malloc(sizeof(Booking); strcpy(h2-name,p-Q.front-next2-name); h2-ticket=p-Q.front-next2-moreticket; n=p-moreTicket-p-Q.front-next2-moreticket; p-moreTicket=n; q3=p-Q.front;/ if(p-Q.rear=q3) free(q3);p-Q.front=p-Q.rear=NULL; else p-Q.front=p-Q.front-next2;/这二语句来删除结点 free(q3); printf(链队中删除成功n); h2-next1=p-bookingedList-next1; p-bookingedList-next1=h2;/为之插入进已订票客户链表中 printf(为预订的客户订票成功n); break; else printf(余票数不够,不能为预订客户订票!n); else h1=h; h=h-next1; if(!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1