C语言实现航班售票系统 C语言实现航班管理系统

本文实例为大家分享了C语言航班售票系统的具体代码,供大家参考,具体内容如下

题目描述:实现一个航班售票系统,每个航班应包括以下信息:航班号、起飞地、目的地、总座位数、余票数、乘客名单等;每个乘客的信息有:乘客姓名、证件号码、座位号等。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MaxFlight 32  //最大的航班数
#define MaxPassenger 1000 //最大乘客数

//因为结构体数组初始化时有四次航班的信息,所以航班数量指示值为4
char Flight_Num = 4;

//乘客信息
typedef struct
{
  char name[10];//姓名
  unsigned int IDnumber;//身份证号
  unsigned int seatnumber;//座位号
}PASSENGER;

//航班信息
typedef struct
{
  char Number[10];//航班号
  char Take_off_place[20];//起飞地
  char Destination[20];//目的地
  char Take_off_time[10];//起飞时间
  char Arrive_time[10];//到达时间
  unsigned int Totalseats;//总座位数
  unsigned int Leftticket;//剩余票数
  PASSENGER people[MaxPassenger];
}FLIGHT;

//定义一个结构体数组,首先初始化三个航班
FLIGHT Fly[MaxFlight]=
  {
 {"PN6620","WuHan","ChongQing","14:10","16:00",1000,1000},
 {"FM1120","ChongQing","ShangHai","13:10","15:50",1000,1000},
 {"FM9364","WuHan","ShangHai","21:40","23:10",1000,1000},
 {"PN6619","ChongQing","WuHan","6:25","8:00",1000,1000}
 };

//初始菜单打印
void menu(void);
//增加航班
void Flight_creat(void);
//删除航班
void Flight_Delete(void);
//根据终到站查询航班号
void Destination_Search(void);
//根据航班号查询乘客名单
void Information(void);
//订购机票
void Flight_book(void);
//退订机票
void Flight_return(void);

int main(void)
{
 char i;

 while(1)
 {
 //首先打印出菜单
 menu();
 //然后利用Switch语句选择功能
 scanf("%d",&i);
 switch(i)
 {
  case 1:
  {
  //增加航班
  Flight_creat();
  }break;

  case 2:
  {
  //删除航班
  Flight_Delete();
  }break;

  case 3:
  {
  //根据终到站查询航班号
  Destination_Search();
  }break;

  case 4:
  {
  //根据航班号查询乘客名单
  Information();
  }break;

  case 5:
  {
  //订购机票
  Flight_book();
  }break;

  case 6:
  {
  //退订机票
  Flight_return();
  }break;

  default:;
 }

 }

 return 0;
}

//初始菜单打印
void menu()
{
 printf("------------XXX航空管理系统-------------\n");
 printf("------------1.增加航班------------------\n");
 printf("------------2.取消航班------------------\n");
 printf("------------3.根据终到站查询航班号------\n");
 printf("------------4.根据航班号查询乘客名单----\n");
 printf("------------5.订购机票------------------\n");
 printf("------------6.退订机票------------------\n");
 printf("\n您希望进行的操作是:\n");
}

//增加航班
void Flight_creat(void)
{
 printf("请输入所增加航班的航班号:\n");
 scanf("%s",&Fly[Flight_Num].Number);
 printf("请输入所增加航班的起飞地:\n");
 scanf("%s",&Fly[Flight_Num].Take_off_place);
 printf("请输入所增加航班的目的地:\n");
 scanf("%s",&Fly[Flight_Num].Destination);
 printf("请输入所增加航班的起飞时间:\n");
 scanf("%s",&Fly[Flight_Num].Take_off_time);
 printf("请输入所增加航班的到达时间:\n");
 scanf("%s",&Fly[Flight_Num].Arrive_time);
 printf("请输入总座位数:\n");
 scanf("%d",&Fly[Flight_Num].Totalseats);

 //增加航班的时候余票数一定与总座位数相等
 Fly[Flight_Num].Leftticket = Fly[Flight_Num].Totalseats;

 //最后将总的航班数量加一
 Flight_Num++;
}

//删除航班
void Flight_Delete(void)
{
 char Flight_name[10];  //用于存储输入的航班号的变量
 char i;
 char flag;

 char delete_flag;  //删除成功标志,用于之后不同结果的打印

 printf("请输入您想要删除的航班号:\n");
 scanf("%s",&Flight_name);

 //第一个for循环的目的是为了遍历整个航班系统
 for(i = 0;i < Flight_Num;i++)
 {
   flag = strcmp(Flight_name,Fly[i].Number);
 //假如找到了对应的航班
 if(!flag)
 {
  //第二个for循环则是为了删除当前航班,并且将该航班之后的数组元素一次前移
  for(;i<Flight_Num;i++)
  {
  Fly[i] = Fly[i+1];
  }

  delete_flag++;

  //最后再将航班数量减一,航班删除操作完成,退出循环
  Flight_Num--;break;
 }
 }

 //打印操作结果
 if(delete_flag)
 {
 printf("操作成功!航班号为%s的航班已经删除!\n",Flight_name);
 }
 else
 {
 printf("操作失败!找不到航班号为%s的航班!",Flight_name);
 }

 delete_flag = 0;

}

//根据终到站查询航班号
void Destination_Search(void)
{
 char Flight_Des[20]; //用于存放输入的终点站
 char i;

 //查询标志,用于判断是否查到相应航班
 char search_flag;
 char flag;

 printf("请输入您想查询航班的终点站:\n");

 scanf("%s",&Flight_Des);

 //遍历整个航班系统
 for(i = 0;i < Flight_Num;i++)
 {
   flag = strcmp(Flight_Des,Fly[i].Destination);
 if(!flag)
 {
  printf("航班信息如下:\n");
  printf(" 航班号:%s\n",Fly[i].Number);
  printf(" 起飞时间:%s\n",Fly[i].Take_off_time);
  printf(" 降落时间:%s\n",Fly[i].Arrive_time);
  printf(" 剩余票数:%d\n",Fly[i].Leftticket);

  search_flag++;
 }
 }

 if(!search_flag)
 {
 printf("对不起,公司还尚未开通到达上述目的地的航班!\n");
 }

}

//根据航班号查询乘客名单
void Information(void)
{
 char Flight_numb[10]; //用于存放输入的航班号
 char i;
 char flag;

 //用于计算单个航班中被预订的人数
 unsigned int n;

 printf("请输入您想查询航班的航班号:\n");

 scanf("%s",&Flight_numb);

 //遍历整个航班系统
 for(i = 0;i < Flight_Num;i++)
 {
   flag = strcmp(Flight_numb,Fly[i].Number);
 if(!flag)
 {
   n = Fly[i].Totalseats - Fly[i].Leftticket;
  //假如航班有人预订,即n不为0的时候,一次输出乘客姓名
  if(n)
  {
  printf("乘客名单:\n");
  for(;n>0;n--)
  {
   printf("%s\n",Fly[i].people[n-1].name);
  }
  }
  else
  {
  printf("该航班还未被人预订!\n");
  }break;
 }

 }

}

//订购机票
void Flight_book(void)
{
 char Flight_numb[10]; //用于存放输入的航班号
 char i;
 char flag;

 //用于计算单个航班中被预订的人数
 unsigned int n;

 printf("请输入需要订购的航班号:\n");
 scanf("%s",&Flight_numb);

 for(i = 0;i < Flight_Num;i++)
 {
   flag = strcmp(Flight_numb,Fly[i].Number);
 if(!flag)
 {

   n = Fly[i].Totalseats - Fly[i].Leftticket;

  if(Fly[i].Leftticket == 0)
  {
  printf("已无余票,请作其他选择!");
  break;
  }
  else
  {
  printf("请输入姓名: \n");
  scanf("%s",&Fly[i].people[n].name);
  printf("请输入身份证号码:\n");
  scanf("%d",&Fly[i].people[n].IDnumber);

  //座位号不用用户输入
  Fly[i].people[n].seatnumber = n + 1;
  printf("订票成功,座位号为:%d\n",Fly[i].people[n].seatnumber);
  Fly[i].Leftticket--;
  break;
  }
 }

 }

}
//退订机票
void Flight_return(void)
{
 char Flight_numb[10]; //用于存放输入的航班号
 char i,j;
 unsigned int card_number;  //用于存放输入的身份证号
 char flag;

 //用于计算单个航班中被预订的人数
 unsigned int n;

 unsigned int flag2;

 printf("请输入需要退订的航班号:\n");
 scanf("%s",&Flight_numb);

 //遍历整个航班系统
 for(i = 0;i < Flight_Num;i++)
 {
   flag = strcmp(Flight_numb,Fly[i].Number);
 if(!flag)
 {

   n = Fly[i].Totalseats - Fly[i].Leftticket;

  //遍历所有乘客
  printf("请输入退票人的身份证号:\n");
  scanf("%d",&card_number);
  for(;n > 0;n--)
  {
    flag2 = card_number - Fly[i].people[n-1].IDnumber;
  if(!flag2)
  {
   for(j=n-1;j < Flight_Num;j++)
   {
   Fly[i].people[j] = Fly[i].people[j+1];
   }
   printf("退票成功!\n");
   Fly[i].Leftticket++;
   break;
  }
  }
 }
 }
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现简单航班管理系统

    本文实例为大家分享了C语言实现航班管理系统的具体代码,供大家参考,具体内容如下 /*C语言实现简单的航班管理系统(单个文件)*/ #include <stdio.h> #include <string.h> #include<stdlib.h> #include<assert.h> #define PERSON_MAXNUM 100 #define PERSONNOTICKET_MAX 10 #define MAX_SIZE 10 int _size = 0

  • C语言使用链表实现学生信息管理系统

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 代码实现的功能: 1.插入学生信息 2.显示学生信息 3.删除学生信息 4.在指定位置插入学生信息 5.查找学生信息 代码内容: #include <stdio.h> #include <stdlib.h> #include <string.h> #define Max_Student_Num 10 #define Max_Str_len 20 typedef struct T_stud

  • C语言编写学生成绩管理系统

    用C语言编写学生成绩管理系统代码,供大家参考,具体内容如下 C语言实现学生成绩管理系统实战教学 https://www.jb51.net/article/154767.htm (1)给出所选课程设计题目以及本题目具体所要完成的功能要求说明. 1.课程设计题目:学生成绩管理系统 2.完成的功能要求: (1).主要实现的功能: 1---学生输入 2---学生插入 3---学生查询(按学号) 4---学生删除 5---学生输出 6---计算每名学生的平均分并输出 7---计算每科的平均分并输出 8--

  • C语言通讯录管理系统完整版

    C语言实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能.. 完整的代码如下: #include <stdio.h> #include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针// #include <string.h> #include <stdlib.h> //标准库函数// #define NULL 0 #define LEN sizeof(struct address_list) //计算字节//

  • C语言实现航班管理系统

    本文实例为大家分享了C语言实现航班管理系统的具体代码,供大家参考,具体内容如下 /*.航班管理系统 主界面以菜单的形式展现,用户可以按不同的键执行不同的操作,即调用不同的函数: ...... 用不同的函数实现,除以下模块,还可设计其他功能模块: 1)输入记录:输入录入航班信息,包括:航班号,起降时间,起飞抵达城市,航班票价,票价折扣,航班是否满仓等: 2)输出记录:输出信息: 3)查询记录:可根据航班号查找记录: 4)删除记录:指定航班号删除该条记录: 5)插入记录:在指定位置插入新的记录. *

  • C语言学生管理系统源码分享

    本文实例为大家分享了C语言学生管理系统源码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> //结构体可以存放的学生信息最大个数,不可变变量 int const MAX_LENGTH=100; //学生信息结构体数组,最多可以存放100个学生信息 struct student{ int id; //学号 char *name; //姓名 int age; //年龄 float c_score; //C语言成绩 float engl

  • 学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生信息的查询 9.密码修改函数 10.学生信息管理系统的菜单函数 #include "stdio.h" #include "malloc.h" #include "string.h" #include "stdlib.h" #inc

  • C语言职工信息管理系统源码

    本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker { char ID[20];//工号 char name[20];//姓名 char sex[5];//性别 char born[20];//生日 char edu[20];//学历 char po

  • C语言实现电影院选座管理系统

    本文实例为大家分享了C语言电影院选座管理系统的具体代码,供大家参考,具体内容如下 /* 编写一个电影院选座管理系统程序. 问题描述: 自行设计一个电影院放映厅(容积不小于5排,每排不少于10人), 通过该"电影院选座管理系统"实现为顾客选座位的功能. 实现如下功能: 1.给出座位分布图形: 2.可实现根据顾客需求选座: 3.可由系统自动为顾客选座: 4.可查找座位选择人姓名. 具体要求如下: 1.采用多文件结构设计程序: 2.通过字符或图形方式给出座位分布情况,可查看座位选择情况: 3

  • C语言实现航班售票系统 C语言实现航班管理系统

    本文实例为大家分享了C语言航班售票系统的具体代码,供大家参考,具体内容如下 题目描述:实现一个航班售票系统,每个航班应包括以下信息:航班号.起飞地.目的地.总座位数.余票数.乘客名单等:每个乘客的信息有:乘客姓名.证件号码.座位号等. #include <stdio.h> #include <stdlib.h> #include <string.h> #define MaxFlight 32 //最大的航班数 #define MaxPassenger 1000 //最大

  • C语言实现飞机售票系统

    本文实例为大家分享了C语言实现飞机售票系统的具体代码,供大家参考,具体内容如下 一.项目简介 通过“航空售票系统”C语言课程设计的实践,掌握函数.数据的读取和存储.熟练链表的操作,为后期学习打下基础. 二.任务概述 (1) 将飞机坐位分为20排,每排4个位子.(2) 系统可让乘客自己选座号和区域,直到乘客满意为止.(3) 若无法满足的话,改乘另一个航班.(4) 定上票的乘客需给出姓名和身份证号.(5) 要求打印出乘客信息. 三.功能展示 四.思维导图 五.程序源码 #include <stdio

  • 纯C语言实现火车售票系统

    这是好久之前写的一个火车售票系统, 写的非常粗糙, 后来也没改了, 希望遇见有缘人继续优化吧. 主要的功能是:设置车次,删除车次, 买票, 改签, 退票, 查询等. #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> #include<conio.h> #define MAXNUM 10000 #define Num 100 typedef stru

  • 基于C语言实现简单的12306火车售票系统

    程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 录入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票数量排序保存 售票 退票 更新班次信息 退出系统 所有的班次信息保存在number.dat文件中,排序过后的保存在sort.dat中(.dat是一种二进制文件). 在编写的过程中我觉得在判断火车的状态比较值得深究.这里假设火车主要有四种状态: 1.未发车 2.已发车 3.停止检票 4.停止退票 在程序中,思路是将代表发车时间的字符串转化为整型,再和系统现在的时间进行大小

  • C语言实现影院售票管理系统

    本文实例为大家分享了C语言实现影院售票管理系统的具体代码,供大家参考,具体内容如下 前言 最近刚好在写自己的课设,匆匆忙忙写出来的课设系统,仍有不足,拿出来和大家分享一下,希望能对大家有帮助. 一.概要设计 1.基本信息 数据类型:链表 typedef struct node {     char name[N];                  // 名称     char type[N];                  // 类型     int time;              

  • C语言实现小学生考试系统

    本文实例为大家分享了C语言实现小学生考试系统的具体代码,供大家参考,具体内容如下 问题及代码: /*烟台大学计算机学院 题目描述:做一个小学生考试系统,功能包括: (1)利用随机数出10道加法题: (2)小学生用户答题给出每道题的答案: (3)对小学生的答题进行评判: (4)计算出小学生答题正确率. 作者:景怡乐 完成时间:2016年12月29日 */ #include <stdio.h> #include <stdlib.h> #include <time.h> in

  • C语言实现学生选课系统完整版

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> int N1,N2,kk1,kk2,kk3; struct couse * head1; struct student * head2; struct couse//课程信息结构体 { int num1; char name1[20]; int score; int nelepeo;//课程已选人数 int Melepeo;//课

  • C语言实现学生选课系统

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h> typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #define CLASS_CLS

  • C语言实现文本编辑器系统

    本文实例为大家分享了C语言实现文本编辑器系统的具体代码,供大家参考,具体内容如下 /*文本编辑器editor源代码*/ #include <stdio.h> #include <conio.h> #include <bios.h> #include <math.h> #define LEFT 0x4b00 /*←:光标左移*/ #define RIGHT 0x4d00 /*→:光标右移*/ #define DOWN 0x5000 /*↓键:光标下移*/ #d

  • 餐馆点菜系统C语言源代码

    餐馆点菜系统c语言的源代码,一些封装的函数,对链表的操作,还有文件的存取,供大家参考,具体内容如下 #include "public.h" struct NODE *myhead; struct NODE *orderhead; struct NODE *ashead; char waiter_ID[4+1]; /*******************************设置输入框颜色******************************************* 名称:设置

随机推荐