admin 管理员组

文章数量: 1086019


2024年4月27日发(作者:微信刷屏代码vbs)

目录

第一部分

源程序---------------------------------------------------3

第二部分

函数流程图--------------------------------------------11

menu()-----------------------------------------------------12

enter()-----------------------------------------------------13

input()-----------------------------------------------------14

browse()---------------------------------------------------15

menu1()---------------------------------------------------16

order()-----------------------------------------------------17

search_time()---------------------------------------------18

search_end()----------------------------------------------19

search()----------------------------------------------------20

book()------------------------------------------------------21

back()------------------------------------------------------22

save()------------------------------------------------------23

load()------------------------------------------------------24

第三部分

心得体会------------------------------------------------25

1 / 25

第一部分:源程序

#include

#include

#include

#define N 1000

typedef struct plane

{

char ID[10]; /*航班代号*/

char BePlace[10];/*飞机起飞地点*/

char EnPlace[10];/*飞机降落终点*/

char data[15];/*飞机起飞时间*/

int max;/*飞机最大乘客人数*/

int price;/*飞机票价*/

int num;/*飞机已售票数*/

}PLANE;

PLANE ti[N];

int n;/*当前的航班数目*/

void menu();

void menu1();

void input(int i)

{

printf("请输入航班代号:n");

scanf("%s",ti[i].ID);

printf("请输入起飞地点:n");

scanf("%s",ti[i].BePlace);

printf("请输入降落地点:n");

scanf("%s",ti[i].EnPlace);

printf("请输入起飞时间:n");

scanf("%s",ti[i].data);

printf("请输入航班的最大载客人数:n");

scanf("%d",&ti[i].max);

printf("请输入航班的票价:n");

scanf("%d",&ti[i].price);

ti[i].num=0;

}

void enter()

{

int i;

system( "cls" );

2 / 25

printf("请输入航班的数目(0-%d)?:",N);

scanf("%d",&n); /*要输入的记录个数*/

printf("n请输入数据nn");

for(i=0;i

{

printf("n请输入第 %d 航班记录.n",i+1);

input(i); /*调用输入函数*/

}

getchar();

menu();

}

void printf_one(int i) /*显示一个记录的函数*/

{

printf("%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);

}

void browse()

{

int i;

system( "cls" );

puts("n--------------------------------------------------------------------");

printf("nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n");

for(i=0;i

{

printf_one(i);

printf("n");

}

getchar();

getchar();

menu();

}

void order() /*排序模块(按平均成绩)*/

{

int i,j;

struct plane s;

system( "cls" );

for(i=0;i

{

for(j=i+1;j

if(strcmp(ti[i].data,ti[j].data)>0)

{

s=ti[i];

3 / 25

ti[i]=ti[j];

ti[j]=s;}

}

browse();

}

void search_time()

{

int i,m=0;

struct plane s;

system( "cls" );

printf("nnEnter the time:");

scanf("%s",); /*输入出发的时间*/

puts("n--------------------------------------------------------------------");

printf("nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n");

for(i=0;i

{

if(strcmp(,ti[i].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",e); /*输入要到达的地方*/

4 / 25

puts("n--------------------------------------------------------------------");

printf("nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n");

for(i=0;i

{

if(strcmp(ti[i].EnPlace,e)==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(n<1||n>4) /*对选择的数字作判断*/

{

w1=1;

printf("your choice is not between 1 and 4,Please input again:");

getchar();

5 / 25

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",e); /*输入要到达的地方*/

printf("nn请输入要订票的降落地点:");

scanf("%s",e);

printf("nn请输入要订票的起飞时间:");

scanf("%s",); /*输入出发的时间*/

for(i=0;i

{

if(strcmp(e,ti[i].BePlace)==0&&strcmp(e,ti[i].EnPlace)==0&&strcmp(

a,ti[i].data)==0)

{

k=i; /*找到要修改的记录*/

printf_one(k);

break; /*调用显示一个记录的函数*/

}

}

if(k==-1)

{

printf("nnNO exist!");

return -1;

6 / 25

}

else

return k;

}

void book()

{

int i;

system( "cls" );

printf("欢迎进入售票窗口!n");

i=search();

if(i!=-1)

{

if(ti[i].num>=ti[i].max)

{

printf("n该趟航班票已售完!");

}

else

{

ti[i].num++;

printf("n订票成功!n");

}

}

else

printf("该航班不存在!n");

getchar();

getchar(); /*按任意健*/

menu();

}

void back()

{

int i,k=-1;

struct plane s;

system( "cls" );

printf("欢迎进入退票窗口!n");

printf("nn输入航班代号:");

scanf("%s",); /*输入要到达的地方*/

for(i=0;i

{

if(strcmp(,ti[i].ID)==0)

{

k=i; /*找到要修改的记录*/

printf_one(k);

7 / 25

break; /*调用显示一个记录的函数*/

}

}

if(k==-1)

{

printf("nnNO exist!");

}

else

{

ti[i].num--;

printf("n退票成功!n");

}

getchar(); /*按任意健*/

getchar(); /*按任意健*/

menu();

}

void save()

{

int w=1;

FILE *fp;

int i;

system( "cls" );

if((fp=fopen("D:我的文档桌面","wt"))==NULL)

前的记录被覆盖*/

{

printf("nCannot open filen");

return ;

}

for(i=0;i

if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1)

{

printf(" errorn");

w=0;

}

if(w==1)

{

printf(" ok!n");

}

fclose(fp);

getchar();

getchar();

menu();

}

void load()

8 / 25

/*以输出打开方式,在此

{

FILE *fp;

int i,w;

w=1;

system( "cls" );

if((fp=fopen("D:我的文档桌面","rt"))==NULL)

{

printf("nCan not open filen");

w=0;

return;

}

n=0;

for(i=0;!feof(fp);i++)

{

fread(&ti[i],sizeof(struct plane),1,fp);

n++;

}

n=n-1;

fclose(fp);

if(w==1)

printf("Load !");

getchar();

getchar();

menu();

}

void menu()

{

int n,w1;

do

{

system( "cls" ); /*清屏*/ /*清屏*/

puts("tttt 飞机售票管理系统!nn");

puts("tt*********************MENU*********************nn");

puts("tttt1.输入新航班");

puts("tttt2.浏览 ");

puts("tttt3.航班操作");

puts("tttt4.订票");

puts("tttt5.退票");

puts("tttt6.保存");

puts("tttt7.载入");

puts("tttt8.退出");

9 / 25

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);

/*选择功能*/

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();

}

第二部分:函数流程图

10 / 25

(1)

menu函数流程图

开始

定义n,w1

清屏

输出所有主目录

输入系数到变量n

n<1||n>8

Y

w1=1

N

w1=0

Y

w1==1

N

n=1

N

n=2

N

n=3

N

n=4

N

n=5

N

n=6

N

n=7

N

n=8

Y

load

Y

save

Y

back

Y

book

Y

menu1

Y

browse

Y

enter

11 / 25

结束

(2)

enter

函数流程图

开始

Int i

清屏

输入记录个数

i=0

i

Y

输出:请输入第%d航班记录

N

调用input

i++

返回主目录menu()

结束

12 / 25

(3)input

函数流程图

开始

定义i

输出:请输入航班代号

输入ID

输出:请输入起飞地点

输入BePlace

输出:请输入降落地点

输入EnPlace

输出:请输入起飞时间

输入date

输出:请输入航班最大载客人数

输入max

输出:请输入航班票价

输入price

ti[i].num=0

返回函数enter

结束

13 / 25

(4

)browse函数流程图

开始

定义i

清屏

输入横线回车

输出菜单

i=0

i

Y

调用printf_one()

换行

i++

返回主目录menu()

结束

N

14 / 25

(5)menu1函数流程图

开始

定义n,w1

清屏

输入菜单

输出:Choice your number(1-4):[]

键入数字n

n<1||n>4

Y

w1=1

N

w1=0

Y

w1=1

N

n=1

N

n=2

N

n=3

N

n=4

N

Y

search_end()

Y

search_time()

Y

order()

Y

menu()

结束

15 / 25

(6)order函数流程图

N

开始

定义i,j

定义结构s

清屏

i=0

i

Y

j=i+1

N

j

Y

ti[i].data>ti[j].data

Y

s=ti[i]

N

ti[i]=ti[j]

ti[i]=s

j++

i++

调用browse

16 / 25

结束

(7)search_time函数流程图

开始

定义i,m=0

定义结构体s

清屏

输入出发时间

输出对应航班信息

i=0

i

Y

N

==ti[i].data

Y

m++

N

(m!=0)&&(m%10==0)

N

Y

分屏显示

调用printf_one(i)

i++

返回主菜单menu1

结束

17 / 25

开始

(8)

serch_end函数流程图

定义i,m=0

定义结构体s

清屏

输入目的地

输出对应航班信息

i=0

i

Y

N

ti[i].EndPlace==ce

Y

m++

(m!=0)&&(m%10==0)

N

调用printf_one(i)

i++

返回主菜单menu1

结束

18 / 25

N

Y

分屏显示

(9)search函数流程图

开始

定义i,j,k

定义结构体s

k=1

清屏

输入起飞地

输入目的地

输入起飞时间

i=1

N

i

Y

i++

e==ti[i]BePlace&&e==ti

[i].EnPlace&&==ti[i].data

Y

k=i

Y

调用printf_one(k)

N

k==-1

Y

输出:NO exist !

N

函数返回k值

函数返回值-1

结束

19 / 25

(10)book函数流程图

N

ti[i].num++

输出:订票成功

开始

定义 i

清屏

输出:欢迎进入售票窗口

i=search()

i!=-1

Y

ti[i].num>=ti[i].max

Y

输出:该趟航班票已售完

N

输出:该趟航班不存

返回主目录返回主目录menu()

结束

20 / 25

(11)back函数流程图

开始

定义i,k=-1

定义结构体s

清屏

输出:欢迎进入退票窗口

输入航班代号ID

i=0

N

i

Y

==ti[i].ID

Y

k=i

N

i++

调用printf_one(k)

k==-1

Y

输出:NO exist!

N

ti[i].num--

输出:退票成功

返回主目录menu()

结束

21 / 25

开始

(12

)save函数流程图

定义w=1,*fp,i

清屏

N

(fp=fopen(“”,”

Y

输出:Can not open file

i=0

i

Y

fwrite(&ti[i],sizeof(struct plane),1,fp)!=1

Y

输出: error

w=0

i++

N

w==1

Y

输出: ok!

fclose(fp)

返回主目录menu()

结束

22 / 25

N

N

(13)load函数流程图

开始

定义*fp,i,w=1

清屏

(fp=fopen(“”,”rt”))==NULL

Y

输出:Can not open file

N

w=0

n=0

i=0

!feof(fp)

Y

fread(&ti[i],sizeof(struct plane),1,fp)

N

n++

i++

n=n-1

fclose(fp)

w==1

Y

输出:Load !

N

返回主目录

23 / 25

menu()

结束

第三部分:心得体会

(1) 开始对c语言只是一种零散的认识,作为一个c语言的初学者

对编程没有明确的概念,只是对语句的格式与编程规定有了一

个初步了解。也不知道编程的主要目的是什么,依据什么来编?

为什么要编程?编出来又能干什么?通过对这一飞机订票系统

的学习,知道了c语言在实际应用中的作用,明确了学c语言的

意义。

(2) 对c语言编程经验的掌握要从实践中积累,在程序调试的过程

中遇到的错误能够正确的识别并改正,使我收益很大。

(3) 熟悉了调试的方法和步骤,对c语言编程过程中可能遇到的各

种错误有了深刻的认识与理解,并能够迅速的根据提示解决程

序的错误:

对变量赋值时,要用“=”,而表示相等时用“==”。

程序语句后的注释有时会很有用,会帮助我们更好的理解

程序,在程序调试时根据注释也可以帮我们快速准确的了

解出错处程序的意思,做出快速的更正。

使用函数时要注意先声明。

使用fp=fopen(“……”)标明地址时要注意使用“”。

(4) 通过实用函数流程图,使我更深入的理解了语句的使用,特别

是对循环语句的理解与掌握:

24 / 25

do

while(表达式)

{循环体

}

{循环体

}while(表达式);

注意两个循环结构的使用,特别是“;”的使用。

(5) 使我体会到了流程图在c语言学习中的重要性。一个清晰的流

程图能使我们的程序简洁、有条理并易于理解,大大提高编程

效率。流程图能够帮我们形成一种整体的构想,使具体的事物

抽象化,条理化,再用程序语言表达出来。

(6) 流程图的掌握不仅对c语言学习有很大帮助,而且在各个学科

里都可以利用其思想,生活中也不例外,比如说“统筹思想“,

就相当于编程前先画流程图然后根据流程图编写程序,而转化

到实际生活中就是做事前要有一个合理的安排,然后按照安排

有条理的做事。

25 / 25


本文标签: 输入 流程图 语言 函数 航班