您的当前位置:首页正文

航班管理系统代码区

2022-01-14 来源:汇智旅游网
第一部分:源程序

#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(\"%si[i].ID);

printf(\"请输入起飞地点:\\n\"); scanf(\"%s\",ti[i].BePlace);

printf(\"请输入降落地点:\\n\"); scanf(\"%si[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)?:\ scanf(\"%d\ /*要输入的记录个数*/ printf(\"\\n请输入数据\\n\\n\"); for(i=0;iprintf(\"\\n请输入第 %d 航班记录.\\n\ input(i); /*调用输入函数*/ }

getchar(); menu(); }

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

printf(\"%11s %6s %10s %6s %6d %6d %6d\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\航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数\\n\"); for(i=0;iprintf_one(i);

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

getchar(); getchar(); menu(); }

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

int i,j;

struct plane s; system( \"cls\" );

for(i=0;ifor(j=i+1;jif(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\输入出发的时间*/

puts(\"\\n--------------------------------------------------------------------\"); printf(\"\\n\航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数\\n\"); for(i=0;iif(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\ /*输入要到达的地方*/

puts(\"\\n--------------------------------------------------------------------\"); printf(\"\\n\航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数\\n\"); for(i=0;iif(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(\"\\\\ 飞机售票操作!\\n\\n\");

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

puts(\"\\\\1.按照时间排序\"); puts(\"\\\\2.按照时间查找航班\"); puts(\"\\\\3.按照地点查找航班\"); puts(\"\\\\4.返回主菜单\");

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

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

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\输入要到达的地方*/ printf(\"\\n\\n请输入要订票的降落地点:\"); scanf(\"%s\

printf(\"\\n\\n请输入要订票的起飞时间:\"); scanf(\"%s\ /*输入出发的时间*/

for(i=0;iif(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) {

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\输入要到达的地方*/

for(i=0;iif(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:\\\\我的文档\\\\桌面\\\icket.txt\以输出打开方式,在此前的记录被覆盖*/ {

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

for(i=0;iif(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:\\\\我的文档\\\\桌面\\\icket.txt\ {

/*

}

void menu() {

int n,w1; do {

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

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

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

puts(\"\\\\1.输入新航班\"); puts(\"\\\\2.浏览 \"); puts(\"\\\\3.航班操作\"); puts(\"\\\\4.订票\"); puts(\"\\\\5.退票\"); puts(\"\\\\6.保存\"); puts(\"\\\\7.载入\"); puts(\"\\\\8.退出\");

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

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

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

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 8:exit(0); } }

void main() {menu();}

case 7:load();break; /*加载

因篇幅问题不能全部显示,请点此查看更多更全内容