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

下载本文档

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

文档简介

1、课程设计任务书设计题目飞机订票系统学生姓名缶十R宀立2 计算机科学与圭丁圧细所在院部信息工程学院专业、班级设计要求:设计一个飞机订票系统,具体要求如下: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开发工具1 3概要设计3.1系统流程图.3.2查询函数流程图34详细设计35改进或增加功能模块说

3、明 116程序测试117课程设计总结1.38参考文献.139致 谢.1310源程序.13飞机订票系统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查询函数流程图4详细设计在程序的开头部分定义了结构替类型,用来存放按钮信息struct airlinednar ter jnam规10;/站点名7dnar air num10;/char plane numflOl;/1-航班号>”飞机号7char date7; /* 飞行日期inttkLamt; /* 乘员定额 7int tkt sur; /*余票

5、量Vlinklist 'ordter linkqueue wait: Jlineinfo;通过这些为形成整个界面提供了大的前提。struct airline *start;struct airli ne airMAXSIZE="beiji ng", "1", "B8571", "SUN", 3, 1,"sha nghai","2","S1002","MON",2,5,"lo ndo n","3&qu

6、ot;,"L1003","FRI",1,3;void display(struct airline *info)prin tf("%8st%3st%st%4st%dt%dtn",i nfo->ter_name,i nfo->air_num,i nfo->pla ne_nu m,i nf o->date,i nfo->tkt_amt,i nfo->tkt_sur);/*浏览航线信息函数*/void list()struct airli ne *i nfo;int i = 0;info = start;

7、printf("终点站名t航班号t飞机号t飞行日期""乘员定额""余票量n"); while(i < MAXSIZE)display(i nfo);in fo+;i+;prin tf("nn");void search()struct airline *info,*find();char n ame10;int i=0;in fo=start;printf("请输入终点站名:”);sca nf("%s", name);while(i<MAXSIZE)if(!strcmp(n

8、ame,info->ter_name) break;in fo+;i+;if(i>=MAXSIZE)printf("对不起,该航线未找到!n");elseprintf(”终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n"); display(i nfo);struct airli ne *fin d()struct airline *info;char nu mber10;int i=0;in fo=start;printf("请输入航班号:");sca nf("%s", nu mber);while(i&

9、lt;MAXSIZE)if(!strcmp(number,info->air_num) return info;in fo+;i+;printf("对不起,该航线末找到!n");return NULL;/*浏览已订票客户信息*/void prtli nk()lin klist *p;struct airli ne *info;in fo=fi nd();p=i nfo_> order;if(p!=NULL)printf("客户姓名订票数额舱位等级n");while(p)prin tf("%stt%dt%dn",p->

10、n ame,p->ord_amt,p->grade); p=p->n ext;elseprintf("该航线没有客户信息!!n");lin klist *in sertli nk(l in klist *head,i nt amoun t,char n ame,i nt grade) lin klist *p1,* new1;p仁head;n ew1=(l in klist *)malloc(sizeof(li nklist);if(!n ew1) pri ntf("nOut of memory!n");return NULL;strc

11、py (n ew1- >n ame ,n ame);n ew1->ord_amt=am ount;n ew1->grade=grade;new1-> next=NULL;if(head=NULL)head=new1; new1- >n ext=NULL;elsehead=new1;n ew1- >n ext=p1;retur n head;lin kqueue appe ndqueue(l in kqueue q,char n ame,i nt amount) qptr n ew1;n ew1=(qptr)malloc(sizeof( qno de);str

12、cpy (n ew1- >n ame ,n ame);n ew1->req_amt=am ount;new1-> next=NULL;if(q.fro nt=NULL)q.front=n ew1;elseq.rear- >n ext =n ew1;q.rear =n ew1;return q;void order() struct airli ne *info;int amoun t,grade;char n ame10;in fo=start;if(!(i nfo=fi nd() return;printf("请输入你订票所需要的数量:”);scan f(&

13、quot;%d",&amou nt);if(am oun t>i nfo->tkt_amt) printf("n对不起,您输入的票的数量已经超过乘员定额);return;if(am oun t<=i nfo->tkt_sur)int i;printf("请输入您的姓名(订票客户):");sca nf("%s", name);printf("请输入%s票的舱位等级:",name);scan f("%d",& grade);in fo->order=i

14、nsertli nk(i nfo->order,amou nt,n ame,grade);for(i=0;i<am oun t;i+)printf("%s 的座位号是:%dn",name,info->tkt_amt-info->tkt_sur+i+1);in fo->tkt_sur-=am ount;printf("n祝您乘坐愉快!n”);else char r;printf("n已经没有更多的票,您需要排队等候吗?(Y/N)");r=getch();/prin tf("%c",r);scanf

15、 ("回车继续等待 %c", &r );if(r='Y'|r='y') printf("n请输入您的姓名(排队订票客户):”);sca nf("%s", name);in fo->wait=appe ndqueue(i nfo->wait ,n ame,am oun t);printf("n 注册成功!n");else prin tf("n欢迎您下次再次订购!n");void return_tkt() struct airli ne *info;qnod

16、e *t,*back,*f,*r;int grade;lin klist *p1,*p2,*head;char cus name10;if(!(i nfo=fi nd() return;head=info-> order;p仁head;printf("请输入你的姓名(退票客户):");sca nf("%s",cus name);while(p1!=NULL) if(!strcmp(cus name,p1- >n ame) break;p2=p1;p1=p1- >n ext;if(p1=NULL) pri ntf("对不起,你没

17、有订过票!n");return;elseif(p1=head) head=p1- >n ext;else p2->n ext=p1- >n ext;in fo->tkt_sur+=p1->ord_amt;grade=p1->grade;printf("%s 成功退票! n",p1->name);free(pl);info-> order=head;f=(i nfo->wait).fro nt;r=(i nfo->wait).rear;t=f;while(t)if(i nfo->tkt_sur = i

18、n fo->wait.fro nt->req_amt)int i;in fo->wait.fro nt=t- >n ext;printf("%s 订票成功!n",t->name);for(i=0;i<t_>req_amt;i+)printf("%s 的座位号是:%dn",t->name,(info->tkt_sur)-i);in fo->tkt_sur-=t->req_amt;info-> order =in sertli nk(i nfo-> order,t->req_

19、amt,t- >n ame,grade); free(t);break;back=t;t=t- >n ext;if(i nfo->tkt_sur)>=(t->req_amt) &&t!=NULL) int i;back->n ext=t- >n ext;printf("%s 订票成功!n",t->name);for(i=0;i<t->req_amt;i+)prin tf("<%s>'s seat nu mber is:%dn",t->n ame,( in

20、 fo->tkt_sur)-i); in fo->tkt_sur-=t->req_amt;info-> order =in sertli nk(i nfo-> order,t->req_amt,t- >n ame,grade); free(t);break;if(f=r) break; void sort_tkt()int j;struct airli ne t,*i nfo,*p,*q;p=in fo=air;for(p=i nfo;(p+1)_>tkt_sur;p+)for(q=p+1;q_>tkt_sur;q+)if(p->tk

21、t_sur<q->tkt_sur)t=*p;*p=*q;*q=t;printf(”终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n");for(j=0;j<MAXSIZE;j+)display(i nfo);in fo+; int menu _select()int c;char s20;prin tf("ntt 航空客运订票系统(by zjhxmjl)n");printf(" *n");printf(" * 1.浏览航线信息*n”);printf(" * 2.浏览已订票客户信息*n");p

22、rintf(” * 3.查询航线*n");printf(" * 4.办理订票业务 *n");printf(" * 5.办理退票业务*n");printf(" * 6.查看剩余票数并排序*n");printf(” * 0.退出系统*n");printf(” *n");doprintf(” 请选择:”);scan f("%s",s);c = atoi(s);/* atoi将字符串转换为整型*/while(c < 0|c > 7);return c; int mai n()sta

23、rt = air;for(;)switch(me nu _select()case 1:list();break;case 2:prtli nk();break;case 3:search();break;case 4:order();break;case 5:retur n_tkt();break;case 6:sort_tkt();break;case 0:pri ntf("n欢迎使用本系统,再见! n");exit(0);prin tf("nPress any key to continu e!n");getchar();return 0;通过调用上面定义的函数实现了飞机订票整个功能。5改进或增加功能模块说明6程序测试(1).测试系统能否正确显示菜单选项执行程序后,显示本系统的菜单选项界面,如图6-1所示"CAU &ersAdmin i strdtorDes ktopDeb u gC p p l,exe"航空菩运订票系统(by zjhxmjl)上靶上4n|rk4W 二二上靶上十*+*+*1点弟航绒信息杠2

温馨提示

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

评论

0/150

提交评论