(完整word版)飞机订票系统_第1页
(完整word版)飞机订票系统_第2页
(完整word版)飞机订票系统_第3页
(完整word版)飞机订票系统_第4页
(完整word版)飞机订票系统_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

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

文档简介

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

2、1. 梁旭等 C程序设计课程设计电子工业出版社 20112. 谭浩强 C程序设计(第四版)清华大学出版社2010 工作计划:1.小组审题,查阅资料,进行设计前的必要资料准备( 把程序完整运行出来(4天)。 增加改进程序(3天)。 写课程设计报告(3天)。提交课程设计报告及答辩(1天) 日 日2.3.4.5.任务下达日期:2013 年6月10任务完成日期:2013 年6月 23指导教师(签名):3天)。1前言 2需求分析2.1要求2.2任务2.3运行环境.2.4开发工具.3概要设计3.1系统流程图.3.2查询函数流程图.4详细设计5改进或增加功能模块说明116程序测试117课程设计总结138参考

3、文献.13.1310源程序.13飞机订票系统1刖言编写一个程序来完成航班订票。通过程序来完成航班信息录入功能(航班信息用文件保存),其中包括航班号、起始站、重点站、机票数等;航班信息浏览功能;按航班号排序;查询航线:按航班号查询;承办订票和退票业务。2需求分析2.1要求用C语言实现程序设计;利用结构体、共用体进行相关信息处理;画出查询模块的流程图;(5)系统的各个功能模块要求用函数的形式实现; 界面友好(良好的人机互交),程序要有注释。2.2任务9(1)(2)(3)(4)(5)定义一个结构体类型数组,包括航班号,起点站,终点站,机票数等; 输入航班号进行查询;画出部分模块的流程图;编写代码;程

4、序分析与调试。2.3运行环境(1) WINDOWS2000/XP 系统(2) C+6.0编译环境2.4开发工具C语言3概要设计3.1系统流程图3.2查询函数流程图4详细设计在程序的开头部分定义了结构替类型,用来存放按钮信息struct airlineChar ter_name10;/* 点名 */ charair_numJ10;产航班号 */ char planejiunj1iOJ* 飞机号 */ char date7; /* 飞行日期 */ /* 乘员定前 */ inttkUui;:严余票量*/linklist *orderlinkqueuewait:llineinfo,通过这些为形成整个界

5、面提供了大的前提。struct airli ne *start;struct airli ne airMAXSIZE="beij in g", "1", "B8571", "SUN", 3, 1,"sha nghai","2","S1002","MON",2,5,"lo ndo rr,"3","L1003","FRI",1,3;void dis play(struct

6、 airli ne *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 *info;int i = 0;info = start;printf("终点站名t航班号t飞机号t飞行日期” ”乘员定额”"余票量n");wh

7、ile(i < MAXSIZE)dis pl ay(i nfo);in fo+;i+;prin tf("nn");void search()struct airli ne *in fo,*fi nd();char n ame10;int i=0;in fo=start;printf(”请输入终点站名:");sca nf("%s", name);while(i<MAXSIZE) if(!strc mp(n ame,i nfo->ter_ name) break;in fo+;i+;if(i>=MAXSIZE)printf(

8、"对不起,该航线未找到!n");else printf("终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n");dis play(i nfo);struct airli ne *find()struct airli ne *info;char nu mber10;int i=0;in fo=start;printf(”请输入航班号:");sca nf("%s", nu mber);while(i<MAXSIZE)if(!strc mp(nu mber,i nfo->air_ num) retur n inf

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

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

11、nt;n ew1->grade=grade;new1- >n ext=NULL;if(head=NULL) head=new1; new1- >n ext=NULL; else head=new1;n ew1- >n ext =p1;retur n head;lin kqueue appen dqueue(l in kqueue q,char n ame,i nt amount) qptr n ew1;n ew1= (qp tr)malloc(sizeof( qno de);strc py(n ew1- >n ame ,n ame);n ew1->req_a

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

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

14、;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 ("回车继续等待 %c", &r );if(r='Y'|

15、r=y) printf("n请输入您的姓名(排队订票客户):”);sea nf("%s", name);in fo->wait=a ppen dqueue(i nfo->wait ,n ame,am oun t); printf("n 注册成功!n");else prin tf("n欢迎您下次再次订购! n");void return_tkt() struct airli ne *info;qnode *t,*back,*f,*r;int grade;lin klist *p 1,* p2,*head;char

16、cus name10;if(!( in fo=fi nd() retur n;head=info-> order;P1=head;printf("请输入你的姓名(退票客户):”);sca nf("%s",cus name);while( p1!=NULL) if(!strcm p( cus name ,p1->n ame) break;p2=p1;p1=p1->n ext;if(p 1=NULL) printf(” 对不起,你没有订过票!n");return;else if(p 1=head) head=p1->n ext;els

17、e p2->n ext=p1->n ext;in fo->tkt_sur+=p1->ord_amt;grade=p 1->grade;printf("%s 成功退票! n",p 1->name);free (p 1);info-> order=head;f=(i nfo->wait).fr ont;r=(i nfo->wait).rear;t=f; while(t)if(i nfo->tkt_sur = in fo->wait.fro nt->req_amt) int i;in fo->wait.

18、fro nt=t- >n ext;printf("%s 订票成功! n",t->name);for(i=0;i<t->req_amt;i+)printf("%s 的座位号是:%drr,t->name,(info->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;back=t;t=t- >n ex

19、t;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 fo->tkt_sur)-i);in fo->tkt_sur-=t->req_amt;info

20、-> 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=in fo;( p+1)->tkt_sur; p+) for(q=p +1;q->tkt_sur;q+) if(p->tkt_sur<q->tkt_sur) t=* p; *p=*q;*q=t;printf("

21、;终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n");for(j=0;j<MAXSIZE;j+) dis play(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");printf(” * 3.查询航线 *n");printf(” * 4.办理订票业务*n"

22、);printf(” * 5.办理退票业务*n");printf(” * 6.查看剩余票数并排序*n");printf(” * 0.退出系统 *n");printf(" *n");do15printf("请选择:”);/* atoi将字符串转换为整型 */scan f("%s",s); c = atoi(s);while(c < 0|c > 7);return c;int mai n()start = air;for(;)switch(me nu _select()case 1:list();break

23、;case 2:p rtli nk();break;case 3:search();break;case 4:order();break;case 5:retur n_tkt();break;case 6:sort_tkt();break;case 0:prin tf("n 欢迎使用本系统,再见! n");exit(0);prin tf("nP ress any key to con ti nu e!n");getchar();return 0;通过调用上面定义的函数实现了飞机订票整个功能。改进或增加功能模块说明程序测试(1).测试系统能否正确显示菜单选

24、项执行程序后,显示本系统的采单选项界面,如图6-1所示。尸一-"C:U sef5Admir i strdtorDes ktopDeb u gC p p航空售运订票系统(by ajhxmjl)丄上丄一丄一丄上丄-丄一丄一丄一-1-丄 丄一Jr-丄一丄一丄-丄丄丄一丄一丄一丄一JL-丄丄-一丄一丄一丄一丄一丄匚FT厂厂十十屮T *十二十T T申十十十十屮T T十厂厂1-4厂*十十十千厂严1厂护1. 浏!55航线信息+2. 浏览已订票容户信息料3. 查词航纟£ *4. 办理订票业努材5. 力,理退票业务+ 查看剩余禀数并排序枠1 .ll-l-l11-rl 1 J -1-11111 Jj 111111 -Il .111111 I 1 111-11 .1 d'-l111-1 T T TT T

温馨提示

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

最新文档

评论

0/150

提交评论