




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南城建学院课程设计报告书专 业:计算机科学与技术 课程设计名称:数据结构课程设计题 目:飞机订票系统班 级:0814122班学号:081412220姓名:郭晓甜同 组 人 员: 王彬宇指 导 老 师:张延红 张芳芳 杨斌完 成 时 间:2014年2月28日摘要随着时代的进步社会分工的不断细化,各个行业联系的不断密切,人们的出行越来越多,出行的方式也各种各样,作为空中的重要交通工具,飞机航空系统也在不断地得到优化,其中重要的一项就是飞机航空订票系统,因此好的订票系统关系着人么日常出行的方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而且艰巨的任务,需要我们认真去完成。本文采用C作为前
2、台开发工具,VC6.0作为程序代码的实现,旨在实现对现有飞行系统中遇到的各种情况进行良好的改进。 关键词:C,C+,VC6.0,数据结构,飞机订票系统;目录目录1第一章开发环境和开发工具11.1C#语言简介11.2 开发背景11.3 开发环境1第二章 算法思想22.1 系统需求分析22.2 系统总体设计22.2.1 系统设计目标32.2.2 开发设计思想32.2.3 系统功能模块设计32.3 算法思想描述4第三章算法实现93.1 数据结构93.2 程序模块93.3 各模块之间的调用关系93.4 源程序代码10第四章测试与分析204.1 测试数据选择204.2 测试结果分析20总 结22心得体会
3、22参考文献23第一章 开发环境和开发工具1.1 C/ C +语言简介一种面向对象的开发语言,C+是一种使用非常广泛的计算机编程语言。C+是一种静态数据类型检查的、支持多重编程方式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。其编译器比目前其他计算机语言的编译技术更复杂。1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量各个国家科学化和现代化的重要标志,而交通方式的全面自动化、信息化则是其中重要的组成部分,在很
4、大程度上影响着企业的经济效益和社会效益。因此,本文所研究的航空订票系统具有一定的使用价值和现实意义。1.3 开发环境本文所采用的开发环境主要是基于VC6.0和基于面向对象程序设计的c+。VC是个平台开工具。该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。第二章 算法思想2.1 系统需求分析随着计算机技术的飞速发展及经济全球化的推进以及企业激烈的竞争,各大机场订票系统已经越来越不能适应人们日常出行的局面,所以我们现在需要一个检索迅速、查找
5、方便、易修改功能齐全方便的系统来适应我们的需求。问题的提出:为了减少人工工作量,提高工作效率,使机场管理员的工作更加有效的进行。2.2 系统总体设计2.2.1 系统设计目标 本文研究开发的飞机订票系统用于实现如下四个方面的目标: )录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相
6、关数据文件;2.2.2 开发设计思想 基于以上系统设计目标,本文在开发飞机订票系统时遵循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计 本系统分为六个模块:增加航班模块、浏览航班模块、查找航班模块、航班排序模块、订票模块、退票模块。得到如图所示系统功能模块
7、图。添加用户飞机航班订票系统增加航班信息浏览航班信息航班排序模块退票系统增加机票保存查找函数排序函数查找函数减少机票数目查找函数增加机票数目查找航班信息订票系统输出函数图1-1系统功能模块图2.3 算法思想描述(1),系统启动时会通过输入航班信息来给乘客提供范围(2)当选择功能1时,进入增加航班模块(3)当选择功能2时,进入浏览航班信息模块(4)当选择功能3时,进入航班操作模块(5)当选择功能4时,进入订票系统模块(6)当选择功能5时,进入退票系统模块(7)当选择功能6,7时,是对前边操作的保存和载入(8)当选择功能8时退出系统第三章 算法实现3.1 数据结构飞机订票系统是一个数据库应用系统,
8、航班的所有信息都保存在数据库中。 3.2 程序模块void order;/排序/void input;/输入航班/void search_time()/输入时间查找/void search_end()/输入地点查找/void menu1()/飞机售票操作/int search() /查询/void book()/订票系统/void back()/退票系统/void save()/保存/void load()/载入/ 3.3 各模块之间的调用关系程序从主函数开始,首先调用menu函数清屏
9、进入系统开始页面,利用switchcase结构选择自己所需的功能模块。具体操作时,首先利用input函数录入航班信息,save函数储存航班信息、order函数进行排序;进入订票系统时,首先进入menu1函数在调用load函数载入数据及调用search_time函数、search_end函数查找航班信息,然后在由book函数订购机票save函数存储订票信息,退票时,进入back函数模块,完成退票后,回到初始menu函数模块。 3.4 源程序代码#include <stdio.h>#include <string.h>#include <stdlib.h>#de
10、fine 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(&quo
11、t;%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("请输入航班的票价:
12、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;i<n;i+) printf("n请输入第 %d 航班记录.n",i+1); input(i); /*调用输入函数*/ getchar
13、(); 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;i<n
14、;i+)printf_one(i);printf("n");getchar();getchar();menu();void order() /*排序模块(按平均成绩)*/int i,j;struct plane s;system( "cls" ); for(i=0;i<n;i+) /*冒泡法排序*/for(j=i+1;j<n;j+)if(strcmp(tii.data,tij.data)>0)s=tii; tii=tij;tij=s; browse();void search_time()int i,m=0;struct plane s
15、;system( "cls" ); printf("nnEnter the time:");scanf("%s",s.data); /*输入出发的时间*/puts("n-");printf("nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n");for(i=0;i<n;i+)if(strcmp(s.data,tii.data)=0)m+; if(m!=0)&&(m%10=0) /*目的是分屏显示*/ printf("nnPress any k
16、ey 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&quo
17、t;,s.EnPlace); /*输入要到达的地方*/puts("n-");printf("nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n");for(i=0;i<n;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);
18、 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("ttt
19、t3.按照地点查找航班"); puts("tttt4.返回主菜单"); puts("nntt*n"); printf("Choice your number(1-4): bb"); scanf("%d",&n); if(n<1|n>4) /*对选择的数字作判断*/ w1=1; printf("your choice is not between 1 and 4,Please input again:"); getchar(); getchar(); else w1=
20、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("
21、;nn请输入要订票的降落地点:");scanf("%s",s.EnPlace); printf("nn请输入要订票的起飞时间:");scanf("%s",s.data); /*输入出发的时间*/for(i=0;i<n;i+) /*查找要修改的数据*/if(strcmp(s.BePlace,tii.BePlace)=0&&strcmp(s.EnPlace,tii.EnPlace)=0&&strcmp(s.data,tii.data)=0)k=i; /*找到要修改的记录*/printf_on
22、e(k);break; /*调用显示一个记录的函数*/if(k=-1) printf("nnNO exist!"); return -1;elsereturn k;void book() int i;system( "cls" ); printf("欢迎进入售票窗口!n"); i=search();if(i!=-1)if(tii.num>=tii.max)printf("n该趟航班票已售完!"); elsetii.num+;printf("n订票成功!n");elseprintf(&quo
23、t;该航班不存在!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;i<n;i+) /*查找要修改的数据*/if(strcmp(s.ID,tii.ID)=0)k=i; /*找到要修改的记录*/printf
24、_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) /*以输出打开方式,在此前的记录被覆盖*/pr
25、intf("nCannot open filen");return ; for(i=0;i<n;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(f
26、p=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 ok!");getchar();getchar(); menu();void menu() int n,w1; do system( "c
27、ls" ); /*清屏*/ /*清屏*/ puts("tttt 飞机售票管理系统!nn"); puts("tt*MENU*nn"); puts("tttt1.输入新航班"); puts("tttt2.浏览 "); puts("tttt3.航班操作"); puts("tttt4.订票"); puts("tttt5.退票"); puts("tttt6.保存"); puts("tttt7.载入"); puts(&
28、quot;tttt8.退出"); puts("nntt*n"); printf("Choice your number(1-8): bb"); scanf("%d",&n); if(n<1|n>8) /*对选择的数字作判断*/ 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
29、); /*选择功能*/ 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 main() menu(); 第四章 测试与分析4.1试数据选择 航班 起飞地点 降落地点 时间 载客量 12222 北京 伦敦 20140228 55 21115 北京 上海 20140228 484.2测试结果分析在输入测试数据后选择订票选项并再次输入相应的数据会完成订票业务,在订票业务中调用book函数,所有函数的时间复杂度为O(n),系统本身采用线性结构模式 总 结 本系统功能分为管理员模块和前台票务员模块;管理员模块主要负责航班信息管理,包括增加新航班
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建中能电气股份有限公司招聘23人笔试历年参考题库附带答案详解
- 2025安徽芜湖市鸠江文化旅游投资有限公司招聘2人笔试历年参考题库附带答案详解
- 2025河南洛阳市西工区第一批招聘公益性岗位人员100名考前自测高频考点模拟试题及答案详解(历年真题)
- 2025广西百色市教育局招聘百色市励志学校后勤服务人员9人考前自测高频考点模拟试题附答案详解(典型题)
- 2025年甘肃庆阳庆城县事业单位引进高层次和急需紧缺人才(第三批)考前自测高频考点模拟试题及一套答案详解
- 2025年潍坊护理职业学院公开招聘控制总量工作人员(30人)模拟试卷及答案详解一套
- 2025年安庆望江县中医医院赴高校招聘19人模拟试卷附答案详解(考试直接用)
- 2025海南保亭黎族苗族自治县市场监督管理局公益性岗位人员招聘1人模拟试卷及1套参考答案详解
- 2025广西河池市天峨县自然资源局招聘机关事业单位编外聘用人员2人模拟试卷及1套完整答案详解
- 2025内蒙古锡林郭勒盟太仆寺旗乌兰牧骑招聘事业编制舞蹈演员2人考前自测高频考点模拟试题及答案详解(易错题)
- 铁路冬季作业安全知识
- 生物医药研发与临床实验数据表
- 村级出纳培训课件
- DBJ50-T-247-2016 建筑室外环境透水铺装设计标准
- 《屋顶分布式光伏电站建设规范》
- 高考英语读后续写自然景色描写升华句(风+雨+雪+霜+雾)清单
- 建筑师负责制工程建设项目建筑师标准服务内容与流程
- 《精护》第六章-精神活性物质所致精神障碍患者的护理
- 与孩子立契约协议书范本
- 姜萍事件全文课件
- 2024全国职业院校技能大赛ZZ060母婴照护赛项规程+赛题
评论
0/150
提交评论