




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
飞机订票系统设计任务书飞机订票每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。提供以下功能:1、 航班信息录入功能(航班信息用文件保存):由黄子健完成2、 航班信息浏览功能:由章东火完成3、查询航班:3.1按航班号查询由余姗完成 3.2按终点站查询由章东火完成4、承办订票和退票业务由黄子健 余姗完成时间安排表:内容学时地点备注设计动员,布置任务0.5天Z140618周 周一上午写任务书0.5天寝室18周 周一下午 查看资料和已有的类似软件,分析课题应完成的功能,写程序1.5天机房 图书馆18周 周二18周 周三上午总体详细设计:调试写代码3.0天机房 图书馆18周 周四18周 周五18周 周六小组组装调试测试修改错误3.0天机房 寝室18周 周二19周 周三19周 周四机上验收程序运行效果1.0Z130919周 周五书写课程设计报告1.0寝室目 录1、任务书12、前言(需求分析)33、概要设计34、程序设计功能流程图55、详细设计和执行结果66、参考资料117、心得体会118、附录(源程序清单)21前 言1、 C语言课程设计的目的:高级语言课程设计是学习完高级语言程序设计课程后进行的一次全面的综合性上机实验。全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。2、 题目飞机订票系统设计 假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。通过该系统来实现机票的订购问题。1、要求: 试设计一个飞机订票系统,使之能提供下列功能: 1航班信息录入功能(航班信息用文件保存) 2航班信息浏览功能 3查询航线:(至少一种查询方式)按航班号查询 按终点站查询 4承办订票和退票业务2、分析:由于题目要求飞机的订票系统需用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、删除航班信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。概 要 设 计根据题目要求,可以将系统分为六个模块:1) 系统以菜单方式工作模块;2) 航班信息录入模块;3) 航班信息浏览模块;4) 按航班号和终点站查询模块;5) 按订票和退票模块;6) 加载模块。系统总体结构订票系统void bookticket()流程图开始详细设计按航班号查找模块:void search_ID()int i,m=0;struct plane s;system( cls ); printf(nnEnter the ID:);scanf(%s,s.ID); /*输入航班号/puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n);for(i=0;in;i+)if(strcmp(s.ID,tii.ID)=0)m+; if(m!=0)&(m%10=0) /*目的是分屏显示*/ printf(nnPress any key to contiune . . .);getchar();puts(nn); printf_one(i); printf(n);/*调用显示一个记录的函数*/puts(n-);getchar(); /*按任意健*/getchar(); menu1();订票模块:int search() /*查找模块*/int i,k;struct plane s;k=-1;system( cls ); printf(nn请输入要订票的航班号:);scanf(%s,s.ID); /*输入要到达的地方*/for(i=0;i=tii.max)printf(n该趟航班票已售完!); elsetii.num+;printf(n订票成功!n);elseprintf(该航班不存在!n);getchar(); getchar(); /*按任意健*/menu();菜单模块void menu() int n,w1; do system( cls ); /*清屏*/ /*清屏*/ puts(tttt 飞机售票管理系统!nn); puts(tt*MENU*nn); puts(tttt1.输入新航班); puts(tttt2.浏览 ); puts(tttt3.航班操作); puts(tttt4.订票); puts(tttt5.退票); puts(tttt6.保存); puts(tttt7.载入); puts(tttt8.退出); puts(nntt*n); printf(Choice your number(1-8): bb); scanf(%d,&n); if(n8) /*对选择的数字作判断*/ w1=1; printf(your choice is not between 1 and 8,Please input enter to choice again:); getchar(); getchar(); else w1=0; while(w1=1); /*选择功能*/ switch(n) case 1:enter();break; /*输入模块*/ case 2:browse();break; /*浏览模块*/ case 3:menu1();break; /*查找模块*/ case 4:book();break; /*订票模块*/ case 5:back();break; /*退票模块*/ case 6:save();break; /*保存模块*/ case 7:load();break; /*加载模块*/ case 8:exit(0); void menu1()int n,w1; do system( cls ); /*清屏*/ puts(tttt 飞机售票操作!nn); puts(tt*MENU*nn); puts(tttt1.按照时间排序); puts(tttt2.按照航班号查找航班); puts(tttt3.按照终点站查找航班); puts(tttt4.返回主菜单); puts(nntt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if(n4) /*对选择的数字作判断*/ w1=1; printf(your choice is not between 1 and 4,Please input again:); getchar(); getchar(); else w1=0; while(w1=1); /*选择功能*/ switch(n) case 1:order();break; case 2:search_ID();break; case 3:serch_end();break; case 4:menu();break; 执行结果:按航班号查找:订票:参考资料:C程序设计教程 (第三版) 谭浩强 著 清华大学出版社 心得体会:经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并与同组成员共同完成设计、编写、调试和测试应用程序及编写文档的任务。附录:源程序清单:#include #include #include #define N 1000typedef struct plane char ID10; /*航班代号*/char BePlace10; /*飞机起飞地点*/char EnPlace10; /*飞机降落终点*/char data15; /*飞机起飞时间*/int max; int price;int num;PLANE;PLANE tiN;int n;void menu();void menu1();void input(int i)printf(请输入航班代号:n);scanf(%s,tii.ID);printf(请输入起飞地点:n);scanf(%s,tii.BePlace);printf(请输入降落地点:n);scanf(%s,tii.EnPlace);printf(请输入起飞时间:n);scanf(%s,tii.data);printf(请输入航班的最大载客人数:n);scanf(%d,&tii.max);printf(请输入航班的票价:n);scanf(%d,&tii.price);tii.num=0;void enter()int i; system( cls ); printf(请输入航班的数目(0-%d)?:,N);scanf(%d,&n); /*要输入的记录个数*/printf(n请输入数据nn);for(i=0;in;i+) printf(n请输入第 %d 航班记录.n,i+1); input(i); /*调用输入函数*/ getchar(); menu();void printf_one(int i) /*显示一个记录的函数*/printf(%11s %6s %10s %6s %6d %6d %6d,tii.ID,tii.BePlace,tii.EnPlace,tii.data,tii.price,tii.max,tii.num);void browse()int i;system( cls ); puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n);for(i=0;in;i+)printf_one(i);printf(n);getchar();getchar();menu();void order() /*排序模块(按平均成绩)*/int i,j;struct plane s;system( cls ); for(i=0;in;i+) /*冒泡法排序*/for(j=i+1;j0)s=tii; tii=tij;tij=s; browse();void search_ID()int i,m=0;struct plane s;system( cls ); printf(nnEnter the ID:);scanf(%s,s.ID); /*输入航班号*/puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n);for(i=0;in;i+)if(strcmp(s.ID,tii.ID)=0)m+; if(m!=0)&(m%10=0) /*目的是分屏显示*/ printf(nnPress any key to contiune . . .);getchar();puts(nn); printf_one(i); printf(n);/*调用显示一个记录的函数*/puts(n-);getchar(); /*按任意健*/getchar(); menu1();void serch_end()int i,m=0;struct plane s;system( cls ); /*清屏*/printf(nnEnter the end Place:);scanf(%s,s.EnPlace); /*输入要到达的地方*/puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n);for(i=0;in;i+)if(strcmp(tii.EnPlace,s.EnPlace)=0)m+; if(m!=0)&(m%10=0) /*目的是分屏显示*/ printf(nnPress any key to contiune . . .);getchar();puts(nn); printf_one(i); printf(n);/*调用显示一个记录的函数*/puts(n-);getchar(); /*按任意健*/getchar(); menu1();void menu1()int n,w1; do system( cls ); /*清屏*/ puts(tttt 飞机售票操作!nn); puts(tt*MENU*nn); puts(tttt1.按照时间排序); puts(tttt2.按照航班号查找航班); puts(tttt3.按照终点站查找航班); puts(tttt4.返回主菜单); puts(nntt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if(n4) /*对选择的数字作判断*/ w1=1; printf(your choice is not between 1 and 4,Please input again:); getchar(); getchar(); else w1=0; while(w1=1); /*选择功能*/ switch(n) case 1:order();break; case 2:search_ID();break; case 3:serch_end();break; case 4:menu();break; int search() /*查找模块*/int i,k;struct plane s;k=-1;system( cls ); printf(nn请输入要订票的航班号:);scanf(%s,s.ID); /*输入要到达的地方*/for(i=0;i=tii.max)printf(n该趟航班票已售完!); elsetii.num+;printf(n订票成功!n);elseprintf(该航班不存在!n);getchar(); getchar(); /*按任意健*/menu();void back()int i,k=-1;struct plane s;system( cls ); printf(欢迎进入退票窗口!n);printf(nn输入航班代号:);scanf(%s,s.ID); /*输入要到达的地方*/ for(i=0;in;i+) /*查找要修改的数据*/if(strcmp(s.ID,tii.ID)=0)k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/if(k=-1) printf(nnNO exist!);else tii.num-; printf(n退票成功!n);getchar(); /*按任意健*/getchar(); /*按任意健*/menu();void save()int w=1;FILE *fp;int i;system( cls ); if(fp=fopen(ticket.txt,wt)=NULL) /*以输出打开方式,在此前的记录被覆盖*/printf(nCannot open filen);return ; for(i=0;in;i+)if(fwrite(&tii,sizeof(struct plane),1,fp)!=1) printf(file write errorn);w=0;if(w=1) printf(file save ok!n);fclose(fp);getchar();getchar(); menu();void load()FILE*fp;int i,w;w=1;system( cls ); if(fp=fopen(ticket.txt,rt)=NULL)printf(nCannotopen filen);w=0; return ;n=0;for(i=0;!feof(fp);i+)fread(&tii,sizeof( struct plane),1,fp);n+;n=n-1;fclose(fp);if(w=1)printf(Load file
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同没到期如何签约协议
- 口罩代加工居间合同范本
- 师德师风协议书2025
- pocib出口合同范本
- 联通5g网络共享协议书
- 2000押金转让协议书
- 劳动合同期满解除协议书
- 劳务费三方协议合同范本
- 合同买卖变更协议书范本
- 企业还款协议书2025
- 2025云南昆明巫家坝建设发展有限责任公司招聘23人笔试备考题库及答案解析
- 2024年山东省节能与双碳促进中心招聘真题
- 热电厂锅炉安全知识培训课件
- 2025年汽车驾驶员技师资格证书考试及考试题库含答案
- 化工防护用品知识培训课件
- 2025-2026学年统编版小学语文四年级上册教学计划及进度表
- KTV突发事件安全应急预案
- 中资企业在非洲的安全风险应对策略与启示
- 2025年高考(陕西、山西、青海、宁夏卷)历史真题及答案
- 中职中专入学开学第一课正视职业教育开启未来征程课件
- 劳动课洗衣服课件
评论
0/150
提交评论