飞机订票系统_第1页
飞机订票系统_第2页
飞机订票系统_第3页
飞机订票系统_第4页
飞机订票系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、课 程 设 计 任 务 书设计题目 飞机订票系统学生姓名 所在院部计算机科学与信息工程学院专业、班级设计要求:设计一个飞机订票系统,具体要求如下: 1. 航班信息(包括航班号,起点站,终点站,机票数等) 2. 航班信息浏览 3. 按航班号排序 4. 查询航线:按航班号查询 5. 承办订票和退票业务 7. 保存到文件 8. 退出学生应完成的工作:1. 学生应认真学习参考程序,理解每个文件、每个函数以及各个变量的作用和意义。在此基础上进一步改进程序,最后正确地运行程序。2. 对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。测试时应注意对各种边缘情况进行测试。3.

2、完成课程设计报告。参考文献:1. 梁旭等 C程序设计课程设计 电子工业出版社 20112. 谭浩强 C程序设计(第四版) 清华大学出版社2010工作计划:1. 小组审题,查阅资料,进行设计前的必要资料准备(3天)。 2. 把程序完整运行出来(4天)。 3. 增加改进程序(3天)。 4. 写课程设计报告(3天)。 5. 提交课程设计报告及答辩(1天)任务下达日期:2013 年 6 月 10 日 任务完成日期:2013 年 6 月 23 日指导教师(签名): 学生(签名):目 录1 前言12 需求分析12.1要求12.2任务12.3运行环境12.4开发工具13 概要设计13.1系统流程图23.2查

3、询函数流程图24 详细设计25 改进或增加功能模块说明46 程序测试47 课程设计总结58 参考文献59 致 谢510 源程序5 飞机订票系统1 前言编写一个程序来完成航班订票。通过程序来完成航班信息录入功能(航班信息用文件保存) ,其中包括航班号、起始站、重点站、机票数等;航班信息浏览功能;按航班号排序;查询航线:按航班号查询;承办订票和退票业务。2 需求分析2.1要求(1)用C语言实现程序设计;(2)利用结构体、共用体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释。2.2任务(1)定义一个结构体类型

4、数组,包括航班号,起点站,终点站,机票数等;(2)输入航班号进行查询;(3)画出部分模块的流程图;(4)编写代码;(5)程序分析与调试。2.3运行环境(1)WINDOWS2000/XP系统(2)C+6.0编译环境2.4开发工具C语言3 概要设计3.1系统流程图飞机订票系统系统初始化增加航班信息航班信息浏览航班排序订票业务退票业务建立新数据文件从已有的数据文件读取按航班号从小到大排序按航班号从大到小排序查找航班信息按航班号查找退出并保存3.2查询函数流程图数据文件是否存在输入航班信息并建立新数据文件保存下来从已有的数据文件读取已有的航班信息Y初始化结束N4 详细设计在程序的开头部分定义了结构替类

5、型,用来存放按钮信息通过这些为形成整个界面提供了大的前提。struct airline *start;struct airline airMAXSIZE= beijing, 1, B8571, SUN, 3, 1, shanghai,2,S1002,MON,2,5, london,3,L1003,FRI,1,3;void display(struct airline *info) printf(%8st%3st%st%4st%dt%dtn,info-ter_name,info-air_num,info-plane_num,info-date,info-tkt_amt,info-tkt_sur)

6、; /* 浏览航线信息函数 */void list() struct airline *info; int i = 0; info = start; printf(终点站名t航班号t飞机号t飞行日期 乘员定额 余票量n); while(i MAXSIZE) display(info); info+; i+; printf(nn);void search() struct airline *info,*find(); char name10; int i=0; info=start; printf(请输入终点站名:); scanf(%s,name); while(iter_name) break

7、;info+;i+;if(i=MAXSIZE)printf(对不起,该航线未找到!n);elseprintf(终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n);display(info);struct airline *find() struct airline *info; char number10; int i=0; info=start; printf(请输入航班号:); scanf(%s,number); while(iair_num) return info; info+; i+; printf(对不起,该航线末找到!n); return NULL; /* 浏览已订票客户信

8、息 */void prtlink() linklist *p; struct airline *info; info=find(); p=info-order; if(p!=NULL) printf(客户姓名 订票数额 舱位等级n); while(p) printf(%stt%dt%dn,p-name,p-ord_amt,p-grade); p=p-next; else printf(该航线没有客户信息!n);linklist *insertlink(linklist *head,int amount,char name,int grade) linklist *p1,*new1;p1=hea

9、d;new1=(linklist *)malloc(sizeof(linklist);if(!new1) printf(nOut of memory!n);return NULL;strcpy(new1-name,name);new1-ord_amt=amount;new1-grade=grade;new1-next=NULL;if(head=NULL)head=new1;new1-next=NULL;elsehead=new1;new1-next=p1;return head;linkqueue appendqueue(linkqueue q,char name,int amount) qp

10、tr new1;new1=(qptr)malloc(sizeof(qnode);strcpy(new1-name,name);new1-req_amt=amount;new1-next=NULL;if(q.front=NULL)q.front=new1;elseq.rear-next=new1;q.rear=new1;return q;void order() struct airline *info;int amount,grade;char name10;info=start;if(!(info=find() return;printf(请输入你订票所需要的数量:);scanf(%d,&a

11、mount);if(amountinfo-tkt_amt) printf(n对不起,您输入的票的数量已经超过乘员定额!);return;if(amounttkt_sur)int i;printf(请输入您的姓名(订票客户):);scanf(%s,name);printf(请输入%s票的舱位等级:,name);scanf(%d,&grade);info-order=insertlink(info-order,amount,name,grade);for(i=0;itkt_amt-info-tkt_sur+i+1);info-tkt_sur-=amount;printf(n祝您乘坐愉快!n);el

12、se char r; printf(n已经没有更多的票,您需要排队等候吗?(Y/N);/r=getch();/printf(%c,r); scanf ( 回车继续等待%c, &r );if(r=Y|r=y) printf(n请输入您的姓名(排队订票客户):);scanf(%s,name);info-wait=appendqueue(info-wait,name,amount);printf(n注册成功!n);else printf(n欢迎您下次再次订购!n);void return_tkt() struct airline *info;qnode *t,*back,*f,*r;int grad

13、e;linklist *p1,*p2,*head;char cusname10;if(!(info=find() return;head=info-order;p1=head;printf(请输入你的姓名(退票客户):);scanf(%s,cusname);while(p1!=NULL) if(!strcmp(cusname,p1-name) break;p2=p1;p1=p1-next;if(p1=NULL) printf(对不起,你没有订过票!n);return;elseif(p1=head) head=p1-next;else p2-next=p1-next;info-tkt_sur+=

14、p1-ord_amt;grade=p1-grade;printf(%s成功退票!n,p1-name);free(p1);info-order=head;f=(info-wait).front;r=(info-wait).rear;t=f;while(t) if(info-tkt_sur = info-wait.front-req_amt)int i;info-wait.front=t-next;printf(%s订票成功!n,t-name);for(i=0;ireq_amt;i+)printf(%s的座位号是:%dn,t-name,(info-tkt_sur)-i);info-tkt_sur-

15、=t-req_amt;info-order=insertlink(info-order,t-req_amt,t-name,grade);free(t);break;back=t;t=t-next;if(info-tkt_sur)=(t-req_amt)&t!=NULL) int i;back-next=t-next;printf(%s订票成功!n,t-name);for(i=0;ireq_amt;i+)printf(s seat number is:%dn,t-name,(info-tkt_sur)-i);info-tkt_sur-=t-req_amt;info-order=insertlin

16、k(info-order,t-req_amt,t-name,grade);free(t);break;if(f=r) break;void sort_tkt()int j;struct airline t,*info,*p,*q;p=info=air;for(p=info;(p+1)-tkt_sur;p+)for(q=p+1;q-tkt_sur;q+)if(p-tkt_surtkt_sur)t=*p;*p=*q;*q=t;printf(终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n);for(j=0;jMAXSIZE;j+)display(info);info+;int menu_se

17、lect() int c; char s20; printf(ntt 航空客运订票系统(by zjhxmjl)n); printf( *n); printf( * 1.浏览航线信息 *n); printf( * 2.浏览已订票客户信息 *n); printf( * 3.查询航线 *n); printf( * 4.办理订票业务 *n); printf( * 5.办理退票业务 *n); printf( * 6.查看剩余票数并排序 *n); printf( * 0.退出系统 *n); printf( *n); do printf(请选择:); scanf(%s,s); c = atoi(s); /*

18、 atoi将字符串转换为整型 */ while(c 7); return c;int main() start = air; for(;) switch(menu_select() case 1:list();break; case 2:prtlink();break; case 3:search();break; case 4:order();break; case 5:return_tkt();break; case 6:sort_tkt();break; case 0:printf(n欢迎使用本系统,再见!n);exit(0); printf(nPress any key to continue!n); getchar(); return 0; 通过调用上面定义的函数实现了飞机订票整个功能。5 改进或增加功能模块说明6 程序测试(1)测试系统能否正确显示菜单选项执行程序后,显示本系统的菜单选项界面,如图6-1所示。图6-1飞机订票系统主界面(2)测试系统能否正确显示机票信息输入如下数据:终点站名 航班号 飞机号 飞行日期 成员定额 余票量Beijing 1 B8571 SUN 3 1Shanghai

温馨提示

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

评论

0/150

提交评论