数据结构课程设计航班信息管理系统的设计与调试Word格式.docx

上传人:b****2 文档编号:4608719 上传时间:2023-05-03 格式:DOCX 页数:30 大小:406.79KB
下载 相关 举报
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第1页
第1页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第2页
第2页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第3页
第3页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第4页
第4页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第5页
第5页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第6页
第6页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第7页
第7页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第8页
第8页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第9页
第9页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第10页
第10页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第11页
第11页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第12页
第12页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第13页
第13页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第14页
第14页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第15页
第15页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第16页
第16页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第17页
第17页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第18页
第18页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第19页
第19页 / 共30页
数据结构课程设计航班信息管理系统的设计与调试Word格式.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据结构课程设计航班信息管理系统的设计与调试Word格式.docx

《数据结构课程设计航班信息管理系统的设计与调试Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计航班信息管理系统的设计与调试Word格式.docx(30页珍藏版)》请在冰点文库上搜索。

数据结构课程设计航班信息管理系统的设计与调试Word格式.docx

2050

2215

1380

HU1836

0940

1120

738

1250

CZ3528

成都

厦门

1,3,4,5,7

1510

1650

CRJ

1060

MU4594

昆明

西安

1,3,5,6

1015

1140

328

1160

SC7425

青岛

海口

1,3,6

1920

2120

DH4

1630

其中航班号一项的格式为:

CZ3869,其中CZ是航空公司的别称,用两个大写字母表示,后4位为航班编号,这种航班号关键字可分成两段,即字母和数字。

其余七项输入内容因为不涉及本设计的核心,因此除了票价为数值型外,均定义为字符串型即可。

可增加订票管理模块。

一、需求分析

为达到题目的设计要求,选用文件读取方式来存储和读取航班信息。

因此可分为以下几个板块设计系统。

voidadd();

//函数声明增加航班信息函数

voidprint();

//显示航班信息

intsearch();

//查找航班信息

voiddingpiao();

//订票

voidtuipiao();

//退票

voidread();

//读取文件

voidsave();

//保存文件

voidoutput();

//输出格式

voidchushihua();

//系统初始化

voidbuild();

//建立数据文件

voidpaixu(intc);

//按航班号从小到大排序

二、环境说明

计算机品牌:

戴尔7520

计算机系统:

windows7

计算机硬件配置:

处理器Inteli7-3612QMCPU

内存8.00GB

系统类型64位操作系统

编译软件:

C-free5、VisualC++6.0

三、详细设计:

算法说明:

子函数add()声明增加航班信息函数

子函数print()显示航班信息

子函数search()功能为查找航班信息,使用二分查找法查找所需航班信息,使用关键字查找方法

子函数dingpiao实现订票功能

子函数tuipiao()实现退票功能

子函数read()可从文件中读取数据

子函数save()保存数据到文件中

子函数output()输出航班信息

子函数initialize()判断是否已有存储航班信息的文件

子函数build()如没有航班信息则新建立数据文件

子函数paixu()用选择排序法实现排序功能,按航班号从小到大排序

存储结构:

本设计在程序中将航班信息用结构数组进行存储,程序结束后使用文本文件进行信息的读入存储。

在下一次运行程序时可以再次读取该文件信息,并在程序中进行修改。

流程图:

 

没有文件信息

有文件信息

源代码及程序说明:

#include<

stdio.h>

string.h>

process.h>

//包含access函数的头文件

conio.h>

#defineN100//定义最多的航班数

#definePRINT"

%s\t\t%s%s星期%s\t\t%d\t\t%d\t\t%s\t\t%d\t\t%d\n"

s[i].num,s[i].start,s[i].over,s[i].time,s[i].takeoff,s[i].arrive,s[i].type,s[i].price,s[i].count

structair

{

charnum[20];

//航班号

charstart[20];

//起始站

charover[20];

//终点站

chartime[40];

//班期

inttakeoff;

//起飞时间

intarrive;

//到达时间

chartype[10];

//机型

intprice;

//机票价格

intcount;

//机票数量

}s[N];

inti,m=0,j;

//定义全局变量,m为航班数

charii[10];

//操作判断yes或no

//订票

//读取文件

//保存文件

voidinitialize();

//按航班号从小到大排序

intmain()

intj;

initialize();

//系统初始化判断是否存在原始数据文件

printf("

\n"

);

==============================\n"

==欢迎使用航班信息管理系统!

==\n"

do

{

====1.增加航班信息====\n"

"

====2.浏览航班信息====\n"

====3.查找航班信息====\n"

====4.订票业务====\n"

"

====5.退票业务====\n"

====0.退出====\n"

==============================\n"

请在0-6中选择以回车键结束:

scanf("

%d"

&

j);

switch(j)

{

case1:

add();

break;

case2:

print();

case3:

search();

case4:

dingpiao();

case5:

tuipiao();

case0:

save();

\n谢谢使用,再见!

"

}

}while(j!

=0);

//判断是否调用其他函数

return0;

}

voidinitialize()//定义系统初始化函数

if(access("

C:

\\hangban.txt"

0))//确定文件或文件夹的访问权限。

即检查某个文件的存取方式,比如//说是只读方式、只写方式等。

如果指定的存取方式有效,则函数返回0,否则函数返回-1。

build();

else

read();

}

voidbuild()//定义建立数据文件函数

FILE*fp;

if((fp=fopen("

"

wb"

))==NULL)//打开文件并判定是否出错

printf("

创建文件失败!

getchar();

return;

=======================\n"

请依次输入航班信息:

for(i=0;

i<

N;

i++)

请输入航班号:

scanf("

%s"

s[i].num);

请输入起始站:

s[i].start);

请输入终点站:

s[i].over);

请输入班期(星期几):

s[i].time);

请输入起飞时间:

s[i].takeoff);

请输入到达时间:

s[i].arrive);

请输入航班的机型:

s[i].type);

请输入航班机票价格:

s[i].price);

请输入机票数:

s[i].count);

fwrite(&

s[i],sizeof(structair),1,fp);

m++;

\n添加完毕,是否继续添加?

请键入y或n以回车键结束:

ii);

if(strcmp(ii,"

y"

)!

=0)//判断是否继续添加航班信息

{

fclose(fp);

//关闭文件

return;

}

voidread()//定义读取文件函数

r"

))==NULL)

i=0;

while(!

feof(fp))

fread(&

//逐块读取数据

i++;

//计算存在航班数

m--;

fclose(fp);

voidsave()//定义保存函数

w"

))==NULL)

m;

i++)//逐块保存数据

voidadd()//定义增加航班信息函数

do{

请依次输入您要增加的航班信息(以回车键结束):

\n"

==================\n"

s[m].num);

s[m].start);

s[m].over);

s[m].time);

s[m].takeoff);

s[m].arrive);

s[m].type);

s[m].price);

s[m].count);

m++;

请键入y或n以回车键结束:

}while(!

strcmp(ii,"

));

//判断是否继续添加

voidoutput()//定义输出格式函数

\n航班号\t\t起始站\t\t终点站\t\t班期\t\t起飞时间\t\t到达时间机型\t\t机票价格\t\t机票数\n"

for(i=0;

printf(PRINT);

voidprint()//定义显示航班信息函数

\n目前我们有如下航班:

output();

//调用输出格式函数

\n请按回车键返回上层菜单"

getchar();

intagain(intc)

intstart=0;

intend=m-1;

inttime;

charn[20];

switch(c)

\n请输入航班号:

n);

//输入查询的航班号

\n您所查找的航班信息为:

\n"

paixu(c);

//从小到大排序一次

while(start<

=end)

j=(start+end)/2;

if(strcmp(s[j].num,n)==0)//二分查找法

j=start;

while(j<

if(strcmp(s[j].num,n)==0)

printf("

\n航班号\t\t起始站\t\t终点站\t\t班期\t\t起飞时间\t\t到达时间机型\t\t机票价格\t\t机票数\n"

%s\t\t%s\t\t%s\t\t星期%s\t\t%d\t\t%d\t\t%s\t\t%d\t\t%d\n"

s[j].num,s[j].start,s[j].over,s[j].time,s[j].takeoff,s[j].arrive,s[j].type,s[j].price,s[j].count);

ii=='

n'

;

i=j;

j++;

break;

}

elseif(strcmp(n,s[j].num)<

0)

end=j-1;

elseif(strcmp(n,s[j].num)>

start=j+1;

if(start>

end)

对不起,没有您需要的信息!

break;

}

return0;

i=(start+end)/2;

if(strcmp(s[i].start,n)==0)//二分查找法

i=start;

while(i<

if(strcmp(s[i].start,n)==0)

printf(PRINT);

}i++;

elseif(strcmp(n,s[i].start)<

end=i-1;

elseif(strcmp(n,s[i].start)>

start=i+1;

i=(end+start)/2;

if(strcmp(s[i].over,n)==0)//二分查找法

if(strcmp(s[i].over,n)==0)

elseif(strcmp(n,s[i].over)<

elseif(strcmp(n,s[i].over)>

请输入起飞时间:

time);

if(s[i].takeoff==time)//二分查找法

if(s[i].takeoff==time)

elseif(s[i].takeoff>

time)

elseif(s[i].takeoff<

请输入到达时间:

if(s[i].arrive==time)//二分查找法

if(s[i].arrive==time)

elseif(s[i].arrive>

elseif(s[i].arrive<

intsearch()//定义查询函数

intc;

\n请选择查询方式:

====1.按航班号查询====\n"

====2.按起始站查询====\n"

====3.按终点站查询====\n"

====4.起飞时间====\n"

====5.到达时间====\n"

);

c);

again(c);

是否重新查找?

请键入y或n以回车键结束"

//判定是否重新查找

voiddingpiao()//定义订票业务函数

intn;

intc=1;

chara[10]="

n"

if(!

))

对不起!

没有找到您所需要的航班,所以不能订票。

//未查找到所需航班

getchar();

strcpy(ii,"

do

请输入您要订的机票数(以回车键结束):

scanf("

n);

//输入所订机票数

if(n<

=0)//判定机票数是否出错

{

printf("

输入错误!

至少需订1张机票。

}

elseif(s[i].count==0)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2