广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++实现航空订票系统课程设计
  • 482
分享到

C++实现航空订票系统课程设计

2024-04-02 19:04:59 482人浏览 安东尼
摘要

本文实例为大家分享了c++实现航空订票系统的具体代码,供大家参考,具体内容如下 一、题目 1.录入功能 可以录入航班信息(如航班号,起飞降落时间,城市,座位数,票价) 2.查询功能

本文实例为大家分享了c++实现航空订票系统的具体代码,供大家参考,具体内容如下

一、题目

1.录入功能

可以录入航班信息(如航班号,起飞降落时间,城市,座位数,票价)

2.查询功能

可以查询航班的各项信息(如根据航班号,起飞降落城市查找航班并显示航班信息)

3.修改删除功能

可以修改删除航班的信息

4.追加航线

在原本的航线之后可以继续添加航线方便操作

5.订票功能

可以订票并且记录下乘客的相关信息(如姓名,身份证号码)

6.退票功能

可以退票并且记录乘客的相关信息以及退票信息

二、代码

#include<iOStream>
#include<fstream>
#include<stdlib.h>
#include<string.h>
using namespace std;

typedef struct node
{
    int hangbanhao;//航班号
    char qifeichengshi[10];//起飞城市
    char jiangluochengshi[10];//降落城市
    char qifeishijian[10];//起飞时间
    char jiangluoshijian[10];//降落时间
    int zuoweishu;//座位数
    int piaojia;//票价
    struct Node *next;//结点的指针域
}LNode,*LinkList;//定义航班信息 LinkList为指向结构体LNode的指针类型


typedef struct CK
{
  char name[10];//乘客姓名
  char id[18];//乘客身份证号
  struct CK *next;//结点的指针域
}ck,*cke;//乘客信息


void import(int n,LinkList &L)//录入航班函数: n为所要录入航班的数量:
{//建立一个带头结点的单链表L
    L=(LinkList)malloc(sizeof(LNode));//申请表空间
    L->next=NULL;//头结点的指针域置空
    LNode * tail=L;//将尾赋给尾指针,等价LinkList tail=L;
    for(int i=0; i<n; i++)//逐个赋值
     {
        LNode *p=(LinkList)malloc(sizeof(LNode));//创建一个p结点
        cout<<"请输入第"<<i+1<<"个航班的航班号 ";
        cin>>p->hangbanhao;
        cout<<"请输入第"<<i+1<<"个航班的起飞城市 ";
        cin>>p->qifeichengshi;
        cout<<"请输入第"<<i+1<<"个航班的降落城市 ";
        cin>>p->jiangluochengshi;
        cout<<"请输入第"<<i+1<<"个航班的起飞时间 ";
        cin>>p->qifeishijian;
        cout<<"请输入第"<<i+1<<"个航班的降落时间 ";
        cin>>p->jiangluoshijian;
        cout<<"请输入第"<<i+1<<"个航班的座位数 ";
        cin>>p->zuoweishu;
        cout<<"请输入第"<<i+1<<"个航班的票价";
        cin>>p->piaojia;
        p->next=NULL;//头结点的指针域置空
        tail->next=p;//将新结点插入尾部
        tail=p;//插入的结点变为尾结点,尾插法
    }
}
//写入本地文件,并读取输出显示


void show_L(LinkList &L)//输出浏览机票信息
{
  ofstream out("out.txt");//实例化一个对象
   if (out.is_open())
   {
      LinkList p=L->next;
      while(p)
      {
        out<<"航班号:";
        out<<p->hangbanhao;
        out<<" 起飞城市:";
        out <<p->qifeichengshi;
        out<<" 降落城市:";
        out <<p->jiangluochengshi;
        out<<" 起飞时间:";
        out <<p->qifeishijian;
        out<<" 降落时间:";
        out <<p->jiangluoshijian;
        out<<" 座位数:";
        out<<p->zuoweishu;
        out<<" 票价:";
        out<<p->piaojia;
        out<< "\n";//用于换行,是下面in.getline的关键
        p=p->next;
      }
  }
   out.close(); //写完
    char buffer[256];
    ifstream in("out.txt");
    if (! in.is_open())
       { cout << "Error opening file"; exit (1); }
       while (!in.eof() )
       {
           in.getline (buffer,100);
           cout << buffer << endl;
       }
}

//按航班号查找
LinkList GetElem_L(LinkList &L,int e)
{
      LinkList p=L->next;
      while(p)
      {
        if(p->hangbanhao!=e)
            p=p->next;
        else return p;
      }
     return 0;
}

//按航班起降城市查找
LinkList GetElem_Lc(LinkList &L,char qi[10],char ji[10])
{
      LinkList p=L->next;
      while(p)
      {
        if(strcmp(p->qifeichengshi,qi)!=0||strcmp(p->jiangluochengshi,ji)!=0)
            p=p->next;
        else return p;
      }
      return 0;
}


//删除
int ListDelete_L(LinkList &L,int e){
    LinkList p=L;
    while(p->next&&p->next->hangbanhao!=e){
        p=p->next;//直到查找到要删除的结点
    }
    if(!p->next)
        return 0;
    LinkList q=p->next;
    p->next=q->next;//p->next=p->next->next;
    free(q);//本题q是需要删除的结点
    return 1;
}


//插入
int ListInsert_L(LinkList &L,int i){
    LinkList p=L;//i为插入的位置
    int j=0;
    while(p&&j<i-1){
        p=p->next;
        ++j;
    }
    if(!p||j>i-1)
        return 0;
    LNode *s=(LinkList)malloc(sizeof(LNode));
    cout<<"输入航班号:";
    cin>>s->hangbanhao;
    cout<<"输入起飞城市:";
    cin>>s->qifeichengshi;
    cout<<"输入降落城市:";
    cin>>s->jiangluochengshi;
    cout<<"输入起飞时间:";
    cin>>s->qifeishijian;
    cout<<"输入降落时间:";
    cin>>s->jiangluoshijian;
    cout<<"输入座位数:";
    cin>>s->zuoweishu;
    cout<<"输入票价:";
    cin>>s->piaojia;
    s->next=p->next;
    p->next=s;//s->next=p->next;p->next=s;
    return 1;
}


//修改
LinkList xiugai(LinkList &L,int yxg)
{
  LinkList q=L->next;
      while(q)
      {
        if(q->hangbanhao!=yxg)
            q=q->next;
        else return q;
      }
  return 0;
}


//乘客信息录入
void importren(int n,cke &C)//录入航班函数: n为所要录入航班的数量:
{
    C=(cke)malloc(sizeof(ck));
    C->next=NULL;
    ck*ta=C;
    for(int i=0; i<n; i++)
     {
        ck *p=(cke)malloc(sizeof(ck));//就是创建一个p结点,关键就是写法,LNdoe *p;
        cout<<"请输入第"<<i+1<<"个乘客的姓名 ";
        cin>>p->name;
        cout<<"请输入第"<<i+1<<"个航班的身份证ID ";
        cin>>p->id;
         p->next=NULL;
        ta->next=p;
        ta=p;//尾插法,根据循环画图可知,tail指针始终在最后
    }
}


//订票乘客信息和航班信息写入本地和读取
void show_dp(cke &C,LinkList &R)
{
  ofstream out("dinpiao.txt");//实例化一个对象
   if (out.is_open())
   {
      cke p=C->next;
      while(p){
        out<<"姓名 ";
        out<<p->name;
        out<<"  身份证ID ";
        out<<p->id;
        out<< "\n";//用于换行,是下面in.getline的关键
        p=p->next;
      }
      if(R->zuoweishu-1>=0)
      {
       out<<"航班号:"<<R->hangbanhao;
       out<<" 起飞城市:"<<R->qifeichengshi;
       out<<" 降落城市:"<<R->jiangluochengshi;
       out<<" 起飞时间:"<<R->qifeishijian;
       out<<" 降落时间:"<<R->jiangluoshijian;
       out<<" 座位数:"<<R->zuoweishu-1;//订票之后座位数减一
       out<<" 票价:"<<R->piaojia;
       out<< "\n";//用于换行,是下面in.getline的关键
       out<<"订票成功";
       out<< "\n";//用于换行,是下面in.getline的关键
      }
      else
      {
        out<<"航班号:"<<R->hangbanhao;
        out<<" 起飞城市:"<<R->qifeichengshi;
        out<<" 降落城市:"<<R->jiangluochengshi;
        out<<" 起飞时间:"<<R->qifeishijian;
        out<<" 降落时间:"<<R->jiangluoshijian;
        out<<" 座位数:"<<R->zuoweishu;
        out<<" 票价:"<<R->piaojia;
        out<< "\n";//用于换行,是下面in.getline的关键
        out<<"该航班暂无票,请选择其他航班";
        out<< "\n";//用于换行,是下面in.getline的关键
      }
   }
   out.close(); //写完
    char buffer[256];
    ifstream in("dinpiao.txt");
    if (! in.is_open())
       { cout << "Error opening file"; exit (1); }
       while (!in.eof() )
       {
           in.getline (buffer,100);
           cout << buffer << endl;
       }
}

//退票乘客信息和航班信息写入本地和读取
void show_tp(cke &C,LinkList &R)
{
  ofstream out("dinpiao.txt");//实例化一个对象
   if (out.is_open())
   {
      cke p=C->next;
      while(p){
        out<<"姓名 ";
        out<<p->name;
        out<<"身份证ID ";
        out<<p->id;
        out<< "\n";//用于换行,是下面in.getline的关键
        p=p->next;
      }
      out<<"航班号 "<<R->hangbanhao;
      out<<" 起飞城市:"<<R->qifeichengshi;
      out<<" 降落城市:"<<R->jiangluochengshi;
      out<<" 起飞时间:"<<R->qifeishijian;
      out<<" 降落时间:"<<R->jiangluoshijian;
      out<<" 座位数:"<<R->zuoweishu;//退票之后不需要加1,用最初的座位数;
      out<<" 票价:"<<R->piaojia;
      out<< "\n";//用于换行,是下面in.getline的关键
      out<<"退票成功";
      out<< "\n";//用于换行,是下面in.getline的关键
   }
   out.close(); //写完
    char buffer[256];
    ifstream in("dinpiao.txt");
    if (! in.is_open())
       { cout << "Error opening file"; exit (1); }
       while (!in.eof() )
       {
           in.getline (buffer,100);
           cout << buffer << endl;
       }
}

void menu()//显示菜单界面
{
    cout<<"=================================欢迎使用航空订票系统==============================="<<endl;
    cout<<"*                                1请先录入航班信息                                 *"<<endl;
    cout<<"*                                2根据航班号查找航班                               *"<<endl;
    cout<<"*                                3根据起降城市查找航班                             *"<<endl;
    cout<<"*                                4删除航班                                         *"<<endl;
    cout<<"*                                5插入航班                                         *"<<endl;
    cout<<"*                                6修改航班                                         *"<<endl;
    cout<<"*                                7订票录入乘客信息                                 *"<<endl;
    cout<<"*                                8退票                                             *"<<endl;
    cout<<"===================================================================================="<<endl;
}
int main()
{
   LinkList L;//L是指针 航班
   cke C;//乘客
    while(1)
    {
      menu();
      int caozuo;
      cout<<"请选择操作";
      cin>>caozuo;
      switch(caozuo)
      {
    case 1:
//创建
      int num;
      cout<<"请输入要录入的航班数:";
      cin>>num;
      cout<<endl;
      import(num,L);//录入航班函数: n为所要录入航班的数量:
      cout<<endl;
      cout<<"航班信息录入成功";
      cout<<endl<<endl;
//写入本地文件,并读取输出显示
      show_L(L);
      break;
    case 2:
//根据航班号查找
      int dchbh;//根据航班号查找
       printf("请输入待查航班号:");
      cin>>dchbh;
      LinkList p;
      p=GetElem_L(L,dchbh);//查找
      cout<<"待查航班为:";
      cout<<"航班号:"<<p->hangbanhao;
      cout<<" 起飞城市:"<<p->qifeichengshi;
      cout<<" 降落城市:"<<p->jiangluochengshi;
      cout<<" 起飞时间:"<<p->qifeishijian;
      cout<<" 降落时间:"<<p->jiangluoshijian;
      cout<<" 座位数:"<<p->zuoweishu;
      cout<<" 票价:"<<p->piaojia;
      cout<<endl<<endl;
      break;
    case 3:
//根据起降城市查找
       char qi[10];
       char ji[10];
       printf("请输入待查航班起降城市:");
       cout<<"输入起飞城市:";
       cin>>qi;
       cout<<"输入降落城市:";
       cin>>ji;
       LinkList J;
       J=GetElem_Lc(L,qi,ji);//查找
       cout<<"待查航班为:";
       cout<<"航班号:"<<J->hangbanhao;
       cout<<" 起飞城市:"<<J->qifeichengshi;
       cout<<" 降落城市:"<<J->jiangluochengshi;
       cout<<" 起飞时间:"<<J->qifeishijian;
       cout<<" 降落时间:"<<J->jiangluoshijian;
       cout<<" 座位数:"<<J->zuoweishu;
       cout<<" 票价:"<<J->piaojia;
       cout<<endl<<endl;
       break;
    case 4:
//删除
      int shanchu;
      printf("请输入要删除的航班号:");
      scanf("%d",&shanchu);
      ListDelete_L(L,shanchu);//删除
      show_L(L);
      cout<<endl<<endl;
      break;
    case 5:
//插入
   //这里位置始终在第一行
      ListInsert_L(L,1);//插入
      show_L(L);
      cout<<endl<<endl;
      break;
    case 6:
//修改
      printf("请输入要修改的航班号:");
      int yxg;
      cin>>yxg;
      LinkList q;
      q=xiugai(L,yxg);//修改
      cout<<"航班号修改为:";
      cin>>q->hangbanhao;
      cout<<"航班起飞城市修改为:";
      cin>>q->qifeichengshi;
      cout<<"航班降落城市修改为:";
      cin>>q->jiangluochengshi;
      cout<<"航班起飞时间修改为:";
      cin>>q->qifeishijian;
      cout<<"航班降落时间修改为:";
      cin>>q->jiangluoshijian;
      cout<<"航班座位数修改为:";
      cin>>q->zuoweishu;
      cout<<"航班票价修改为:";
      cin>>q->piaojia;
      show_L(L);
      cout<<endl<<endl;
      break;
    case 7:
//订票
      int renshu;
      cout<<"请选择您要订票的人数:";
      cin>>renshu;
      cout<<endl;
      importren(renshu,C);//录入乘客信息
      cout<<endl;
      cout<<"乘客信息录入成功";
      cout<<endl;
      int m;
      cout<<"请输入您要订的航班号:";
      cin>>m;
      cout<<endl<<endl;
      LinkList R;
      R=GetElem_L(L,m);//查找乘客订的航班
      show_dp(C,R);//写入本地文件,并读取输出显示
      cout<<endl<<endl;
      break;
    case 8:
//退票
     cout<<"请输入您要退票的航班号:";
     int yt;
     cin>>yt;
     cout<<endl<<endl;
     LinkList K;
     K=GetElem_L(L,yt);//查找乘客订的航班
     show_tp(C,K);//写入本地文件,并读取输出显示
     cout<<endl<<endl;
     break;
      }//swith的大括号
    }//while的大括号
  return 0;
}//主函数的大括号

三、运行结果

1、录入航班信息

2、查找航班(根据航班号、起降城市查找航班)

3、删除航班

4、插入航班

5、修改航班

6、订票、退票

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

--结束END--

本文标题: C++实现航空订票系统课程设计

本文链接: https://www.lsjlt.com/news/142362.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++实现航空订票系统课程设计
    本文实例为大家分享了C++实现航空订票系统的具体代码,供大家参考,具体内容如下 一、题目 1.录入功能 可以录入航班信息(如航班号,起飞降落时间,城市,座位数,票价) 2.查询功能 ...
    99+
    2022-11-13
  • C语言实现航空订票系统课程设计
    本文实例为大家分享了C语言实现航空订票系统的具体代码,供大家参考,具体内容如下 大一写的时候没有写注释,后来也懒得加了。在这里说一下读写文件的思路吧。 就是利用二进制将一整个结构体中...
    99+
    2022-11-13
  • 如何使用C++实现航空订票系统课程
    这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一、题目1.录入功能可以录入航班信息(如航班号,起飞降落时间,城市,座位数,票价)2.查询功能可以查询航班的...
    99+
    2023-06-29
  • C语言如何实现航空订票系统
    本篇内容介绍了“C语言如何实现航空订票系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!利用二进制将一整个结构体中的数据存入文件,然后读取文...
    99+
    2023-06-29
  • 电影院订票售票系统设计与实现
        项目背景和意义   目的:本课题主要目标是设计并能够实现一个基于java的电影院订票选座系统,系统整体使用了基于java+MySql的B/S架构,技术上使用了springboot框架;使用浏览器,管理员通过后台添加电影、场次...
    99+
    2023-10-07
    java 开发语言
  • C++实现飞机订票系统
    本文实例为大家分享了C++实现飞机订票系统的具体代码,供大家参考,具体内容如下 // 飞机订票系统.cpp : 定义控制台应用程序的入口点。 // #include "stdafx...
    99+
    2022-11-13
  • C++实现班车管理系统课程设计
    本文实例为大家分享了C++实现班车管理系统的具体代码,供大家参考,具体内容如下 课程设计要求: 一交通公司,班车系统的数据包括如下两部分: ①班车信息:班交及车号、最大载客数、起点、...
    99+
    2022-11-13
  • C++实现图书管理系统课程设计
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 大一 C++课设,没有用分文件的形式,只是把菜单页面单独分开了。用的是链表,都是一些基础的东西。另外采...
    99+
    2022-11-13
  • C#实现航班预订系统
    本文实例为大家分享了C#实现航班预订的具体代码,供大家参考,具体内容如下 连接数据库 using System; using System.Collections.Generic; ...
    99+
    2022-11-13
  • 旅游景区订票小程序系统设计与实现
        项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序景区景点预约购票系统,前台用户使用小程序,后台管理使用Java+Mysql开发,后台使用了springboot框架;通过后台添加景区资讯、景点介绍,管理用户...
    99+
    2023-09-02
    小程序 旅游 微信小程序 景区订票小程序
  • 基于JSP微信小程序汽车票订票售票系统设计与实现
    第1步(数据库操作):     导入sql数据库 第2步(网站发布):     使用ideal导入管理系统     设置根目录下 conn.jsp的数据库连接 和 网址地址(小程序使用)     运行站点,登录后台测试 第3步(小程序发布...
    99+
    2023-08-31
    微信小程序 小程序
  • C++实现教职工管理系统课程设计
    本文实例为大家分享了C++实现教职工管理系统的具体代码,供大家参考,具体内容如下 要求:设计一个程序来管理职工较全面数据信息,具备数据的输入、查找、删除等功能。具体功能细节可以根据自...
    99+
    2022-11-13
  • C语言实现通讯录系统课程设计
    本文实例为大家分享了C语言实现通讯录系统的具体代码,供大家参考,具体内容如下 设计要求 1.单位、个人信息查询2.打开、写入保存这些信息的文件 完整代码 #include <s...
    99+
    2022-11-13
  • C语言实现火车订票系统
    本文实例为大家分享了C语言实现火车订票系统的具体代码,供大家参考,具体内容如下 程序介绍 1.运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图所示...
    99+
    2022-11-13
    C语言火车订票系统 C语言火车订票 C语言订票系统
  • 【课程设计】数据库:火车票管理系统
    【课程设计】数据库:火车票管理系统 摘要:本文主要介绍了火车票管理系统,其中包括其选题功能概述,对该系统的方案方法设计,以及过程实现等内容。由于系统的代码量较大,因此将会较为抽象地对思想进行介绍,...
    99+
    2023-09-03
    数据库 课程设计 mysql qt python
  • C++实现职工工资管理系统课程设计
    本文实例为大家分享了C++实现职工工资管理系统的具体代码,供大家参考,具体内容如下 现在的大学里经常有一些课程设计 ,这不,我就遇到了 。 我们的c++老师 ,给了我们许 多的题目要...
    99+
    2022-11-13
  • C语言实现宾馆管理系统课程设计
    本文实例为大家分享了C语言实现宾馆管理系统的具体代码,供大家参考,具体内容如下 课程设计题目: 宾馆管理系统 一、需求分析 近年来,科技进步不仅促进了全球旅游企业的快速增长,而且指导...
    99+
    2022-11-13
  • C语言实现学籍管理系统课程设计
    本文实例为大家分享了C语言实现学籍管理系统的具体代码,供大家参考,具体内容如下 学校的课程设计,自己完成后整理了一下。自己用链表实现的一个较简单的学籍管理系统,都是通过一些链表以及文...
    99+
    2022-11-13
  • C语言实现图书管理系统课程设计
    目录设计要求实现代码运行结果本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家参考,具体内容如下 设计要求 设计图书管理系统 要求如下: 1.对书名,作者,编号,出版单位,...
    99+
    2022-11-13
  • C语言实现宿舍管理系统课程设计
    宿舍管理系统C语言源码,供大家参考,具体内容如下 内容摘要 学生宿舍管理系统时应对学生宿舍管理的现代化、网络化,逐步摆脱学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作