飞机订票系统课程设计文档格式.docx
《飞机订票系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《飞机订票系统课程设计文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
![飞机订票系统课程设计文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/15/0dd98c16-d45d-4082-a86c-f6f505a166f9/0dd98c16-d45d-4082-a86c-f6f505a166f91.gif)
3.1数据结构9
3.2程序模块9
3.3各模块之间的调用关系9
3.4源程序代码10
第四章测试与分析20
4.1测试数据选择20
4.2测试结果分析20
总结22
心得体会22
参考文献23
第一章开发环境和开发工具
1.1C/C++语言简介
一种面向对象的开发语言,C++是一种使用非常广泛的计算机编程语言。
C++是一种静态数据类型检查的、支持多重编程方式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
其编译器比目前其他计算机语言的编译技术更复杂。
1.2开发背景
随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。
采用计算机进行信息化管理已成为衡量各个国家科学化和现代化的重要标志,而交通方式的全面自动化、信息化则是其中重要的组成部分,在很大程度上影响着企业的经济效益和社会效益。
因此,本文所研究的航空订票系统具有一定的使用价值和现实意义。
1.3开发环境
本文所采用的开发环境主要是基于VC6.0和基于面向对象程序设计的c++。
VC是个平台开工具。
该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。
而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。
第二章算法思想
2.1系统需求分析
随着计算机技术的飞速发展及经济全球化的推进以及企业激烈的竞争,各大机场订票系统已经越来越不能适应人们日常出行的局面,所以我们现在需要一个检索迅速、查找方便、易修改功能齐全方便的系统来适应我们的需求。
问题的提出:
为了减少人工工作量,提高工作效率,使机场管理员的工作更加有效的进行。
2.2系统总体设计
2.2.1系统设计目标
本文研究开发的飞机订票系统用于实现如下四个方面的目标:
●)录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
●查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
●订票:
(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
●退票:
可退票,退票后修改相关数据文件;
2.2.2开发设计思想
基于以上系统设计目标,本文在开发飞机订票系统时遵循了以下开发设计思想:
●采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
●尽量达到操作过程中的直观、方便、实用、安全等要求。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
●系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
2.2.3系统功能模块设计
本系统分为六个模块:
:
增加航班模块、浏览航班模块、查找航班模块、航班排序模块、订票模块、退票模块。
得到如图所示系统功能模块图。
图1-1系统功能模块图
2.3算法思想描述
(1),系统启动时会通过输入航班信息来给乘客提供范围
(2)当选择功能1时,进入增加航班模块
(3)当选择功能2时,进入浏览航班信息模块
(4)当选择功能3时,进入航班操作模块
(5)当选择功能4时,进入订票系统模块
(6)当选择功能5时,进入退票系统模块
(7)当选择功能6,7时,是对前边操作的保存和载入
(8)当选择功能8时退出系统
第三章算法实现
3.1数据结构
飞机订票系统是一个数据库应用系统,航班的所有信息都保存在数据库中。
3.2程序模块
void
order;
//排序//
input;
//输入航班//
search_time()//输入时间查找//
search_end()//输入地点查找//
menu1()//飞机售票操作//
int
search()
//查询//
book()//订票系统//
back()//退票系统//
save()//保存//
load()//载入//
3.3各模块之间的调用关系
程序从主函数开始,首先调用menu函数清屏进入系统开始页面,利用switch——case结构选择自己所需的功能模块。
具体操作时,首先利用input函数录入航班信息,save函数储存航班信息、order函数进行排序;
进入订票系统时,首先进入menu1函数在调用load函数载入数据及调用search_time函数、search_end函数查找航班信息,然后在由book函数订购机票save函数存储订票信息,退票时,进入back函数模块,完成退票后,回到初始menu函数模块。
3.4源程序代码
#include<
stdio.h>
string.h>
stdlib.h>
#defineN1000
typedefstructplane
{
charID[10];
/*航班代号*/
charBePlace[10];
/*飞机起飞地点*/
charEnPlace[10];
/*飞机降落终点*/
chardata[15];
/*飞机起飞时间*/
intmax;
/*飞机最大乘客人数*/
intprice;
/*飞机票价*/
intnum;
/*飞机已售票数*/
}PLANE;
PLANEti[N];
intn;
/*当前的航班数目*/
voidmenu();
voidmenu1();
voidinput(inti)
printf("
请输入航班代号:
\n"
);
scanf("
%s"
ti[i].ID);
请输入起飞地点:
ti[i].BePlace);
请输入降落地点:
ti[i].EnPlace);
请输入起飞时间:
ti[i].data);
请输入航班的最大载客人数:
%d"
&
ti[i].max);
请输入航班的票价:
ti[i].price);
ti[i].num=0;
}
voidenter()
inti;
system("
cls"
);
请输入航班的数目(0-%d)?
:
"
N);
n);
/*要输入的记录个数*/
\n请输入数据\n\n"
for(i=0;
i<
n;
i++)
{
printf("
\n请输入第%d航班记录.\n"
i+1);
input(i);
/*调用输入函数*/
}
getchar();
menu();
voidprintf_one(inti)/*显示一个记录的函数*/
%11s%6s%10s%6s%6d%6d%6d"
ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);
voidbrowse()
puts("
\n--------------------------------------------------------------------"
\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n"
printf_one(i);
voidorder()/*排序模块(按平均成绩)*/
inti,j;
structplanes;
i++)/*冒泡法排序*/
for(j=i+1;
j<
j++)
if(strcmp(ti[i].data,ti[j].data)>
0)
{
s=ti[i];
ti[i]=ti[j];
ti[j]=s;
browse();
voidsearch_time()
inti,m=0;
\n\nEnterthetime:
s.data);
/*输入出发的时间*/
if(strcmp(s.data,ti[i].data)==0)
m++;
if((m!
=0)&
&
(m%10==0))/*目的是分屏显示*/
{
printf("
\n\nPressanykeytocontiune..."
getchar();
puts("
\n\n"
}
printf_one(i);
printf("
/*调用显示一个记录的函数*/
}
/*按任意健*/
menu1();
voidserch_end()
\n\nEntertheendPlace:
s.EnPlace);
/*输入要到达的地方*/
if(strcmp(ti[i].EnPlace,s.EnPlace)==0)
voidmenu1()
intn,w1;
do
/*清屏*/
\t\t\t\t飞机售票操作!
\t\t*********************MENU*********************\n\n"
\t\t\t\t1.按照时间排序"
\t\t\t\t2.按照时间查找航班"
\t\t\t\t3.按照地点查找航班"
\t\t\t\t4.返回主菜单"
\n\n\t\t**********************************************\n"
Choiceyournumber(1-4):
[]\b\b"
if(n<
1||n>
4)/*对选择的数字作判断*/
w1=1;
yourchoiceisnotbetween1and4,Pleaseinputagain:
getchar();
elsew1=0;
}while(w1==1);
/*选择功能*/
switch(n)
case1:
order();
break;
case2:
search_time();
case3:
serch_end();
case4:
menu();
intsearch()/*查找模块*/
inti,k;
k=-1;
\n\n请输入要订票的起飞地点:
s.BePlace);
\n\n请输入要订票的降落地点:
\n\n请输入要订票的起飞时间:
i++)/*查找要修改的数据*/
if(strcmp(s.BePlace,ti[i].BePlace)==0&
strcmp(s.EnPlace,ti[i].EnPlace)==0&
strcmp(s.data,ti[i].data)==0)
k=i;
/*找到要修改的记录*/
printf_one(k);
break;
/*调用显示一个记录的函数*/
if(k==-1)
\n\nNOexist!
return-1;
else
returnk;
voidbook()
欢迎进入售票窗口!
i=search();
if(i!
=-1)
if(ti[i].num>
=ti[i].max)
\n该趟航班票已售完!
ti[i].num++;
printf("
\n订票成功!
该航班不存在!
voidback()
inti,k=-1;
欢迎进入退票窗口!
\n\n输入航班代号:
s.ID);
if(strcmp(s.ID,ti[i].ID)==0)
ti[i].num--;
\n退票成功!
voidsave()
intw=1;
FILE*fp;
if((fp=fopen("
\\ticket.txt"
"
wt"
))==NULL)/*以输出打开方式,在此前的记录被覆盖*/
\nCannotopenfile\n"
return;
if(fwrite(&
ti[i],sizeof(structplane),1,fp)!
=1)
{
filewriteerror\n"
w=0;
if(w==1)
filesaveok!
fclose(fp);
voidload()
FILE*fp;
inti,w;
w=1;
rt"
))==NULL)
\nCannotopenfile\n"
return;
n=0;
!
feof(fp);
fread(&
ti[i],sizeof(structplane),1,fp);
n++;
n=n-1;
Loadfileok!
voidmenu()
/*清屏*//*清屏*/
\t\t\t\t飞机售票管理系统!
\t\t\t\t1.输入新航班"
\t\t\t\t2.浏览"
\t\t\t\t3.航班操作"
\t\t\t\t4.订票"
\t\t\t\t5.退票"
\t\t\t\t6.保存"
\t\t\t\t7.载入"
\t\t\t\t8.退出"
Choiceyournumber(1-8):
8)/*对选择的数字作判断*/
yourchoiceisnotbetween1and8,Pleaseinputentertochoiceagain:
enter();
/*输入模块*/
browse();
/*浏览模块*/
menu1();
/*查找模块*/
book();
/*订票模块*/
case5:
back();
/*退票模块*/
case6:
save();
/*保存模块*/
case7:
load();
/*加载模块*/
case8:
exit(0);
voidmain()
第四章测试与分析
4.1试数据选择
航班
起飞地点
降落地点
时间
载客量
12222
北京
伦敦
20140228
55
21115
北京
上海
48
4.2测试结果分析
在输入测试数据后选择订票选项并再次输入相应的数据会完成订票业务,在订票业务中调用book函数,所有函数的时间复杂度为O(n),系统本身采用线性结构模式
总结
本系统