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
版权声明:本文标题:飞机订票系统(C语言代码及流程图) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1714183225a668709.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论