适合初学者,基本上没什么难搞懂的地方,都是比较简单的结构体,循环。

功能要求及说明:
1)假设该民航有若干航班,要求实现增加航班和取消某个航班的功能。
2)查询:根据用户提出的终到站查询航班号、售票情况等航班信息;也可根据航班号,列出该航班已订票的乘客名单。
3)订票:根据航班号为客户订票,如该航班有余票,则为客户订票;如该航班已满员,则显示相应信息。
4)退票:按乘客要求退出已预定的机票。

代码如下:

/本文使用C++/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
const int MaxFlight=50; //最大的航班数
const int MaxPassenger=1000; //最大乘客数
int FlightNum=0;  //已经存在的航班个数
struct Passenger {  //结构体 存放乘客信息 char name[20];  //姓名 long long IDnum; int seat; //座位号
};
struct Flight { //存放航班信息的结构体 int num;  //航班号 char start[20];  //起飞地 char end[20];  //终点站 int seatnum;   //总座位数 int ticket;   //余票数 Passenger person[MaxPassenger];  //存放该航班的乘客信息 int tit[MaxPassenger];   //存放该航班的座位号信息
};
Flight fly[MaxFlight];  //定义一个存放航班的数组
void menu();
void Creat();
void Delete();
void Select();
void Reservation();
void ReturnTic();
int main()
{menu();char n;char p;while(true){scanf("%s",&n);switch(n)  //switch-case实现主菜单之中的功能{case '1':printf("您的选择是增加航班,请继续:\n");Creat();printf("\n\n");menu();break;case '2':if(FlightNum==0) //如果航班个数为零 {printf("暂无航班!\n");menu();break;}printf("您的选择是取消航班,请继续:\n");Delete();printf("\n\n");menu();break;case '3':if(FlightNum==0){printf("暂无航班!\n");menu();break;}printf("您的选择是查询航班信息,请继续:\n");Select();printf("\n\n");menu();break;case '4':if(FlightNum==0){printf("暂无航班!\n");menu();break;}printf("您的选择是订票,请继续:\n");Reservation();printf("\n\n");menu();break;case '5':if(FlightNum==0){printf("暂无航班!\n");menu();break;}printf("您的选择是退票,请继续:\n");ReturnTic();printf("\n\n");menu();break;case '0':printf("您的选择是退出系统,请确认是否退出系统(y:是/n:否):");scanf("%s",&p);if(p=='y'){printf("退出系统,欢迎您下次使用。\n");exit(0);}if(p=='n'){menu();break;}default:printf("输入有错误,请重新选择!\n");menu();break;}}
}
void menu()//主菜单函数
{printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("\t\t☆               欢迎使用航班售票系统                   ☆\n");printf("\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");printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("\t\t\t\t请选择一个操作:\n");
}
void Creat() //增加航班函数
{int n;printf("请输入你想要添加的航班个数:");scanf("%d",&n);int i;for(i=0; i<n; i++)  //循环n次添加航班 {printf("请输入航班号:");scanf("%d",&fly[FlightNum].num); printf("请输入起飞地:");scanf("%s",&fly[FlightNum].start);printf("请输入目的地:");scanf("%s",&fly[FlightNum].end);printf("请输入总座位数:");scanf("%d",&fly[FlightNum].seatnum); fly[FlightNum].ticket=fly[FlightNum].seatnum; //将航班的余票数初始化为座位数 FlightNum++;  //已经存在的航班个数加一 }
}
void Delete() //删除航班函数
{printf("请输入你想要删除的航班号:");int deletenum;int h=0;scanf("%d",&deletenum);for(int i=0; i<FlightNum; i++)  //按照航班个数依次循环查找 {if(deletenum==fly[i].num)  //查找成功 {for(int j=i; j<FlightNum; j++)  //该数组元素的后一个元素依次向前覆盖 {fly[j]=fly[j+1];}h++;   //h++证明进入了if语句 FlightNum--;  //航班数减一 }}if(h!=0)  //如果h!=0 则删除成功 printf("删除成功!\n");else printf("没有查询到该航班。\n");
}
void Select()//查询航班信息,据用户提出的终到站查询航班号、售票情况等航班信息;也可根据航班号,列出该航班已订票的乘客名单。
{printf("请选择你想要查询的类型:\n");printf("1.根据终到站查询航班号、售票情况\n");printf("2.根据航班号查询订票信息\n");printf("请选择:");char a;int h=0;scanf("%s",&a);if(a=='1') //a=1时根据起飞地目的地来判断 {char start1[20],end1[20];printf("请输入起飞地:");scanf("%s",start1);printf("请输入目的地:");scanf("%s",end1);for(int i=0; i<FlightNum; i++){//   strcmp()函数比较字符串是否相等 if(strcmp(start1,fly[i].start)==0&&strcmp(end1,fly[i].end)==0){printf("查询到有%d这一航班,起地飞为%s,目的地为%s,该航班还有余票%d\n",fly[i].num,fly[i].start,fly[i].end,fly[i].ticket);h++;}}}else if(a=='2')//根据航班号来查询航班 {int num1,hh=0;printf("请输入你想要查询的航班号:");scanf("%d",&num1);for(int i=0; i<FlightNum; i++){if(fly[i].num==num1){printf("查询到有%d这一航班,起地飞为%s,目的地为%s,该航班还有余票%d\n",fly[i].num,fly[i].start,fly[i].end,fly[i].ticket);if(fly[i].seatnum!=fly[i].ticket)//如果余票数不等于总座位数,证明有乘客存在 {printf("乘客名单如下:\n");for(int j=0; j<fly[i].seatnum-fly[i].ticket; j++)  //循环总座位数-余票数,即乘客个数,查找乘客姓名 {printf("\t%s",fly[i].person[j].name);hh++;if(hh%5==0) printf("\n");}}elseprintf("该航班无乘客信息!\n");h++;}}}else {printf("输入有误!\n");return;}if(h==0) printf("查询失败,不存在此信息。\n");
}
void Reservation()//乘客订票函数
{int num1;
//  int number;printf("请输入航班号:");scanf("%d",&num1);for(int i=0; i<FlightNum; i++)//循环航班个数次 {if(fly[i].num==num1) //找到想要订的航班 {//  number=fly[i].seatnum-fly[i].ticket; if(fly[i].ticket!=0) //如果余票不为0 {printf("仍有余票\n");for(int j=0; j<fly[i].seatnum; j++) //循环总座位数 {if(fly[i].tit[j]==0) //如果存放座位号是否被选中的数组的某一元素为0(被选中为1未选中为0) {printf("请输入乘客姓名:"); //添加乘客信息 scanf("%s",&fly[i].person[j].name);printf("请输入乘客证件号码:");scanf("%lld",&fly[i].person[j].IDnum);fly[i].person[j].seat=j;fly[i].tit[j]=1;printf("订票成功!\n");break;  //退出循环 }}fly[i].ticket--;//该航班余票数减一 }else printf("该航班已满!\n");}}}
void ReturnTic() //退票函数
{int num8,h=0;int number;printf("请输入证件号码:"); //输入证件号码 scanf("%lld",&number);printf("请输入航班号:"); //航班号 scanf("%d",&num8);for(int i=0; i<FlightNum; i++){if(fly[i].num==num8) //查找到航班号 {for(int j=0; j<fly[i].seatnum-fly[i].ticket; j++)//循环乘客人数次,查找该乘客 {if(fly[i].person[j].IDnum==number){fly[i].person[j].IDnum=0; //将该乘客ID置为0 fly[i].tit[j]=0;  //将该座位置为0, fly[i].ticket++;  //余票数+1 h++;printf("退票成功!\n");break;}}if(h==0) printf("没有该乘客的信息!\n");}}
}

C语言实现飞机售票系统相关推荐

  1. c语言编程汽车售票系统,C语言汽车售票系统实践报告.doc

    C语言汽车售票系统实践报告 二○一○ -二○一二 学年第 二 学期 信息科学与工程学院 课程设计报告书 课程名称: C程序课程设计 班 级: 自动化2010级 6班 学 号: 201004134192 ...

  2. c语言程序设计火车站售票系统,C语言程序--火车站售票系统程序

    火车站售票系统程序 火车站售票查询系统: #include #include #include #include int shoudsave=0 ; int count1=0,count2=0,mar ...

  3. 航班系统C语言程序流程图,飞机订票系统(C语言代码及流程图)

    飞机订票系统(C语言代码及流程图) 目录 第一部分 源程序---------------------------------------------------3 第二部分 函数流程图-------- ...

  4. 北京邮电大学2021年C语言航空售票系统

    程序设计课程设计 李 晶 lijingjing@bupt.edu.cn 孙鹏飞 sunpengfei@bupt.edu.cn 杨金翠 jincuiyang@bupt.edu.cn 刁婷 diaotin ...

  5. c语言 feof_C语言 实现简单功能的12306火车售票系统【附源码】

    本文福利在文末! 学习迷茫遇到问题了吗?现在关注微信公众号:C程序编程 免费获取进阶指导,资料工具以及源码 程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 录入班次信息 浏览班次信息 ...

  6. C语言的飞机订票系统

    C语言的飞机订票系统,适合初学者.其中包含文件的输入输出操作,代码便于阅读.与我的另一篇银行的管理有相同的思想. #include<stdio.h> #include<string. ...

  7. c语言售票系统主要函数,c语言课设电影院售票系统.docx

    struct inf { char rate[20]; char name[20]; int time_hour; int time_min; int seat; int sell; }inf[10] ...

  8. 火车票售票系统C语言大作业,基于C语言实现简单的12306火车售票系统

    程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 录入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票数量排序保存 售票 退票 更新班次信息 退出系统 所有的班次信息保存在n ...

  9. pthread售票多窗口共同C语言,基于C语言实现简单的12306火车售票系统

    程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 录入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票数量排序保存 售票 退票 更新班次信息 退出系统 所有的班次信息保存在n ...

  10. 火车售票系统c语言编程,基于C语言实现简单的12306火车售票系统.pdf

    基基于于C语语言言实实现现简简单单的的12306火火车车售售票票系系统统 程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票 ...

最新文章

  1. R语言数据结构之因子
  2. Atlassian In Action - (Atlassian成长之路)
  3. STM32 基础系列教程 5 – 系统定时器
  4. 脊柱外科病人资料管理系统的界面设计分析
  5. 30+个必知的《人工智能》会议清单
  6. 吴恩达机器学习笔记(三) —— Regularization正则化
  7. ffplay播放没有声音SDL_OpenAudio (2 channels, 44100 Hz): WASAPI can't initialize audio client
  8. THUSCH 2017 大魔法师(矩阵乘法+线段树)
  9. 在CAD中容易混淆的概念
  10. SharePoint365 接入简要笔记
  11. Python量化交易平台:QMT (日内交易策略示例)
  12. +中文词频统计及词云制作9-25
  13. A Survey of Zero-Shot Learning: Settings, Methods, and Applications [reading notes]
  14. 小白MacBook超级实战教程——装双系统WIN10
  15. 转:变种挖矿蠕虫问题解决
  16. web 2.0 的一些说明
  17. python写抽奖转盘_python实现转盘效果 python实现轮盘抽奖游戏
  18. 1.3 电功率和能量
  19. Linux 性能优化的全景指南,都在这一篇里了,建议收藏~
  20. matlab时间是不是毫秒,matlab – 将毫秒转换为小时和绘图

热门文章

  1. 在FME中的使用正则表达式之向前看向后看(前瞻后顾)
  2. 会声会影2020试用版如何激活序列号正式版及快速零基础剪辑教程
  3. 笔试面试常见逻辑题及答案
  4. Leetcode之Non-decreasing Array 问题
  5. 关于find_busiest_group函数提现出的Linux性能问题
  6. 地磅称重软件与ERP系统的实现
  7. 前后落差大用什么词语_描写心理落差大词语
  8. 字节跳动最新开源!java后端工程师简历模板
  9. 微信公众号支付、支付查询、退款、退款查询、转账到零钱银行卡、转账查询接口整合(V2)
  10. vmware 设置ip