




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*实践教学* 兰州理工大学计算机与通信学院2014年春季学期 C程序设计 课程设计题 目: 航班信息管理系统 专业班级: 信息与计算科学 姓 名: 学 号: 指导教师: 成 绩: 前言今年来随着人们生活水平的提高,外出旅行的人越来越多,而飞机以其舒适,便捷的优点开始成为越来越多旅客的选择,随着乘机人员的越来越多,一个好的机场信息管理系统变得越来越重要。航班管理系统是一个数据应用系统,航班中的所有信息都是保存在数据库中。在数据库系统的应用开发过程中,数据库设计是一个非常重要的问题。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。好的数据库结构的设计会减少数据库的存储量,数据的完整性和一致性会比较高,系统具有较快的反应速度,简化基于数据库的应用程序的实现等等。本文将介绍的是我设计的一种机场航班信息管理系统,可以为高效有序的管理组织机场的生产与服务,有效提高机场服务的运营效率及服务质量,提高机场的盈利与竞争水平,以保证为旅客,航空公司以及机场自身的业务发展管理提供一致,及时,准确,系统,完整的信息服务功能。摘要近些年来,我国民航事业取得了飞速的发展,与此同时计算机软件技术、数据库技术、信息技术也取得到了长足的发展与广泛的应用。技术的进步一方面提高了机场信息化的要求、另外一方面也使得企业信息化的环境日益复杂。一个好的航班管理系统必须能够合理的规划航班信息,为高效有序地管理组织机场的生产与服务,有效提高机场的运营效率及服务质量,提高机场的赢利与竞争水平,以保证为旅客、航空公司以及机场自身的业务管理提供一致、及时、准确、系统、完整的信息服务功能。本次我的软件工程作业就是应对于机场信息化要求,探讨了在机场复杂的信息化环境下的航班信息管理系统的方法与过程。一个机场的航班信息,就是这个机场运营的所有航班的实时信息,包括值机信息、登机信息、到港信息、离港信息、行李转盘信息等等,它们为旅客登机转机、亲友接机和各类人员工作提供了必不可少的服务。而我设计的机场航班管理系统就是用于管理机场航班信息的。关键词:航班、信息、管理、软件工程目录一、需求分析1二 、总体设计1.程序的总体设计1.数据结构2三、 详细设计33.1主控模块设计33.2 航班信息录入模块43.2.1 Input函数流程图53.3航班信息浏览模块63.4航班操作模块73.5订票系统模块83.6退票系统模块93.7航班信息保存模块10四、主要函数功能描述114.1 航班信息录入函数enter()114.2航班信息浏览函数browse()114.3 订票函数book()124.4 保存函数save()13五、 测试与调试135.1输入航班测试135.2浏览航班测试165.3航班操作测试165.4订票测试185.5退票测试18设计总结19参考文献19附录 源代码19一、需求分析(1)问题根据需求,该系统所应包含的信息有以下一些:航班起飞地点,起飞时间,降落地点,票价,最大乘客数,已售票数根据需求,该系统所应实现的功能有以下一些:菜单选择功能;航班信息的录入功能;航班信息的浏览功能;订票功能;退票功能。(2)系统 采用C语言实现,开发环境为VC,可以运行在操作系统windows98及以上皆可。(3)运行要求 能不受限制的录入通讯录信息 界面友好,操作方便,例如删除前需要提示用户是否删除 容错性强,例如数据导出时,如果文件不存在需要提示用户。二 、总体设计菜单选择模块航班信息浏览功能模块航班信息查询功能模块机票预订功能模块机票退订功能模块航班信息管理系统航班信息录入功能模块.程序的总体设计图1 航班管理系统功能模块图 根据需求描述,本人按照结构化程序设计的原则将整个系统划分若干个功能模块。 系统各子模块的设计如下: (1)输入记录模块输入记录模块主要功能描述(2)更新记录模块更新记录模块主要功能描述(3)查询记录模块模块主要功能描述(4)输出记录模块模块主要功能描述.数据结构根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下:数据项名称数据项系统表示数据类型数据长度备注航班代号ID字符串10飞机起飞地点 BePlace字符串10飞机降落终点EnPlace字符串10飞机起飞时间data字符串15飞机最大乘客人数max整型飞机票价price整型飞机已售票数 num整型使用C语言创建的结构体如下:typedef struct plane char ID10; /*航班代号*/ char BePlace10; /*飞机起飞地点*/ char EnPlace10; /*飞机降落终点*/ char data15; /*飞机起飞时间*/ int max; /*飞机最大乘客人数*/ int price; /*飞机票价*/int num; /*飞机已售票数*/三、 详细设计3.1主控模块设计控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程如图2所示。YYNYNYbrowse())enter()()()menu1()book()())back()save()n=6n=7load()结束n=2n=3n=4n=5n=1w1=1w1=0w1=1开始定义变量 n,w1cls 清屏输出主目录输入nn8输出“your choise is not between 1 and 8,please input enter to choice again”switch(n)NNNNNNNYYYYY 图2 主控制程序流程图注释:选择17不同的数字进入不同的功能模块,其中1表示输入新航班,2表示航班浏览,3表示航班操作,4表示订票,5表示退票,6表示保存,7表示载入,8表示退出系统。3.2 航班信息录入模块录入新的航班信息程序流程图如图3开始定义变量 icls 清屏输入ni=0in输出“输入第n+1个航班记录”调用 input()函数i+menu()结束NY图3 航班信息录入流程图3.2.1 Input函数流程图开始定义变量 icls 清屏输出“请输入航班的数目”输出“请输入起飞地点”输出“请输入降落地点”输出“请输入起飞时间”输出“请输入航班的最大载客人数”输出“请输入航班票价”结束图4 input函数流程图注释:input函数是航班信息录入模块需要调用的函数3.3航班信息浏览模块 航班信息浏览模块程序图如图4结束menu()开始定义变量 icls 清屏输出航班信息i=0in调用 printf_one(i)调用 printf_one(i)输入ni+NY图5 航班信息浏览流程图3.4航班操作模块 航班操作模块流程图如图5NNNNn=1Order()n=2search time()n=3search end()n=4menu()结束开始定义变量 icls 清屏输出主目录输入nn4w1=1输出“your choise is not between 1 and 4,please input again”w1=0w1=1switch(n)NYYYYY 图6 航班操作流程图3.5订票系统模块开始定义变量icls 清屏输出“欢迎进入售票窗口!”i=search()k!=-1tii.num=tii.max输出“该趟航班票已售完!”tii.num+输出“订票成功!”输出“该航班不存在!”menu()结束NNYY 订票函数流程图如图7图7 订票系统函数流程图menu()结束输出“NO exist!”输出“退票成功!”k=-1tii.num-i+k=i开始定义变量 i,k=-1定义结构体 scls 清屏输出“欢迎进入退票窗口!”输出“输入航班代号”输入“s.ID”i=0in比较(s.ID,tii.ID)=0调用的记录NNNYYY3.6退票系统模块 退票函数流程图如图8 图8退票系统函数流程图3.7航班信息保存模块YYNNNY输出“file save ok!”i+输出“file write error!”w=0开始定义变量 w=1定义文件指针*fp定义变量 icls 清屏(fp=fopen(D:Backup我的文档exercises6.13ZC15ticket.txt,wt)=NULL输出“Cannot open file”i=0in写(&tii,sizeof(struct plane),1,fp)!=1fwrite(&tii,sizeof(struct plane),1,fp)!=1w=1关闭(fp)menu()结束 图9航班信息保存函数流程图四、主要函数功能描述4.1 航班信息录入函数enter()函数原型void enter()功能描述:先输入需要录入的航班数,再调用输入函数input(),逐一录入每一次航班的所有信息,录入完毕则返回功能主菜单。函数流程图如图3 所示主要代码为: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);4.2航班信息浏览函数browse()函数原型:void browse() 功能描述:选择航班信息浏览选项2,进入航班信息浏览界面,所有航班的信息则会显示在主界面,每一次航班信息包括:航班代号,起飞地点,降落地点,起飞时间,票价,最大乘客,已售票数。函数流程图如图5所示主要代码为:void browse()int i;system( cls ); puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间票价 最大乘客 已售票数n);for(i=0;i=tii.max)printf(n该趟航班票已售完!); elsetii.num+;printf(n订票成功!n);elseprintf(该航班不存在!n);getchar(); getchar(); /*按任意健*/menu();4.4 保存函数save()函数原型:void save()功能描述:先打开ticket.txt文档,把航班状态信息写入该文档里,保存好后关闭文档。函数流程图如图9所示主要代码为:void save()int w=1;FILE *fp;int i;system( cls ); if(fp=fopen(ticket.txt,wb)=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();五、 测试与调试5.1输入航班测试系统菜单选择界面如下:图10选择1进入图11输入2跳转到输入航班信息第1条 航班输入:航班代号:MU2065,起飞地点:兰州,降落地点:南京,起飞时间:2014年7月20日12:30,最大载客人数:300,航班票价:800;第2条 航班输入:航班代号:HU2780,起飞地点:兰州,降落地点:上海,起飞时间:2014年7月21日21:54,最大载客人数:350,航班票价:946;则显示如下:图12图135.2浏览航班测试航班信息输入结束则返回菜单主界面如图10选择2进入航班浏览界面图145.3航班操作测试选择3进入航班操作图15选择1按时间排序如图16图16选择3按地点查找航班如图17图17 5.4订票测试 选择4进入主菜单后选择4进入订票如图18所示输入起飞地点:兰州,降落地点:南京,起飞时间:12:30图185.5退票测试选择5进入退票系统如图19输入航班代号:MU2065图19 选择8后退出测试设计总结 通过这次课程设计,我对复杂程序的开发有了一个深刻的认识,使我进一步明白了模块化思想在程序开发中的重要性。也是我明白了在平时的学习生活中一定要努力才能在真正用到时运用自如。这次课程设计中还深入学习了优化算法的各种思想,加深了对指针概念的理解,也较好的掌握了指针的使用方法。通过这次课程设计学会了在实践中运用所学的知识,并通过翻阅资料增加了自己的知识面,对C语言调用其他可执行文件和图形界面的设计有了新的识和了解,并运用在这次课程设计中,使我受到了锻炼,受益匪浅,同时也深入学习了算法的思想,指针的使用方法,为我以后的应用打下了坚实的基础,相信有因为这次课程设计,会使我对C语言有更深入的认知,以及能较好的掌握它,在以后的实践中能运用自如。在这次课程设计中学会了贯通运用所学的知识,通过翻阅大量资料学习了新的知识。在这次课程设计中对C语言中调用其他可执行文件和图形界面的设计思路有了新的认识和了解,并运用在其中,发现C语言作用的强大。参考文献1 严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,20072 张长海.C语言程设计M.北京:高等教育出版社,20063 陈建新,李志敏.数据结构实验指导与课程设计教程.北京:科学出版社,20104 吴玉蓉,李劲.数据结构(C语言版).北京:中国水利水电出版社,20085 谭浩强 .C语言程设计. 北京:清华大学出版社,20056王为青,刘变红. C语言高级编程及实例剖析.北京:人民邮电出版社,2007附录 源代码#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; printf(The ordered data is:n);puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间票价 最大乘客 已售票数n);for(i=0;in;i+)printf_one(i);printf(n);getchar();getchar();menu1();void search_time()int i,m=0;struct plane s;system( cls ); printf(nnEnter the time:);scanf(%s,s.data); /*输入出发的时间*/puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间票价 最大乘客 已售票数n);for(i=0;in;i+)if(strcmp(s.data,tii.data)=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_time();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.BePlace); /*输入要到达的地方*/printf(nn请输入要订票的降落地点:);scanf(%s,s.EnPlace); printf(nn请输入要订票的起飞时间:);scanf(%s,s.data); /*输入出发的时间*/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,wb)=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);ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏州工地疫情防控应急预案(3篇)
- 门诊楼治安保卫应急预案(3篇)
- 儿科护士换错药应急预案(3篇)
- 成都艺术职业大学《小型公共建筑设计原理》2024-2025学年第一学期期末试卷
- 危险化学品领域应急预案(3篇)
- 宿迁学院《论文与写作》2024-2025学年第一学期期末试卷
- 衡水健康科技职业学院《中国现代社会概况(二)》2024-2025学年第一学期期末试卷
- 延安大学西安创新学院《职业核心能力数据库原理与应用》2024-2025学年第一学期期末试卷
- 辽宁大学《机器人视觉技术》2024-2025学年第一学期期末试卷
- 湖南中医药大学湘杏学院《语文教学设计与案例分析》2024-2025学年第一学期期末试卷
- 《突破式沟通技巧》培训课件:高效沟通赋能成长
- 中学学生会检查细则说明表格
- TLYCY 3071-2024 森林草原防火无人机监测技术规范
- 《急诊科患者气道管理》课件
- 人教版初中九年级全册英语单词表(完整版)
- 合伙人股权激励制度
- 导尿管相关尿路感染预防与控制
- 《新媒体写作与传播(第2版)》教学大纲、课程标准、习题答案
- 骨质疏松症完整版本
- 国企投资后评价操作实务
- 中国古代文学史明代文学
评论
0/150
提交评论