C++实现航空订票程序

C++实现航空订票程序

程序设计

  • 题目描述:设计一个航空订票系统,要求能够查询航班、预订航班、退订航班等功能。

  • 程序设计思路:将航班信息、旅客信息以及订单信息进行数据结构的设计,然后通过调用相应的函数实现不同的功能。

程序代码

  • 数据结构:
//航班信息结构体
struct flight{
    string flightno;  //航班号
    string departure;  //起点
    string destination;  //终点
    date ddate;    //出发日期
    time deptime;  //出发时间
    time arrtime;  //到达时间
    double ticketprice;  //机票价格
    int ticketnum;   //可用票数
};

//旅客信息结构体
struct passenger{
    string id;     //身份证号
    string name;   //姓名
    string tel;    //联系电话
};

//订单信息结构体
struct order{
    string orderid;  //订单编号
    string flightno;  //航班号
    string passengerid;  //旅客身份证号
    int ticketnum;  //预订票数
    date orderdate;  //预订日期
    double totalprice;  //总价
};
  • 函数说明:
//输入航班信息
void inputflight(flight &f);

//输入旅客信息
void inputpassenger(passenger &p);

//输入日期
date inputdate();

//输入时间
time inputtime();

//用于输出指定日期的航班信息
void searchdateflight(vector<flight> &f);

//用于预订航班
void bookflight(vector<flight> &f, vector<passenger> &p, vector<order> &o);

//用于进行退票
void cancelorder(vector<order> &o, vector<flight> &f);
  • 程序主函数
int main(){
    vector<flight> f_list;
    vector<passenger> p_list;
    vector<order> o_list;
    int choice;
    while(1){
        printf("航空订票系统\n");
        printf("1.输入航班信息\n2.查询航班\n3.预订航班\n4.查询订单\n5.退票\n0.退出系统\n请选择操作:");
        scanf("%d", &choice);
        switch(choice){
            case 1:
                flight f;
                inputflight(f);
                f_list.push_back(f);
                break;
            case 2:
                searchdateflight(f_list);
                break;
            case 3:
                bookflight(f_list, p_list, o_list);
                break;
            case 4:
                printf("订单信息如下:\n");
                for(int i=0; i<o_list.size(); i++){
                    printf("订单编号:%s,航班号:%s,乘客身份证号:%s,预订票数:%d,总价:%0.2f\n",
                           o_list[i].orderid.c_str(), o_list[i].flightno.c_str(), o_list[i].passengerid.c_str(),
                           o_list[i].ticketnum, o_list[i].totalprice);
                }
                break;
            case 5:
                cancelorder(o_list, f_list);
                break;
            case 0:
                printf("谢谢使用!\n");
                exit(0);
                break;
            default:
                printf("输入无效,请重新输入!\n");
                break;
        }
    }
    return 0;
}

示例说明

  • 示例1:输入航班信息

输入以下数据:

航班号:CA987
起点:北京
终点:广州
出发日期:2021-09-10
出发时间:09:15
到达时间:13:20
机票价格:1200
可预订票数:50

程序执行结果:

航空订票系统
1.输入航班信息
2.查询航班
3.预订航班
4.查询订单
5.退票
0.退出系统
请选择操作:1
航班号:CA987
起点:北京
终点:广州
出发日期:2021-09-10
出发时间:09:15
到达时间:13:20
机票价格:1200
可预订票数:50
输入航班信息成功!
  • 示例2:查询航班

输入以下数据:

输入查询日期:2021-09-10

程序执行结果:

航空订票系统
1.输入航班信息
2.查询航班
3.预订航班
4.查询订单
5.退票
0.退出系统
请选择操作:2
查询日期:2021-09-10
CA987,北京 -> 广州,出发时间:09:15,到达时间:13:20,机票价格:1200,可预订票数:50

以上就是C++实现航空订票程序的完整攻略,包括程序设计思路、数据结构、函数说明、程序主函数以及两个示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现航空订票程序 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 深入讲解数据库中Decimal类型的使用以及实现方法

    下面我来给您详细讲解“深入讲解数据库中Decimal类型的使用以及实现方法”的完整攻略。 深入讲解数据库中Decimal类型的使用以及实现方法 什么是Decimal类型 Decimal类型是一种用于存储精确数值的数据类型。在数据库中常用于存储货币、利率、精度要求高的计算结果等场景。与浮点型(float)不同的是,Decimal类型不会存在精度损失的情况。 D…

    C 2023年5月22日
    00
  • C语言实现图书管理系统开发

    C语言实现图书管理系统开发攻略 1. 程序设计 图书管理系统是一个比较复杂的系统,需要多个模块进行协同工作,因此我们需要仔细设计整个系统的流程。 1.1 系统流程 在设计图书管理系统时,需要考虑以下几个方面的流程: 图书管理:包括图书的增加、删除、修改和查询等操作; 读者管理:包括读者的信息录入、修改和查询等操作; 借还管理:包括图书的借阅和归还等操作。 1…

    C 2023年5月23日
    00
  • C语言实现抢红包算法

    C语言实现抢红包算法 在C语言中实现抢红包算法可以分为以下几个步骤: 步骤一:确定红包总金额以及红包个数 在C语言中,可以通过从键盘输入获取红包总金额和红包个数。可以用 scanf() 函数来实现,代码示例如下: printf("请输入红包总金额:"); scanf("%f",&total_money); pr…

    C 2023年5月22日
    00
  • C++AVL树4种旋转详讲(左单旋、右单旋、左右双旋、右左双旋)

    C++AVL树4种旋转详讲 什么是AVL树? AVL树是一种自平衡二叉搜索树,它在插入或删除一个节点时,会通过旋转操作进行自平衡。AVL树的特点是保证树的高度始终保持在O(logN)的水平,从而保证了树的查询、插入、删除等操作时间复杂度保持在O(logN)的水平。因此在大规模数据的场景下,使用AVL树能够取得很好的性能表现。 AVL树的基本操作 AVL树的基…

    C 2023年5月22日
    00
  • Win10更新TH2失败错误0x8007002c-0x3000d怎么办

    Win10更新TH2失败错误0x8007002c-0x3000d怎么办 在Windows 10操作系统升级到TH2(Threshold 2)时,有可能出现错误代码0x8007002c-0x3000d,导致升级失败。本文将详细讲解如何解决这个问题。 原因分析 错误代码0x8007002c-0x3000d通常表示系统中某些文件损坏或者遭到病毒感染。这些因素可能会…

    C 2023年5月23日
    00
  • C语言中如何进行代码注释?

    当我们写代码时,必须添加注释来使代码更加易于阅读和理解。在C语言中,有两种类型的注释,即单行注释和多行注释。 单行注释 单行注释用于在代码行末尾添加注释。在C语言中,单行注释以双斜杠“//”开始,直到该行的结尾。例如: // 这是一条单行注释 int a = 10; // 这是在同一行之后的注释 多行注释 多行注释用于在一段代码中添加注释。在C语言中,多行注…

    C 2023年4月27日
    00
  • C语言指针基础知识实例讲解

    下面我就来详细讲解一下“C语言指针基础知识实例讲解”的完整攻略。 知识点概述 首先,我们需要了解一下指针是什么。指针是一个变量,其值为另一个变量的地址。换句话说,指针是一种存储另一个变量地址的变量。在C语言中,指针的数据类型在其前面加上*号。 我们还需要知道如何声明和初始化指针。指针的声明与其他变量类似,只需在变量名前面加上*号。例如,int *p表示p是一…

    C 2023年5月23日
    00
  • C语言实现24点问题详解

    C语言实现24点问题详解 在解决24点问题时,主要思路是找出四个数字任意排列后,通过加、减、乘、除的算术运算,得出结果为24的表达式。 实现思路 输入四个数字,利用嵌套的for循环全排列,共有4×3×2×1 = 24种排列方式。 然后通过嵌套的for循环枚举其中的3个数字,并针对这3个数字求解所有的算术运算,共有3×2×1 = 6种组合方式(不考虑顺序)。 …

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部