聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> C语言程序设计-航班管理系统

C语言程序设计-航班管理系统

时间:2018-08-02 03:55:03    下载该word文档

仲恺农业工程学院

C语言程序设计报告

航班信息管理系统

课程名称 C语言程序设计

XXX

院(系) 信息科学与技术学院

专业班级 网络工程XX

201320XX

指导教师 XXX

仲恺农业工程学院教务处制



1 需求分析

航班信息包括航班号、起点站终点站班期起飞时间到达时间飞机型号票价,八项信息

试设计航班信息管理系统,使之能提供以下功能:

系统以菜单方式工作

航班信息录入功能(航班信息用文件保存)--输入

航班信息浏览功能--输出

航班信息查询功能-算法(其中查询方式可以按学历查询、按职工号查询等)

航班排序、筛选功能

2 系统总框图和功能模块说明

2.1 系统总框图

1 统总框图

2.2 功能模块说明

输入航班信息模块,完成航班信息的录入。航班信息的录入前,录入系统先完成新建文件,检测文件是否存在的功能。检测完毕,采用循环的输入流程,以检测文件是否终止为循环的判定条件;输入信息时,以检测编号判断输入的信息与文件中的信息是否有冲突,防止输入的信息存在冲突;把航班信息一一输入后,判断其有没有存入文件中。

排序航班信息模块,完成航班信息中的价格排序,便于筛选信息结果的查看,排序是利用冒泡排序法,按照价格从高到低编排。

查询航班信息模块,根据输入的航班编号,查询航班编号的信息,。其过程中,首先是对输入的信息判断,判断输入的信息无误后再查询。

筛选航班信息模块,筛选模板分为四种不同条件的筛选,分别是起点站、到达站、起点时间、到达时间。利用字符串函数strcmp比较输入的筛选条件与文件中字符串是否一致为判断 ,利用循环结构把筛选条件与有效字符串一一作比较。

3 系统设计

3.1 主要结构体

航班编号、起飞点、到达点、班期、起飞时间、达到时间、型号、价格

struct fly

{

int no; /*航班号*/

char startpoint[M]; /*起飞点*/

char finalpoint[M]; /*到达点*/

int banqi; /*班期*/

char startime[M]; /*起飞时机*/

char finaltime[M]; /*到达时间*/

char tipe[M]; /*型号*/

float price; /*价格*/

};

3.2主要功能函数

void in(); /*航班信息输入系统*/

void order(); /*航班价格排序系统*/

void search(); /*航班信息查询系统*/

void menu(); /*信息展现函数*/

void startpoint(); /*起点站筛选系统*/

void finalpoint(); /*达到站筛选系统*/

void startime(); /*起点时间筛选系统*/

void finaltime(); /*到达时间筛选系统*/

3.3 关键函数的流程图

4 系统调试

1、航班信息的输入

2、输入航班号,对航班信息进行查找

3、输入到达站,对航班信息进行筛选

5 总结

在程序的编写中,导致程序出现逻辑错误,我个人经验不足,所以一旦出现错误就添加一些语句,比如添加printf("测试语句|\n");在程序中,断定其程序中哪一些地方出现错误,发现其中的错误,修改后再删除掉。由于忘记了函数的调用方法,导致程序show无法调用,查看网上类似的程序,终于发现错误。

6 源程序清单

#include

#include

#include

#include

#define N 15

#define M 20

#define LEN sizeof(struct fly)

typedef struct fly{

int no;/*航班号*/

char startpoint[M];

char finalpoint[M];

int banqi[M];

char startime[M];

char finaltime[M];

char tipe[M];

float price;

};

struct fly f[N];

void in();

void show(int i);

void order(int); /*排序*/

void search(); /*编号查询系统*/

void menu();

void startpoint(); /*起点站查询系统*/

void finalpoint(); /*达到站查询系统*/

void startime(); /*起点时间查询系统*/

void finaltime(); /*到达时间查询系统*/

void main()

{

int n;

menu();

scanf("%d",&n);

while(n)

{

switch(n)

{

case 1:

in();

break;

case 2:

search();

break;

case 3:

startpoint();

break;

case 4:

finalpoint();

break;

case 5:

startime();

break;

case 6:

finaltime();

break;

default:break;

}

getch();

menu();

scanf("%d",&n);

}

}

void menu()

{

system("cls");

printf("\n\n\n\n\n");

printf("\t\t|--------------航班信息查询系统----------------|\n");

printf("\t\t| 0. 退出 |\n");

printf("\t\t| 1.录入记录 |\n");

printf("\t\t| 2.航班号查询 |\n");

printf("\t\t| 3.起点站查询 |\n");

printf("\t\t| 4.到达站查询 |\n");

printf("\t\t| 5.起飞时间查询 |\n");

printf("\t\t| 6.到达时间查询 |\n");

printf("\t\t|----------------------------------------------|\n\n ");

printf("\t\t\t 选择(0-6):______");

}

void in()

{

int i,m=0;

char ch[2];

FILE *fp;

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件\n");

return;

}

while(!feof(fp))//feof()是文件结束检测函数,如果没有结束,返回值是0,结束了是1

{

if(fread(&f[m],LEN,1,fp)==1)

m++;

}

fclose(fp);

if(m==0)

printf("没有找到\n");

else

{

system("cls");

/*system就是调用DOS命令,CLS命令的意思是清除屏幕上所有的文字*/

for(i=0;i

show(i);

}

if((fp=fopen("data","wb"))==NULL)

{

printf("不能打开文件\n ");

return;

}

for(i=0;i

fwrite(&f[i],LEN,1,fp);

printf("是否输入?输入请按‘Y’否则按任意键----");

scanf("%s",ch);

while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)

{

printf("编号--------");

scanf("%d",&f[m].no);

for(i=0;i

if(f[i].no==f[m].no)

{

printf("该记录应经存在,请按任意键继续\n");

getch();

fclose(fp);

return;

}

printf("起点站-----");

scanf("%s",&f[m].startpoint);

printf("终点站-----");

scanf("%s",&f[m].finalpoint);

printf("班期-------");

scanf("%s",&f[m].banqi);

printf("起飞时间---");

scanf("%s",&f[m].startime);

printf("到达时间---");

scanf("%s",&f[m].finaltime);

printf("飞机型号---");

scanf("%s",&f[m].tipe);

printf("价格-------");

scanf("%f",&f[m].price);

printf("是否保存?输入请按‘Y’否则按任意键----");

scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)

{

if(fwrite(&f[m],LEN,1,fp)!=1)

{

printf("不能保存\n");

getch();

}

else

{

printf("编号为%d的航班信息已经保存\n",f[i].no);

m++;

}

}

printf("是否继续,继续请按--Y--,否则按任意键");

scanf("%s",ch);

}

fclose(fp);

printf("OK");

}

void search() /*编号查询系统*/

{

FILE *fp;

int snum,i,m=0;

char ch[2];

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件\n");

return;

}

while(!feof(fp))

if(fread(&f[m],LEN,1,fp)==1);

m++;

fclose(fp);

if(m==0)

{

printf("没有记录");

return;

}

printf("请输入编号----");

scanf("%d",&snum);

for(i=0;i

if(snum==f[i].no)

{

printf("已经找到该记录,是否显示?显示请按—Y—");

scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)

{

show(i);

break;

}

else

printf("没有相关的记录\n");

return;

}

}

void startpoint() /*起点站查询系统*/

{

FILE *fp;

int i,m=0;

char snum[M];

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件\n");

return;

}

while(!feof(fp))

if(fread(&f[m],LEN,1,fp)==1);

m++;

fclose(fp);

if(m==0)

{

printf("没有记录");

return;

}

printf("请输入起点站----");

scanf("%s",&snum);

for(i=0;i

{

if(strcmp(f[i].startpoint,snum)==0)

{

show(i);

continue;

}

else

printf("没有相关的记录\n");

return;

}

}

void finalpoint() /*到达站查询系统*/

{

FILE *fp;

int i,m=0;

char snum[M];

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件\n");

return;

}

while(!feof(fp))

if(fread(&f[m],LEN,1,fp)==1);

m++;

fclose(fp);

if(m==0)

{

printf("没有记录");

return;

}

printf("请输入到达站----");

scanf("%s",&snum);

for(i=0;i

if(strcmp(f[i].finalpoint,snum)==0)

{

show(i);

continue;

}

else

printf("没有相关的记录\n");

return;

}

void startime() /*起点时间查询系统*/

{

FILE *fp;

int i,m=0;

char snum[M];

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件\n");

return;

}

while(!feof(fp))

if(fread(&f[m],LEN,1,fp)==1);

m++;

fclose(fp);

if(m==0)

{

printf("没有记录");

return;

}

printf("请输入起点时间----");

scanf("%s",&snum);

for(i=0;i

if(strcmp(f[i].startime,snum)==0)

{

show(i);

continue;

}

else

printf("没有相关的记录\n");

return;

}

void finaltime() /*达到时间查询系统*/

{

FILE *fp;

int i,m=0;

char snum[M];

if((fp=fopen("data","ab+"))==NULL)

{

printf("不能打开文件\n");

免费下载 Word文档免费下载: C语言程序设计-航班管理系统

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服