收藏 分销(赏)

飞机订票系统.doc

上传人:a199****6536 文档编号:1283241 上传时间:2024-04-20 格式:DOC 页数:15 大小:146.04KB
下载 相关 举报
飞机订票系统.doc_第1页
第1页 / 共15页
飞机订票系统.doc_第2页
第2页 / 共15页
飞机订票系统.doc_第3页
第3页 / 共15页
飞机订票系统.doc_第4页
第4页 / 共15页
飞机订票系统.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

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 cont

19、inue!n); getchar(); return 0; 通过调用上面定义的函数实现了飞机订票整个功能。5 改进或增加功能模块说明6 程序测试(1)测试系统能否正确显示菜单选项执行程序后,显示本系统的菜单选项界面,如图6-1所示。图6-1飞机订票系统主界面(2)测试系统能否正确显示机票信息输入如下数据:终点站名 航班号 飞机号 飞行日期 成员定额 余票量Beijing 1 B8571 SUN 3 1Shanghai 2 S1002 MON 2 5London 3 L1003 FRI 1 3进入主菜单界面后,输入数字1进入浏览航线信息,根据提示输入你要进行的操作的序号,就能完成你要进行的操作。图6-2 输入浏览航线信息界面7 课程设计总结 本程序在刚开始调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时,可根据提示运行本程序,得到结果。8 参考文献1张福祥. C语言程序设计M. 辽宁大学出版社,2008.12 张福祥,王萌C语言程序设计习题解答与实验实训M沈阳:辽宁大学出版社,20083 牛莉,刘远军等计算机等级考试辅导教程M北京:中国铁道出版社,20089 致 谢 13

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服