飞机订票系统设计与实现 (里面附有源代码!)
课程设航空订票系统完整源代码及详解

#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<stdlib.h> //包含动态存储与释放函数头文件#include<process.h>//包含access函数的头文件#define N 10000struct plane //定义结构体数组{int num;char start[20];char over[20];char time[10];int count;int ys;}s[N];int i;int m=0;#define PRINT "%-d%10s%10s%10s%12d%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s [i].count,s[i].ys //定义输出格式void input(); //输入航班信息void save(); //保存航班信息void read(); //读取航班信息void order();//升序输出航班信息void search(); //查找航班信息void dingpiao(); //订票信息void tuipiao(); //退票信息void save1();//void main()//主函数{ int j;save1();do{printf(" \n");printf(" ★--- 您好,欢迎进入自制飞机订票系统!---★\n");printf(" \n");printf("********************************************************************* *\n");printf(" \n");printf(" -------- ☆ 1.输入航班信息☆-------- \n\n" " -------- ※ 2.浏览航班信息※-------- \n\n"" -------- ☆ 3.查找航班信息☆-------- \n\n"" -------- ※ 4.订票信息※-------- \n\n"" -------- ☆ 5.退票信息☆-------- \n\n"" -------- *0.退出* -------- \n\n"); printf(" \n");printf("********************************************************************* **\n");printf(" \n");printf(" 请在0-5中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1: input();//调用输入模块break;case 2:order();//调用打印模块break;case 3:search();//调用查找模块break;case 4:dingpiao();//调用订票模块break;case 5:tuipiao();//调用退票模块break;case 0:;break;}}while(j!=0); //判断结束printf("谢谢使用,再见!\n");}//主函数结束void input()//信息录入{ int y;{FILE *fp;//定义文件指针if((fp=fopen("plane.txt","wb"))==NULL)//打开文件并判断是否出错{printf("创建文件失败!\n\n");//打印出错提示getchar();return;}printf("→→→→→→→→→→→→→→→→→\n");printf("请依次输入航班信息\n\n""完成输入信息请键入0以回车键结束\n\n"); //提示信息printf("←←←←←←←←←←←←←←←←←\n");for(i=0;i<N;i++){printf("请输入航班号: \n");scanf("%d",&s[i].num); //读取航班号printf("请输入起始站: \n");scanf("%s",s[i].start);//读取起始站printf("请输入终点站: \n");scanf("%s",s[i].over);//读取终点站printf("请输入时间: \n");scanf("%s",s[i].time);//读取时间printf("请输入机票数(机票数为0结束输入): \n",);scanf("%d",&s[i].count);//读取机票数m++;//统计输入的航班总数printf("信息已经输完是否继续?请输入任意数字键并回车继续,按0键回车结束",m);scanf("%d",&y);if(y==0){save();//将结构体信息存盘break;}}}}void save()//保存模块程序{ FILE *fp;//定义文件指针if((fp=fopen("plane.txt","wb"))==NULL)//打开文件并判断是否出错{printf("创建文件失败!\n\n");//打印出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(struct plane),1,fp)==0)//写入数据判断是否出错printf("向文件输入数据失败!\n\n");fclose(fp);//关闭文件}void save1(){if(access("plane.txt",0))//判断文件是否存在{input();//调用输入模块}elsesave();//调用保存模块}void read()//从文件读取信息模块{FILE *fp;//定义文件指针if((fp=fopen("plane.txt","rb"))==NULL)//打开文件,并判断是否出错{printf("出错,请检查文件是否存在,按z键回车返回主菜单");//错误提示getchar();return;}i=0;while(!feof(fp)){fread(&s[i],sizeof(struct plane),1,fp);//从文件中读取信息i++;m++;}m--;fclose(fp);//关闭文件}void order()//升序排列航班信息模块{int i,j;//冒泡法排序struct plane t;for(i=0;i<m;i++){for(j=0;j<m-1;j++)if(s[j].num>s[j+1].num){t=s[j+1];s[j+1]=s[j];s[j]=t;}}{char w[20];printf("航班号起始站终点站飞行时间机票总数已售票数\n");for(i=0;i<m;i++){printf(PRINT);//打印信息}printf("请按z键回车键结束返回主菜单:\n");scanf("%s",w);}}void search()//查询模块{char name1[20];char name2[20];char hb[10];int n,b;do{printf("→→→→→→→→→→→→→→→→→\n"); printf("请选择查找方式:\n\n");//打印查询方式菜单printf("—— 1.按航班号查找——\n\n""—— 2.按起始站查找——\n\n""—— 3.终点站查找——\n\n""—— 0.返回——\n\n");printf("←←←←←←←←←←←←←←←←←\n"); printf("请在0-3中选择:\n\n");scanf("%d",&n);//读取查找方式if(n==0)break;switch(n){case 1:printf("请输入航班号: \n");scanf("%d",&b);//航班号break;case 2:printf("请输入起始站名称: \n");scanf("%s",name1);//读取终点站break;case 3:printf("请输入终点站名称: \n");scanf("%s",name2);//终点站break;}read();//调用读取函数for(i=0;i<m;i++){ if(strcmp(s[i].start,name1)==0)//按起始站判断输出条件{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站飞行时间机票总数已售票数\n");printf(PRINT);//打印信息break;}if(strcmp(s[i].over,name2)==0)//按终点站判断输出条件{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站飞行时间机票总数已售票数\n");printf(PRINT);//打印信息break;}if(s[i].num==b)//按航班号判断输出条件{ printf("\n查找航班信息成功!\n");printf("航班号起始站终点站飞行时间机票总数已售票数\n");printf(PRINT);//打印信息break;}}b=0;//将航班号赋值为0printf("**查找完毕**\n\n");printf("此航班若是您需要查询航班,请输入yes并回车确定\n""此航班不是您需要查询的航班,请输入no并回车键重新查询:\n"); scanf("%s",hb);}while(strcmp(hb,"no")==0);//判断结束}void dingpiao()//订票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要订的机票数以回车键结束:\n");scanf("%d",&n);//读取所订机票数if(s[i].count<n)//判断机票数是否足够{printf(" 机票数不足!\n");break;}if(n<=0){printf("请输入有效的机票数!\n");//判断机票数是否出错break;}if(s[i].count!=0&&s[i].count>=n)//判断是否出错{s[i].count=s[i].count-n;s[i].ys=n;save();//调用保存函数printf("\n""\n");printf("Θ⊕订票成功⊕Θ!\n\n");}printf("是否继续订票?请输入yes或no以回车键结束:\n");//判断是否继续scanf("%s",a);}while(strcmp(a,"yes")==0);//判断结束getchar();}void tuipiao()//退票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要退的机票数目:\n");scanf("%d",&n);//输入所退票数if(s[i].ys<n)//判断可退机票数是否足够{printf(" 可退机票数不足!\n"); break;}if(n<=0) //判断票数是否有效printf("请输入有效的机票数!\n");s[i].count=s[i].count+n;s[i].ys=s[i].ys-n;save(); //调用保存模块printf(" \n""⊙☉退票成功!☉⊙\n\n"" \n");printf("是否继续退票?请键入yes或no以回车键结束:\n\n");//是否继续scanf("%s",a);}while(strcmp(a,"yes")==0);//判断并跳出循环getchar();}。
飞机订票系统(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 <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000typedef 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<n;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<n;i++){printf_one(i);printf("\n");}getchar();getchar();menu();}void order() /*排序模块(按平均成绩)*/{int i,j;struct plane s;system( "cls" );for(i=0;i<n;i++) /*冒泡法排序*/{for(j=i+1;j<n;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<n;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<n;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<n;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;}elsereturn 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");}}elseprintf("该航班不存在!\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<n;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<n;i++)if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1){printf(" error\n");w=0;}if(w==1){printf(" 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 !");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();}第二部分:函数流程图(2)enter函数流程图第三部分:心得体会(1)开始对c语言只是一种零散的认识,作为一个c语言的初学者对编程没有明确的概念,只是对语句的格式与编程规定有了一个初步了解。
数据结构课程设计:飞机订票系统设计与实现 (里面附有源代码!)

课程设计题目飞机订票系统院系*******专业***************姓名******学号*********指导教师***2012年7月1. 需求分析问题描述基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。
本课程设计的题目为:飞机订票系统。
基本要求输入的形式和输入值的范围录入航班信息时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息)。
客户订票时,需要输入起飞抵达城市,然后选择航班进行查询,选择航班时需要输入航班号,值为字符串。
客户退票时,需要输入姓名,证件号进行退票操作,值为字符串。
查询某个航班的情况时,需要输入航班号,值为字符串;在查询某个航线的情况时,还可以通过输入起飞抵达城市来查询,值为字符串。
查询某个订单时,需要输入订单号,值为整型(int);或者需要输入客户姓名和证件号,值为字符串。
修改航班时,需要输入字符型数据选择进行何种修改操作;增加航班时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息);删除航班时,需要输入要删除的航班的航班号;修改航班时间时,需要输入要修改的航班的航班号,修改后的航班起飞时间和抵达时间。
输出形式在所有操作后的输出中都显示操作是否正确以及操作后单链表的内容。
基于C语言的航空订票系统的设计与实现

基于C语言的航空订票系统的设计与实现航空订票系统是通过计算机技术对航空公司的航班信息和乘客信息进行管理和处理的系统。
本文将介绍基于C语言的航空订票系统的设计与实现。
具体包括系统的需求分析、系统的设计与架构、系统的实现和功能特点等方面。
一、系统的需求分析在设计和实现航空订票系统之前,需要明确系统的需求,包括基本功能和用户需求等。
基本功能包括航班查询、座位预订、票价计算、乘客信息管理等。
用户需求包括操作简便、查询快速、信息准确等。
二、系统的设计与架构1.系统架构设计航空订票系统采用客户端/服务器(Client/Server)架构设计。
客户端负责与用户进行交互,接收用户的输入并向服务器发送请求。
服务器负责处理客户端的请求,访问数据库获取相应的数据并返回给客户端。
2.数据库设计三、系统的实现1.用户界面设计在客户端实现用户界面,提供菜单和命令行交互的方式供用户操作。
菜单包括航班查询、座位预订、票价计算、乘客信息管理等功能选项。
2.功能实现(1)航班查询功能用户输入出发地和目的地,系统从数据库中查询符合条件的航班信息,并显示在用户界面上。
用户可以选择其中一条航班进行预订。
(2)座位预订功能用户选择一条航班后,系统显示该航班的座位信息,并提示用户选择座位号。
用户选择座位后,系统生成一个订单号,并将订单信息保存到数据库中。
(3)票价计算功能用户选择一条航班后,系统显示该航班的票价信息,并提示用户输入乘客人数和票价类型。
系统根据输入的信息计算总票价并显示给用户。
(4)乘客信息管理功能用户可以添加、修改和删除乘客信息。
当用户进行座位预订时,系统要求用户输入乘客信息,可以选择已有的乘客信息或新添加乘客信息。
四、系统的功能特点1.操作简便:用户可以通过菜单方式选择需要的功能,操作简单快捷。
2.查询快速:系统利用数据库索引技术,提高了查询速度,用户可以快速获取所需信息。
3.信息准确:系统通过数据库管理相关信息,并通过数据校验保证数据的准确性。
数据结构课程设计《订票系统(航空)》报告+源代码

数据结构课程设计——《订票系统》目录一、设计任务与要求 (2)1。
1 总体目标与任务要求 (2)1。
2 题目选择与目的意义 (2)1.3 所选题目的主要工作 (2)二、需求分析 (3)2.1 用户需求分析 (3)2.2 功能需求分析 (3)2。
3 系统需求分析 (3)三、概要设计 (4)3.1 各模块的算法设计说明 (4)3.2 存储结构设计说明 (9)四、详细设计 (11)五、源代码 (12)六、运行结果分析 (23)七、收获与体会 (30)八、主要参考资料 (30)一、设计任务与要求1。
1 总体目标与任务要求制作一个订票系统,通过此系统可以实现如下功能:1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定).2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。
3)订票:可以订票,如果该航班已经无票,可以提供相关可选择航班(订票情况可以存在一个数据文件中,结构自己设定)。
4)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
5)修改航班信息:当航班信息改变可以修改航班数据文件。
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
1.2 题目选择与目的意义选择这个题目的原因是,订票系统在现实生活中应用很广泛,通过这个系统可以使订票、退票等变得简便。
与传统的人工用纸、笔来记录办理订票、退票等相比,使用这个系统也会增加工作效率。
这个题目做出来的系统还是比较实用的,所以我选择了订票系统这个题目.完成此系统,需要综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。
VB的航空售票系统航空订票系统课程设计方案(含源程序)

基于VB的航空售票系统(access数据库)一、系统需求分析随着全球进入信息化时代,航空公司为了适应当前越来越激烈的竞争,增强公司的信息化程度,提高公司的售票管理的效率,就建立起了相应的航空预订票系统,成功实现提高了航空系统的售票效率和管理水平。
本系统是利用VB6.0作为开发语言,Microsoft access作为后台数据库的航空预订票系统。
功能分析:本系统主要分为四个功能模块,包括登录、订票管理、退票管理和系统重置四方面内容。
运行环境:Win98、Win2000等操作系统,内存大于64,CPU主频P233以上的机器。
二、系统设计1.系统软件总体设计(1)数据库表设计系统数据库中有航班信息表、乘客信息表。
(2系统软件设计遵循模块化程序设计的思想,自顶向下,步步求精。
系统程序由订票模块、退票模块和系统重置模块组成。
此系统为单机试用版。
(32系统流程三、系统使用说明本系统分为订票管理、退票管理和系统重置四个主要功能模块。
主界面窗口见图(1)图(1)1.订票管理(1)订票管理的查询模块见图(2)。
图(2)在这窗口中能够查询所有的航班信息,见图(3)。
图(3)在查询模块中也能查询具体的某一天某一趟航班的信息,2003-12-2A2次航班查询见图(4)。
图(4)(2)订票窗口见图(5)。
图(5)如果某一次航班的客满,将会不显示本次航班没有座位的信息。
如果某位乘客已经订过某一趟航班,系统将会提示此乘客已经订过次趟航班,不允许其在订票。
如果说乘客没有订过此趟航班,航班也有座位,则允许其订票。
见图(6)。
图(6)2.退票管理退票窗口见图(7)。
图(7)在本窗口中,可输入乘客所要退的票,如果机票为有效票,见图所示(8)。
图(8)如果机票为无效票,系统将会提示“此机票为无效票!“3.系统重置图(9)所显示的就是系统重置中的数据清空功能。
在图(9)所示的系统重置中,选择数据清空的功能按钮,清空数据库中的数据,能重新使用该系统。
c语言程序设计飞机,C语言程序设计――飞机订票系统

c语⾔程序设计飞机,C语⾔程序设计――飞机订票系统《C语⾔程序设计――飞机订票系统》由会员分享,可在线阅读,更多相关《C语⾔程序设计――飞机订票系统(7页珍藏版)》请在⼈⼈⽂库⽹上搜索。
1、C语⾔程序设计飞机订票系统代码如下:”#include stdio.h#include stdlib.h#include string.h#define LEN sizeof (struct plane)#define MAX 10;struct planechar destination12;char num10;char time12;int price;int amount;typedef struct plane PLANE;PLANE a100;void menu();void input();void search();void preserve();void planeadd()。
2、;void delplane();void main()system(cls);menu();void menu()char *menu = * 欢迎进⼊飞机订票系统*, a:输⼊航线 , b:查询航线 , c:退订票系统 , d:追加航线 , e:删除航线 , f: 退出 ,* ;int i;char NO;int quit = 0;dosystem(cls);for (i = 0; i9; i+)printf(n%s,menui);printf(n请输⼊服务代码a,b,c,d,e或fn);NO = getchar();switch (NO)casea: input(); break;ca。
3、seb: search(); break;casec: preserve(); break;cased: planeadd(); break;casee: delplane(); break;casef: quit = 1; break; while (!quit);void input()int i, n;FILE *fp;system(cls);if (fp = fopen(D:file, wb) = NULL)printf(error!n); exit(0);printf(n请输⼊航班总数n:);scanf(%d, &n);printf(n请按下⾯提⽰输⼊航班信息:起点站:沈阳);for。
飞机订票系统的设计与实现

四 详细设计与系统实现
查询界面
当用户在首页点击查询按钮并登陆成功后将进入Query_flight.jsp界面如图所示, 系统提示用户填写信息,表单通过javascript验证,填写正确信息后点击查询按 钮,查询界面调用JavaBean,即Db_Flight.java中的openConnection()方法连 接数据库,通过request.getParameter()的方法获得用户填写的信息,通过数 据库查询语句得到所需数据,并将数据显示在Query_OK.jsp页面中。
字段说明 管理员编号 (主键)
密码
3
AdministratorName varchar(50) NOT NULL 管理员姓名
三 总体设计
FlightInfo表(航班信息表)
序号
1 2 3 4 5 6 7 8
字段名
字段类型 是否为空 字段说明
FlightID
Char(6) NOT NULL 航班号(主键)
地址
6
ID
varchar(20) NOT NULL
身份证号
7
Tel
varchar(20) NOT NULL
电话
Administrtor表(管理员表,保存管理员相关信息)
序号
1 2
字段名
AdministratorID Password
字段类型 是否为空
varchar(18) NOT NULL varchar(15) NOT NULL
OrderDate Datetime(50) NOT NULL
OrderNum Char(8) NOT NULL
Total
Money(8) NOT NULL
FlightID Char(8) NOT NULL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计题目飞机订票系统院系*******专业***************姓名******学号*********指导教师***2012年7月1. 需求分析1.1 问题描述基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。
本课程设计的题目为:飞机订票系统。
1.2 基本要求1.2.1 输入的形式和输入值的范围录入航班信息时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息)。
客户订票时,需要输入起飞抵达城市,然后选择航班进行查询,选择航班时需要输入航班号,值为字符串。
客户退票时,需要输入姓名,证件号进行退票操作,值为字符串。
查询某个航班的情况时,需要输入航班号,值为字符串;在查询某个航线的情况时,还可以通过输入起飞抵达城市来查询,值为字符串。
查询某个订单时,需要输入订单号,值为整型(int);或者需要输入客户姓名和证件号,值为字符串。
修改航班时,需要输入字符型数据选择进行何种修改操作;增加航班时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息);删除航班时,需要输入要删除的航班的航班号;修改航班时间时,需要输入要修改的航班的航班号,修改后的航班起飞时间和抵达时间。
1.2.2 输出形式在所有操作后的输出中都显示操作是否正确以及操作后单链表的内容。
其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。
录入航班情况时,输出显示添加航班信息是否成功。
客户订票时,当客户输入起飞抵达城市后,输出可供客户选择的航班信息;客户选择了航班后,输入提示信息告知用户订票是否成功。
客户退票时,输出客户退票成功或者无此客户,无法退票。
查询航班时,输出显示对应的航班信息,或者输出提示信息告知没有相应的航班信息。
查询订单时,输出显示对应的订单信息,或者输出提示信息告知没有相应的订单信息。
修改航班时,输出对应的提示的信息,提示操作是否成功。
1.2.3 功能要求(1)可以录入航班情况,数据存储在一个数据文件中;(2)可以查询某个航线的情况:输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓;输入起飞抵达城市,查询飞机航班情况;(3)可以订票,订票情况存在一个数据文件中(如果该航班已经无票,提供相关可选航班);(4)可退票并且退票后修改相关数据文件;(5)客户资料:姓名,证件号,订票数量及航班情况,订单要有编号;(6)修改航班信息,当航班信息改变可修改航班数据文件;(7)要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
2. 概要设计2.1 数据结构(1)航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞时间、降落时间、起飞城市、抵达城市、航班票价、票价折扣、确定航单链表如下:每个结点包括数据域和指针域:C语言描述如下:typedef struct flightnode{char air_num[10];//航班号char start_time[15];//起飞时间char end_time[15];//抵达时间char start_place[20];//起飞城市char end_place[20]; //降落城市int left; //空座数float price; //票价float price_discount;//票价折扣int isFull; //航班是否满仓}flightnode;//航班结点(2)客户的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元每个结点包括数据域和指针域:C 语言描述如下:typedef struct passengernode{//定义客户资料结点 char name[20]; //姓名 char ID_num[20]; //证件号 char flight_num[10];//航班号 int order_num; //订单号 int ticket_num;//订票数量struct passengernode *next;//指向下一个结点 }passengernode;(3)客户链表:每个数据元素包括头指针和尾指针两个数据项: 每个结点包括两个指针域:C 语言描述如下:typedef struct passengerList{ passengernode *head; passengernode *rear; }passengerList;2.2 程序模块2.2.1 录入航班信息模块void add_flight(flightnode *&h)调用void insert_flight(flightnode *&h,char*flight_num,char* start_place,char* end_place,char* start_time,char* end_time,int left,float price,float price_discount,int isFull)函数,将新航班结点插入航班链表中。
2.2.2 客户订票模块int book(flightnode *&h,passengerList *&PList)函数调用intinsert_passenger(passengernode *&h,char *name,char *ID_num,char *flight_num,int ticket_num,int order_num)函数,将新客户结点插入客户链表中。
2.2.3 客户退票模块void cancel(passengerList *&PList,flightnode *&h)函数调用intdelete_passenger(passengerList *&PList,flightnode *&h,char *name,char *ID_num)函数,将相应的顾客结点删除,并修改相应的航班信息。
2.2.4 查询航班模块void flight_check(flightnode *h)调用void check_all_flight(flightnode *h)函数进行所有航班信息浏览,调用int place_check(flightnode *h,char *start_place,char *end_place)函数按起飞抵达城市对航班进行查询,调用int flight_num_check(flightnode *h,char *flight_num)按航班号对航班进行查询。
2.2.5 查询订单模块void passenger_check(passengerList *PList)调用void check_all_passenger(passengerList *PList)函数进行所有订单信息浏览,调用int order_num_check(passengerList *PList,int order_num)函数按订单号对订单进行查询,调用int ID_name_check(passengerList *PList,char *name,char *ID_num)按客户姓名和证件号对订单进行查询。
2.2.6 修改航班模块增加航班时,void modify_flight(flightnode *&h,passengerList *&PList)函数调用void add_flight(flightnode *&h)函数,将新航班信息结点插入航班链表中。
删除航班时,void modify_flight(flightnode *&h,passengerList *&PList)函数调用void delete_flight(flightnode *&h,passengerList *&PList)函数将相应的航班信息删除,并删除相应的订单信息。
修改航班时间时,void modify_flight(flightnode *&h,passengerList *&PList)函数修改指定航班的起飞抵达时间。
2.3 各模块之间的调用关系以及算法设计2.3.1 各模块之间的调用关系2.3.2 算法设计void init_flight(flightnode *&h):要建立一个以h为头结点的空链表,录入航班信息和增加航班后将航班结点插入该链表。
void init_passengerList(passengerList *&pList):建立一个带有头指针和尾指针的空链表,存储带有顾客信息的结点。
void save_flight(flightnode *h):保存航班信息到指定数据文件中。
void load_flight(flightnode *&h):从存储航班信息的文件导入航班信息到航班链表中。
void save_passenger(passengerList *PList):保存客户信息到指定数据文件中。
void load_passenger(passengerList *&PList):从存储客户信息的文件导入客户信息到客户链表中。
void add_flight(flightnode *&h):录入航班信息后调用insert_flight函数增加航班。
void insert_flight(flightnode *&h,char* flight_num,char* start_place,char* end_place,char* start_time,char* end_time,int left,float price,float price_discount,int isFull):在录入航班情况或增加新的航班后,将新的航班结点插入到航线链表中。
int book(flightnode *&l,passengerList *&PList):要完成客户订票,将客户结点插入客户链表中,并修改相应的航班信息。