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

struct airline *find()
/*根据系统提出的航班号查询并以指针形式返回*/
{ struct airline *info;
char number[10];
int i=0;
info=start;
printf("请输入航班号:");
scanf("%s",number);
if(!(info=find())) return;/*根据客户提供的航班号进行查询,如为空,退出该模块*/
printf("请输入你订票所需要的数量:");
scanf("%d",&amount);
if(amount>info->tkt_amt)/*若客户订票额超过乘员定票总额,退出*/
linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/
}lineinfo;
struct airline *start;
struct airline air[MAXSIZE]={{"北京","1","001","SUN",30,15},
{"上海","2","002","MON",40,10},
strcpy(new1->name,name);
new1->ord_amt=amount;
new1->grade=grade;
new1->next=NULL;
if(head==NULL)/*若原无订票客户信息*/
C语言版本飞机订票系统.doc

订票系统1.需求分析任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;2:主要设计思路:1)算法构造流程图:A:主菜单:主菜单0123456789输列出按航按订票退票修改保存读取退出入航班班号城程序系统飞机文件文航的信查询市航班件、班息航班来的信下载的信息查息文件信询息航班B:各分块模板的构造流程图:0.输入航班的信息航班起飞城号市降落城出发时降落时剩下的座市间间位价格折扣1.列出航班的信息继续y退出n2.按航班号查询航班信息输入所需要查询的航班号显示这个航班的的信息3.按城市来查询航班输入起飞城市输入降落城市显示这个航班的信息4.订票程序输入号码输入名字输入ID需要定的票数航班号5.退票系统输入你 ID输入航班号6. 修改飞机航班的信息否定0确定退票 1输入要修改的航班号重新输入新的航班信息7.保存文件显示保存成功3:功能函数设计:(1):订票系统主菜单函数 menu_select( )本函数主要构造系统的主菜单,系统需要实现很多功能,并且各个功能需要各自的函数支持,所以通过主菜单可以轻松的进入各个函数下实现各自的功能,故主菜单显得尤为重要。
其实就是通过键盘输入选择项,然后通过scanf 接受,在通过 swtich判断进入各个选择项。
(2):工作人员管理函数 enter()&change ()系统需要各个航班的详细信息,所以需要工作人员把信息输入系统里,以供乘客查询订票。
C语言飞机订票系统

#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>#include <stdlib.h>#include <malloc.h>#include <math.h>//overflow#define ok 1typedefstructYidingkehu{//单链表char name[15];//已订票的客户姓名intdingpiaoshu;//已订票数量structYidingkehu *next1;//}Yidingkehu,*Link; typedefstructWeidingkehu{//单链队char name[15];//预订票的客户姓名intyudingpiao;// 要订票数量structWeidingkehu *next2;//下一个链队结点指针}Weidingkehu,*Qptr;typedefstructHangxian{//创建一个含有六个信息的结构体char hangbanhao[15];//航班号-char feijihao[15];//飞机号intfeixingriqi;//起飞时间intchenkerenshu;//座位数intyupiao;//余票char zhongdianzhai[15];//降落城市structHangxian *next;//指向下一个链结点的指针structYidingkehu *yiding;//定义一个指向已订票客户的头结点指针structWeidingkehu *yudingqueue;}Hangxian,*Linklist;LinklistInitLinklist();//01intInsertLinklist(Linklist&head1);//02void hbhchaxun();//通过航班号查询void mddchaxun();//通过目的地查询void lurugongneng();//初始化录入功能void chaxungongnen();//查询功能void dingpiaogongnen();//订票功能void tuipiaogongnen();//退票功能void main(){int n;do{ //打印主界面printf("\t 欢迎使用航空客运订票系统\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t==>1. 录入功能==\n");printf("\t==>2. 查询功能==\n");printf("\t==>3. 订票功能==\n");printf("\t==>4. 退票功能==\n");printf("\t==>5. 退出==\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t请选择:");scanf("%d",&n);printf("\n");switch(n){case 1: lurugongneng();//录入功能break;case 2: chaxungongnen();//查询功能break;case 3: dingpiaogongnen();//订票功能break;case 4:tuipiaogongnen();//退票功能break;default :exit(0);//退出}}while(n==1||n==2||n==3||n==4);}void lurugongneng()//初始化的单链表*********************************************************录入功能{Linklist p;//intm,n;if(!p) exit(OVERFLOW);printf("\t请依次输入下面几项内容:\n\n");//这里的输入采用一个个单独输入,避免了乱赋值的现象printf("航班号\n");gets(p->hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车gets(p->hangbanhao);printf("飞机号\n");gets(p->feijihao);printf("终点站\n");gets(p->zhongdianzhai);printf("飞行日期\n");scanf("%d",&p->feixingriqi);printf("乘客总数\n");scanf("%d",&p->chenkerenshu);printf("余票数\n");scanf("%d",&p->yupiao);}void chaxungongnen()//******************************************************************查询功能{int n;printf("\t 查找航线信息\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t==>1. 通过目的地查询==\n");printf("\t==>2. 通过航班号查询==\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t请选择:");scanf("%d",&n);printf("\n");//格式化switch(n){case 1:mddchaxun();break;case 2:hbhchaxun();break;default :break;}void mddchaxun()//通过目的地查询{char c[15];int m;Linklist p=L;printf("\t请输入要查询的目的地:");gets(c);gets(c);//原因同上do{p=p->next;if(p){m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;if(m==0){printf("\t航班信息:\n");printf("\t航班号:%s\n",p->hangbanhao);printf("\t飞机号:%s\n",p->feijihao);printf("\t飞行时间:周%d\n",p->feixingriqi);printf("\t余票量:%d\n",p->yupiao);}}else{//如果不匹配的话就做printf("\t对不起没有你要找的目的地:\n\n"); m=0;}}while(m!=0);}void hbhchaxun()//通过目的地查询char c[15];int m;Linklist p=L;printf("\t请输入要查询的航班号:");gets(c); gets(c);printf("\n");do{p=p->next;if(p){m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p->的作用是一样的if(m==0){printf("\t航班信息:\n");printf("\t航班号:%s\n",p->hangbanhao);printf("\t飞机号:%s\n",p->feijihao);printf("\t飞行时间:周%d\n",p->feixingriqi);printf("\t余票量:%d\n\n",p->yupiao);}}else{//如果不匹配的话就做printf("\t对不起没有你要找的航班号:\n"); m=0;}}while(m!=0);}void dingpiaogongnen()//***************************************************************订票功能{char c[15];int m=1,piao,ydpiao=0,yd=0,n;//gets(c);printf("请输入终点站名:"); gets(c); printf("\n");p=L->next;if(p) {do{//查找一下,是否有这个航班if(!p){printf("对不起,没有你要找的航班:\n\n");goto loop1;}m=strcmpi(p->zhongdianzhai,c);if(m==0){printf("航班信息:\n");printf("航班号:%s\n",p->hangbanhao);printf("飞机号:%s\n",p->feijihao);printf("飞行时间:周%d\n",p->feixingriqi);printf("余票量:%d\n",p->yupiao);}else p=p->next;}while(m!=0);if(m==0){do{printf("\n请输入你要订的票数:"); scanf("%d",&piao);if(piao<=p->yupiao){h=p->yiding;if(h){h1=h;h=h->next1;h=(structYidingkehu*)malloc(sizeof(Yidingkehu)); printf("请输入你的名字:");gets(h->name);gets(h->name);h->dingpiaoshu=piao;h->next1=h1->next1;h1->next1=h;p->yupiao=p->yupiao-piao;printf("订票成功:\n"); m=2;}}else{printf("余票量:%d\n",p->yupiao);printf("对不起,余票%d 张不足,不能完成订票\n\n",p->yupiao);printf(" 是否要重新订票?\n");printf("需要请输入1 否则请按2 预订请输入3 : ");scanf("%d",&m);printf("\n");if(m==3) goto loop3;}}while(m==1);}}else if(!p){loop3: structWeidingkehu *q3;printf("对不起,该航班的票已售完\n");q.front=p->yudingqueue;if(q.front==q.rear) printf("没有人预订票,是否要预订?\n");else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n");printf("预订请输入1 否则输入2 : ");scanf("%d",&n);printf("\n");if(n==1){printf("请输入你的姓名"); gets(q3->name); gets(q3->name);//q3不能指向name??? printf("请输入订票数"); scanf("%d",&q3->yudingpiao);q3->next2=NULL;q.rear->next2=q3;q.rear=q3;printf(" 你已经预订了!\n");}}loop1:;}void tuipiaogongnen()//***************************************************************退票功能{}。
c语言飞机订票系统设计

课程设计说明书学院、系:专业:学生姓名:学号:设计题目:飞机订票系统设计起迄日期:指导教师:日期: 2017年5月12日1 设计目的(1)实现航班的设定、航班信息的浏览和航班的查询。
(2)实现乘客的飞机票的订购、退票以及所定票的查询。
2 任务概述本飞机共有80个坐位,分20排,每排4个位子。
编号为A,B,C,D。
如10D 表示 10排D座。
A和D靠窗,19到20排为吸烟区。
本系统可让乘客自己选座号和区域直到乘客满意为止,无法满足的话,只能改乘另一个航班。
定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。
3 模块划分图3-1 功能模块图4 主要函数说明及其N-S图(1)主菜单函数:功能的选择(2)航班设定函数:设定航班数量、航班的起始点、航班时间(3)航班浏览函数:按时间查找浏览、按降落地点查找(4)乘客订票函数:乘客姓名、身份证号以及所定航班的所有信息[1]、无烟区函数[2]、吸烟区函数(5)乘客退票函数:航班号、姓名和身份证号(6)乘客信息浏览:乘客姓名、身份证号、座位号和航班号(7)文件保存(8)文件载入(9)退出飞机订票系统N-S图1、航班设定图4-1 航班设定N-S图2、输入客户信息图4-2 输入客户信息N-S图3、浏览航班信息图4-3 浏览航班信息N-S图4、乘客订票图4-4 乘客订票N-S图5、乘客退票图4-5 乘客退票N-S 图5 程序运行数据及其结果图5-1 主菜单图5-2 航班设定图5-3 航班浏览图5-4 机票订购图5-5 乘客退票图5-6 售票信息浏览6 课程设计心得通过这次C语言的课程设计,首先让我回忆和重新巩固C语言方面的知识,其次让我明白了做任何事情不可能一次性成功,只有不断地练习,不断地改正、思考才能做出自己的东西。
这次的实验也是很好磨炼我们意志的机会,因为数个小时都待在机房,让我们提前体验自己专业的工作方式。
C语言是我们学习的一种基本语言,无论是在以后的学习还是工作中都有非常重要的作用和不可替代的作用。
c语言飞机订票系统设计

课程设计说明书学院、系:专业:学生姓名:学号:设计题目:飞机订票系统设计起迄日期:指导教师:日期: 2017年5月12日1 设计目的(1)实现航班的设定、航班信息的浏览和航班的查询。
(2)实现乘客的飞机票的订购、退票以及所定票的查询。
2 任务概述本飞机共有80个坐位,分20排,每排4个位子。
编号为A,B,C,D。
如10D 表示 10排D座。
A和D靠窗,19到20排为吸烟区。
本系统可让乘客自己选座号和区域直到乘客满意为止,无法满足的话,只能改乘另一个航班。
定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。
3 模块划分图 3-1 功能模块图4 主要函数说明及其N-S图(1)主菜单函数:功能的选择(2)航班设定函数:设定航班数量、航班的起始点、航班时间(3)航班浏览函数:按时间查找浏览、按降落地点查找(4)乘客订票函数:乘客姓名、身份证号以及所定航班的所有信息 [1]、无烟区函数 [2]、吸烟区函数(5)乘客退票函数:航班号、姓名和身份证号(6)乘客信息浏览:乘客姓名、身份证号、座位号和航班号(7)文件保存(8)文件载入(9)退出飞机订票系统N-S图1、航班设定图 4-1 航班设定 N-S图2、输入客户信息图 4-2 输入客户信息 N-S图3、浏览航班信息图 4-3 浏览航班信息 N-S图4、乘客订票图 4-4 乘客订票 N-S图5、乘客退票图 4-5 乘客退票 N-S 图5 程序运行数据及其结果图 5-1 主菜单图 5-2 航班设定图 5-3 航班浏览图 5-4 机票订购图 5-5 乘客退票图 5-6 售票信息浏览6 课程设计心得通过这次C语言的课程设计,首先让我回忆和重新巩固C语言方面的知识,其次让我明白了做任何事情不可能一次性成功,只有不断地练习,不断地改正、思考才能做出自己的东西。
这次的实验也是很好磨炼我们意志的机会,因为数个小时都待在机房,让我们提前体验自己专业的工作方式。
C语言是我们学习的一种基本语言,无论是在以后的学习还是工作中都有非常重要的作用和不可替代的作用。
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。
大一C语言课程设计--飞机订票系统

⼤⼀C语⾔课程设计--飞机订票系统#include#include#includestruct airplane{int num;char begin[20];char end[20];char time[20];double fee;int count;}plane[2014];void home();void input();void del();void scan();void book();void change();void quit();void sou();void save();void read();void home(){int a,i,j;printf("\n\n *****************************欢迎进⼊飞机票务系统*****************************\n\n");printf("==========您好,现在要确认您的⾝份!票务⼈员请按 1 ,旅客请按 0 ===========");scanf("%d",&a);if(a==1)do{printf("\n\t\t^o^o^o^o^o^o^o^o^ 1.输⼊航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 2.删除航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 3.浏览航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 0.退出 ^o^o^o^o^o^o^o^o^\n\n");printf("请在0~3之间选择您要进⾏的操作 ");scanf("%d",&i);if(i>=0&&i<=3)switch(i){case 0: break;case 1:input(); break;case 2: del(); break;case 3:scan(); break;}else{printf("\n输⼊错误!!\n\n\n");continue;}printf("\n\n **************************以⾼度负责的态度做好春运⼯作**************************\n\n");} while(i!=0);if(a==0)do{printf("\n\t\t<><><><><><><><><><> 1.订票 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 2.改签 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 3.退票 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 4.浏览航班信息 <><><><><><>\n");printf("\t\t<><><><><><><><><><> 5.查询 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 0.退出 <><><><><><><><><><>\n\n");printf("请在0~5之间选择您要进⾏的操作");scanf("%d\n\n",&j);if(j>=0&&j<=5)switch(j){case 0: break;case 1:book(); break;case 2:change(); break;case 3:quit(); break;case 4:scan(); break;}else{printf("\n输⼊错误!!\n\n\n");continue;}printf("\n\n *******************春节即将到来,提前祝您春节快乐,出⾏平安********************\n\n"); } while(j!=0);}void input() // 输⼊航班{char sysm[]="jim007";char youm[20];int i,m;printf("请输⼊密码: ");scanf("%s",youm);if(strcmp(sysm,youm)!=0){printf("输⼊密码错误!请确认您是否是票务⼈员,如不是,请按任意键返回菜单重新选择" ); getchar();getchar();home();}else{system("cls");printf("请问要输⼊⼏个航班信息: ");scanf("%d",&m);printf("\n\n******************************************************************\n\n");for(i=0;i{printf("请输⼊航班号:\n");scanf("%d",&plane[i].num);printf("请输⼊起飞地点:\n");scanf("%s",plane[i].begin);printf("请输⼊降落地点:\n");scanf("%s",plane[i].end);printf("请输⼊起飞时间:\n");scanf("%s",plane[i].time);printf("请输⼊票价:\n");scanf("%lf",&plane[i].fee);printf("请输⼊机票数:\n");scanf("%d",&plane[i].count);}getchar();home();}}void del() //删除模块{char be[20];char en[20];char sysm[]="jim007";char youm[20];int i,w,p,q,k=0;printf("请输⼊密码: ");scanf("%s",youm) ;if(strcmp(sysm,youm)!=0){printf("输⼊密码错误!请确认您是否是票务⼈员,如不是,请按任意键返回菜单重新选择" );getchar();getchar();home();}elseprintf("1.按航班号删除 \n");printf("2.按航线删除 \n");printf("请在1-2中选择删除⽅式: ");scanf("%d",&q);switch(q){case 1:printf("请输⼊航班号: ");scanf("%d",&p);break;case 2:printf("请输⼊起飞地点: ");scanf("%s",be);printf("请输⼊降落地点: ");scanf("%s",en);break;}printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;i{if(q==1&&plane[i].num==p){k++;printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }if(q==2&&strcmp(plane[i].begin,be)==0&&strcmp(plane[i].end,en)==0){k++;printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }}if(k=0)printf("没有找到此航班,⽆法删除!");elseprintf("确定删除请按 1 否则请按 0:\n\n");scanf("%d",&w);if(w==1)for(i=0;i{plane[i].num=0;strcpy(plane[i].begin,"0");strcpy(plane[i].end,"0");strcpy(plane[i].time,"0");plane[i].fee=0;plane[i].count=0;}getchar();getchar();home();}void scan() //浏览{if(m==0)printf("\n\n⽆航班信息\n\n");else{printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;iprintf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }getchar();home();}void book() //订票模块{int i,a;struct airplane d;system( "cls" );do{sou();printf("请输⼊您要订的航班号: ");scanf("%d",&d.num);printf("请输⼊您要订的机票数: ");scanf("%d",&d.count);for(i=0;iif(result[i].num==d.num){if(result[i].count!=0&&result[i].count>= d.count){result[i].count=result[i].count- d.count;printf("恭喜您订票成功!祝您旅途愉快!\n");break;}if(result[i].count{printf("此航班只剩下%d张票,订票失败",result [i].count);break;}}printf("\n\n继续订票请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);void change() //改签模块{int i,num1,num2;system( "cls" );do{sou();printf("请输⼊您改签前的航班号: ");scanf("%d",&num1);printf("请输⼊您改签后的航班号: ");scanf("%d",&num2);for(i=0;iif(result[i].num==num1)result[i].count=result[i].count+1;for(i=0;iif(result[i].num==num2)result[i].count=result[i].count-1;printf("恭喜您改签成功!祝您旅途愉快!\n");break;printf("\n\n继续改签请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);void quit() //退票模块{int i,a;struct airplane f;system( "cls" );do{sou();printf("请输⼊您要退订的航班号: ");scanf("%d",&f.num);printf("请输⼊您要退订的机票数: ");scanf("%d",&f.count);if(d.count<0){printf("您输⼊的票数有误,请重新输⼊\n");break;}for(i=0;iif(result[i].num==f.num){result[i].count=result[i].count+ f.count;printf("恭喜您退票成功! \n");break;}elseprintf("抱歉,您输⼊的航班号有误!");printf("\n\n继续订票请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);}void sou() //查询模块{int i,c,d,e,t,j=0;struct airplane a;struct airplane result[20];system( "cls" );printf("\n\n请输⼊起飞时间:");scanf("%s",a.time);printf("\n\n请输⼊起飞地点:");scanf("%s",a.begin);printf("\n\n请输⼊降落地点:");scanf("%s",a.end);printf("请选择排序⽅式( 1:按航班号升序;2:按票价升序)")scanf("%d",&c);printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;i{if(plane[i].time==a.time&&strcmp(plane[i].begin,a.begin)==0&&strcmp(plane[i].end,a.end)==0) result[j]=plane[i]j++;}if(j==0)printf("抱歉,暂时没有该条件的航班!");if(j>0&&c==1){for(d=0;dfor(e=d+1;eif(result[e].num{t= result[e];result[e]= result[e-1];result[e-1]=t;}}if(j>0&&c==0){for(d=0;dfor(e=d+1;eif(result[e].fee{t= result[e];result[e]= result[e-1];result[e-1]=t;}}for(i=0;iprintf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n", result[i].num, result[i].begin, result [i].end, result[i].time, result[i].fee, result[i].count); }void save() //保存模块{FILE *fp;int i,w=1;system( "cls" );if((fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","w"))==NULL){printf("打开⽂件错误\n");exit(0);}for(i=0;iif(fwrite(fp,sizeof(struct airplane),1, &plane[i])==0){printf("⽂件保存错误!\n");exit(0);w=0;}if(w==1)printf("⽂件保存成功!\n");fclose(fp);getchar();getchar();home();}void read() //读取模块{int i;FILE *fp;if(fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","r")==NULL){printf("⽂件打开失败\n");exit(0);}else{while(!feof(fp))for(i=0;ifread(plane[i],sizeof(struct airplane),1,fp)}getchar();getchar();home();}。
C语言课程设计_飞机订票系统源代码

#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<process.h> //包含access函数的头文件#define N 9999 //定义最多的航班数#define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式struct air //定义结构体数组{int num; //定义航班号char start[20]; //航班起始站char over[20]; //终点站char time[10]; //飞行时间int count; //机票数量}s[N];int i,m=0; //定义全局变量char ii[10];void add(); //函数声明增加航班信息函数void print(); //显示航班信息void search(); //查找航班信息void dingpiao(); //订票业务void tuipiao(); //退票void read(); //读取文件void save(); //保存文件void output(); //输出格式void paixu(); //航班排序void chushihua(); //系统初始化void build(); //建立数据文件void paixu1(); //按航班号从小到大排序void paixu2(); //从大到小void main() //主函数{int j;chushihua(); //系统初始化判断是否存在原始数据文件printf(" 欢迎使用飞机订票系统\n"); //打印出系统主界面do{printf("============================================================ ==================== ");printf("1.增加航班信息\n""\t2.浏览航班信息\n""\t\t3.查找航班信息(按航班号)\t\t╮(╯_╰)╭\n""\t\t\t4.航班排序(按航班号)\n""\t\t\t\t5.订票业务\n""\to(︶︿︶)o\t\t\t6.退票业务\n""\t\t\t\t\t\t0.退出\n");printf("======================================================== ======================== ");printf("请在0-6中选择以回车键结束:");scanf("%d",&j);switch(j){case 1: add(); //调用增加航班函数break;case 2:print(); //调用显示模块break;case 3:search(); //调用查找模块break;case 4:paixu(); //调用排序函数break;case 5:dingpiao(); //调用订票模块break;case 6:tuipiao(); //调用退票模块break;case 0: //退出系统save();printf("谢谢使用,再见!");break;}}while(j!=0); //判断是否调用其他函数}void chushihua() //定义系统初始化函数{if(access("hangban.dat",0)){build();}elseread();}void build() //定义建立数据文件函数{FILE *fp; //定义文件指针if((fp=fopen("hangban.dat","wb"))==NULL) //打开文件并判定是否出错{printf("创建文件失败! "); //打印出错提示getchar();return;}printf("请依次输入航班信息(以回车键结束):\n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");for(i=0;i<N;i++){printf("请输入航班号: ");scanf("%d",&s[i].num); //输入航班号printf("请输入起始站: ");scanf("%s",s[i].start); //输入起始站printf("请输入终点站: ");scanf("%s",s[i].over); //输入终点站printf("请输入时间(星期几): ");scanf("%s",s[i].time); //输入时间printf("请输入机票数: ");scanf("%d",&s[i].count); //输入机票数fwrite(&s[i],sizeof(struct air),1,fp);m++;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",ii);if(strcmp(ii,"y")!=0) //判断是否继续添加航班信息{fclose(fp); //关闭文件return;}}}void read() //定义读取文件函数{FILE *fp;if((fp=fopen("hangban.dat","r"))==NULL){printf("创建文件失败! ");getchar();return;}i=0;while(!feof(fp)){fread(&s[i],sizeof(struct air),1,fp); //逐块读取数据i++;m++; //计算存在航班数}m--;fclose(fp);}void save() //定义保存函数{FILE *fp;if((fp=fopen("hangban.dat","wb"))==NULL){printf("创建文件失败! ");getchar();return;}for(i=0;i<m;i++) //逐块保存数据fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);}void add() //定义增加航班信息函数{do{printf("请依次输入您要增加的航班信息(以回车键结束): \n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");printf("请输入航班号: ");scanf("%d",&s[m].num); //读取航班号printf("请输入起始站: ");scanf("%s",s[m].start); //读取起始站printf("请输入终点站: ");scanf("%s",s[m].over); //读取终点站printf("请输入时间: ");scanf("%s",s[m].time); //读取时间printf("请输入机票数: ");scanf("%d",&s[m].count); //读取机票数m++;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",ii);}while(!strcmp(ii,"y")); //判断是否继续添加}void output() //定义输出格式函数{printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n"); //信息标题for(i=0;i<m;i++)printf(PRINT);//打印出信息}void print() //定义显示航班信息函数{printf("\n目前我们有如下航班:\n");output(); //调用输出格式函数printf("\n请按回车键返回上层菜单");getchar();getchar();}void search() //定义查询函数{int n;do{printf("\n请输入航班号:");scanf("%d",&n); //输入查询的航班号for(i=0;i<m;i++){if(s[i].num==n) //按航班号判定输出条件{printf("\n您所查找的航班信息为:\n ");printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n\n");printf(PRINT); //显示信息printf("\n查询完毕,按回车键继续");getchar();getchar();return;}}printf("\n对不起,没有您需要的信息!\n ");printf("是否重新查找?请键入y或n以回车键结束");scanf("%s",ii);}while(!strcmp(ii,"y"));//判定是否重新查找}void dingpiao() //定义订票业务函数{int n;char a[10]="y";do{search(); //调用查询模块if(!strcmp(ii,"n")){printf("对不起!没有找到您所需要的航班,所以不能订票。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
search()----------------------------------------------------20
book()------------------------------------------------------21
}
void browse()
{
int i;
system( "cls" );
puts("\n--------------------------------------------------------------------");
printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");
{
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");
scanf("%s",ti[i].EnPlace);
printf("请输入起飞时间:\n");
scanf("请输入航班的最大载客人数:\n");
scanf("%d",&ti[i].max);
printf("请输入航班的票价:\n");
printf("\n\nEnter the time:");
scanf("%s",s.data); /*输入出发的时间*/
puts("\n--------------------------------------------------------------------");
第三部分
心得体会------------------------------------------------25
第一部分:源程序
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 1000
typedef struct plane
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");
第一部分
源程序---------------------------------------------------3
第二部分
函数流程图--------------------------------------------11
menu()-----------------------------------------------------12
menu1()---------------------------------------------------16
order()-----------------------------------------------------17
search_time()---------------------------------------------18
}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);
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++) /*冒泡法排序*/
back()------------------------------------------------------22
save()------------------------------------------------------23
load()------------------------------------------------------24
enter()-----------------------------------------------------13
input()-----------------------------------------------------14
browse()---------------------------------------------------15
{
char ID[10]; /*航班代号*/
char BePlace[10];/*飞机起飞地点*/
char EnPlace[10];/*飞机降落终点*/
char data[15];/*飞机起飞时间*/
int max;/*飞机最大乘客人数*/
int price;/*飞机票价*/
int num;/*飞机已售票数*/
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);