当前位置:文档之家› 飞机订票系统(C语言代码及流程图)

飞机订票系统(C语言代码及流程图)

飞机订票系统(C语言代码及流程图)
飞机订票系统(C语言代码及流程图)

目录

第一部分

源程序---------------------------------------------------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

第一部分:源程序

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

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

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

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

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("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\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];

ti[i]=ti[j];

ti[j]=s;}

}

browse();

}

void search_time()

{

int i,m=0;

struct plane s;

system( "cls" );

printf("\n\nEnter the time:");

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

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

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

for(i=0;i

{

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

{

m++;

if((m!=0)&&(m%10==0)) /*目的是分屏显示*/

{

printf("\n\nPress any key to contiune . . .");

getchar();

puts("\n\n");

}

printf_one(i);

printf("\n");

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

}

}

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

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

getchar();

menu1();

}

void serch_end()

{

int i,m=0;

struct plane s;

system( "cls" );

printf("\n\nEnter the end Place:");

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

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

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

for(i=0;i

{

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

{

m++;

if((m!=0)&&(m%10==0)) /*目的是分屏显示*/

{

printf("\n\nPress any key to contiune . . .");

getchar();

puts("\n\n");

}

printf_one(i);

printf("\n");

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

}

}

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

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

getchar();

menu1();

}

void menu1()

{

int n,w1;

do

{

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

puts("\t\t\t\t 飞机售票操作!\n\n");

puts("\t\t*********************MENU*********************\n\n");

puts("\t\t\t\t1.按照时间排序");

puts("\t\t\t\t2.按照时间查找航班");

puts("\t\t\t\t3.按照地点查找航班");

puts("\t\t\t\t4.返回主菜单");

puts("\n\n\t\t**********************************************\n");

printf("Choice your number(1-4): [ ]\b\b");

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=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("\n\n请输入要订票的起飞地点:");

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

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

scanf("%s",s.EnPlace);

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

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

for(i=0;i

{

if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.dat a,ti[i].data)==0)

{

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

printf_one(k);

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

}

}

if(k==-1)

{

printf("\n\nNO exist!");

return -1;

}

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("\n\n输入航班代号:");

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

for(i=0;i

{

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

{

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

printf_one(k);

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

}

}

if(k==-1)

{

printf("\n\nNO 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:\\我的文档\\桌面\\ticket.txt","wt"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/

{

printf("\nCannot open file\n");

return ;

}

for(i=0;i

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

{

printf("file write error\n");

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((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","rt"))==NULL)

{

printf("\nCan not open file\n");

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 file ok!");

getchar();

getchar();

menu();

}

void menu()

{

int n,w1;

do

{

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

puts("\t\t\t\t 飞机售票管理系统!\n\n");

puts("\t\t*********************MENU*********************\n\n");

puts("\t\t\t\t1.输入新航班");

puts("\t\t\t\t2.浏览");

puts("\t\t\t\t3.航班操作");

puts("\t\t\t\t4.订票");

puts("\t\t\t\t5.退票");

puts("\t\t\t\t6.保存");

puts("\t\t\t\t7.载入");

puts("\t\t\t\t8.退出");

puts("\n\n\t\t**********************************************\n");

printf("Choice your number(1-8): [ ]\b\b");

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

}

第二部分:函数流程图

相关主题
文本预览
相关文档 最新文档