题目7飞机票订票系统

news2024/11/24 10:01:28

题目7飞机票订票系统
问题描述:
某公司每天有10航班(航班号、价格),每个航班的飞机,共有80个座位,
20排,每排4个位子。编号为A,BCD。如座位号:10D表示10排D座。

 

运行界面如下: 

1)能从键盘录入订票信息:乘客的姓名、身份证号、航班号、乘坐日期
座位号;

 

打印订票信息: 

 4)查询指定航班、指定日期的乘客信息;

2) 能根据身份证、航班号、乘坐日期修改乘坐座位;

部分代码

int queryMoney(pTICKET  head)//统计票价
{
    int count=0;
    int yearl,yearr;
    printf("输入左区间索引  输入右区间索引:");
    scanf("%d %d", &yearl,&yearr);
    int price = 0;
    pTICKET p=head->next;
    while (p!=NULL)
    {
        if ((yearl <= p->date.year) && (p->date.year <= yearr))
        {
            count += p->price;
            
        }

        p = p->next;
    }


    return count;
    
}

void booking(pTICKET *head)//订票

{

    pTICKET ticket, p;

    int i;

    char strDate[20], str[10];

    
    ticket = (pTICKET )malloc(sizeof(TICKET));

    printf("输入姓名:");

    scanf("%s", ticket->name);

    do

    {

        printf("输入身份证号:");

        scanf("%s", ticket->id);

        if (strlen(ticket->id) == 15 || strlen(ticket->id) == 18)

            break;

        printf("身份证位数错误!");

    } while (1);

    do

    {

        printf("输入航班号:");

        scanf("%s", ticket->flugNo);
    

        for (i = 0; i<N; i++)

        {

            if (strcmp(flug[i].no, ticket->flugNo) == 0)
            {
                ticket->price = flug[i].price;
                break;
            }
                

        }

        if (i<N)

            break;

        printf("指定航班号不存在!");

    } while (1);

    do

    {

        printf("输入乘坐日期:");

        scanf("%s", strDate);

        if (checkDate(strDate) == 1)

            break;

        printf("日期格式错误!");

    } while (1);

    ticket->date = strToDate(strDate);
    do

    {

        printf("输入座位号(如:10D):");

        scanf("%s", str);

        ticket->seat.row = atoi(str);

        if (ticket->seat.row<0 || ticket->seat.row>20)

        {

            printf("排数错误!");

            continue;

        }

        ticket->seat.col = str[strlen(str) - 1];

        if ('A'>ticket->seat.col || 'D'<ticket->seat.col)

        {

            printf("列数错误!");

            continue;

        }

        for (p =(*head)->next; p != NULL; p = p->next)

        {

            if (ticket->date.year == p->date.year&&ticket->date.month == p->date.month&&ticket->date.day == p->date.day)

            {

                if (strcmp(ticket->flugNo, p->flugNo) == 0)

                {

                    if (ticket->seat.row == p->seat.row&&ticket->seat.col == p->seat.col)

                    {

                        printf("座位已被预订!");

                        continue;

                    }

                }

            }

        }

        
        insert(&head, &ticket);

        

        
            break;

    } while (1);

}

void refund(pTICKET *head)//退票
{

    pTICKET ticket, p;
    pTICKET prev = *head;
    int i;

    char strDate[20], str[10];

    ticket = (TICKET *)malloc(sizeof(TICKET));

    printf("输入姓名:");

    scanf("%s", ticket->name);

    do{

        printf("输入航班号:");

        scanf("%s", ticket->flugNo);

        for (i = 0; i<N; i++)

        {

            if (strcmp(flug[i].no, ticket->flugNo) == 0)

                break;

        }

        if (i<N)

            break;

        printf("指定航班号不存在!");

    } while (1);

    do

    {

        printf("输入乘坐日期:");

        scanf("%s", strDate);

        if (checkDate(strDate) == 1)

            break;

        printf("日期格式错误!");

    } while (1);

    ticket->date = strToDate(strDate);

    do
    {
        p = (*head)->next;

        if (strcmp(ticket->name, p->name) == 0)

        {

            if (strcmp(ticket->flugNo, p->flugNo) == 0)

            {

                if (ticket->date.year == p->date.year&&ticket->date.month == p->date.month&&ticket->date.day == p->date.day)

                {
                    
                        prev->next= p->next;
                        free(p);
                        p = NULL;
                        return;
                    


                }

            }

        }
        p = p->next;
        prev = prev->next;

    } while (p != NULL&&prev != NULL);
        

        

    //printf("无此订票信息!");

    return;

}

程序定制访问链接

 【闲鱼】https://m.tb.cn/h.UTxLWFA?tk=v1mTdcsMxUp CZ0001 「我在闲鱼发布了【沙发靠垫抱枕大三角靠垫床头靠垫办公室腰靠背垫床上靠枕护颈枕】」
点击链接直接打开

欢迎在闲鱼联系我下单喔

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Games 101] Lecture 13-16 Ray Tracing

Ray Tracing Why Ray Tracing 光栅化不能得到很好的全局光照效果 软阴影光线弹射超过一次&#xff08;间接光照&#xff09; 光栅化是一个快速的近似&#xff0c;但是质量较低 光线追踪是准确的&#xff0c;但是较慢 Rasterization: real-time, ray tracing: offline生成一帧…

狗屎一样的面试官,你遇到过几个?

做了几年软件开发&#xff0c;我们都或多或少面试过别人&#xff0c;或者被别人面试过。大家最常吐槽的就是面试造火箭&#xff0c;进厂拧螺丝。今天就来吐槽一下那些奇葩&#xff08;gou&#xff09;一样的面试官 A 那是在我刚工作1年的时候&#xff0c;出去面试前端开发。 那…

分布式开源存储架构Ceph概述

概述 k8s的后端存储中ceph应用较为广泛&#xff0c;当前的存储市场仍然是由一些行业巨头垄断&#xff0c;但在开源市场还是有一些不错的分布式存储&#xff0c;其中包括了Ceph、Swift、sheepdog、glusterfs等 什么是ceph&#xff1f; Ceph需要具有可靠性&#xff08;reliab…

C++11标准模板(STL)- 算法(std::partition_point)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 定位已划分范围的划分点 …

线上崩了?一招教你快速定位问题。

&#x1f44f; 背景 正浏览着下班后去哪家店撸串&#xff0c;结果隔壁组同事囧着脸过来问我&#xff1a;大哥&#xff0c;赶紧过去帮忙看个问题&#xff01;客户反馈很多次了&#xff0c;一直找不出问题出在哪里&#xff01;&#xff01;&#xff01; 我&#xff1a;能不能有…

利用WPS功能破解及本地恢复密码

利用WPS功能破解及本地恢复密码 认识WPS功能 ​ WPS&#xff08;Wi-Fi Protected Setup&#xff09;是Wi-Fi保护设置的英文缩写。WPS是由Wi-Fi联盟组织实施的认证项目&#xff0c;主要致力于简化无线局域网安装及安全性能的配置工作。WPS并不是一项新增的安全性能&#xff0c;它…

数据结构之链表(单链表)

文章目录前言一、链表二、链表的八种结构1.单向或者双向2.带头或者不带头&#xff08;头&#xff1a;哨兵位&#xff09;3.循环或者不循环三、单链表1.接口2.接口的实现1.开辟一个新的节点1.打印单链表2.头插3.尾插4.头删5.尾删6.单链表的查找7.在pos位置之前插入数据8.在pos位…

MySQL8.0概述及新特性

文章目录学习资料常见的数据库管理系统排名&#xff08;DBMS&#xff09;SQL的分类DDL&#xff1a;数据定义语言DML&#xff1a;数据操作语言DCL&#xff1a;数据控制语言MySQL8.0新特性性能优化默认字符集DDL的原子化计算列宽度属性窗口函数公用表表达式索引新特性支持降序索引…

面试了20+前端大厂,整理出的面试题

事件是什么&#xff1f;事件模型&#xff1f; 事件是用户操作网页时发生的交互动作&#xff0c;比如 click/move&#xff0c; 事件除了用户触发的动作外&#xff0c;还可以是文档加载&#xff0c;窗口滚动和大小调整。事件被封装成一个 event 对象&#xff0c;包含了该事件发生…

RabbitMQ Windows 安装、配置、使用 - 小白教程

1、配套文件 下载erlang&#xff1a;http://www.erlang.org/downloads/ 下载RabbitMQ&#xff1a;http://www.rabbitmq.com/download.html 2、RabbitMQ服务端代码是使用并发式语言Erlang编写的&#xff0c;安装Rabbit MQ的前提是安装Erlang&#xff0c;双击otp_win64_21.1.ex…

计算机毕业设计springboot+vue+elementUI汽车车辆充电桩管理系统

项目介绍 随着我国汽车行业的不断发展&#xff0c;电动汽车已经开始逐步的领导整个汽车行业&#xff0c;越来越多的人在追求环保和经济实惠的同时开始使用电动汽车&#xff0c;电动汽车和燃油汽车最大的而不同就是 需要充电&#xff0c;同时我国的基础充电桩也开始遍及了大多数…

Java 异常处理

目录 一、异常的基本概念 二 、为何需要异常处理 三 、异常的处理 四 、异常类的继承架构 五 、抛出异常 5.1、程序中抛出异常 5.2、指定方法抛出异常 六 、自定义异常 不管使用的那种语言进行程序设计&#xff0c;都会产生各种各样的错误。 Java 提供有强大的异常处理…

商业银行普惠金融可持续发展综合能力呈现梯队化,专项领域各有所长

易观分析&#xff1a;普惠金融有别于传统的金融体系&#xff0c;强调构建包容性、公平性的金融服务生态&#xff0c;商业银行提升可持续发展的综合能力需关注五个方面的因素&#xff1a;获客能力上以普惠客群的金融需求为锚点&#xff0c;增强银行服务生态的多样性&#xff0c;…

罗正雄:基于展开交替优化的盲超分算法DAN

SFFAI 90—超分辨率专题《罗正雄&#xff1a;基于展开交替优化的盲超分算法》 退化表达式为&#xff1a; 盲超分就是已知y&#xff0c;求x 这个求解过程可以表示为如下最优化问题&#xff1a;求出使得以下表达式最小的k和x值 盲超分存在的挑战 病态&#xff1a;退化过程会损…

Leetcode 891. 子序列宽度之和

一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。给你一个整数数组 nums &#xff0c;返回 nums 的所有非空 子序列 的 宽度之和 。由于答案可能非常大&#xff0c;请返回对 109 7 取余 后的结果。子序列 定义为从一个数组里删除一些&#xff08;或者不删除&#xf…

基于matlab目标雷达横截面建模(附源码)

目录 一、介绍 二、简单点目标 RCS 三、复杂目标RCS 四、四个散射体组成的目标进行建模 五、具有多个散射体的扩展目标的宽带RCS 六、波动目标RCS 七、偏振目标RCS 八、结论 九、程序 此示例演示如何以不断提高的保真度对雷达目标进行建模。该示例介绍了简单点目标的雷…

MYSQL索引详解和优化

索引的定义 我们在看书的时候&#xff0c;都知道有目录&#xff0c;我们可以通过目录快速的找到书中的内容&#xff0c;而书中的目录就是充当书的索引。在数据库中的索引也是一样的。 索引的定义&#xff1a; 索引是帮助存储引擎快速获取数据的一种数据结构&#xff0c;即数据…

flex设置为1后为什么要设置width为0,和布局超出省略号为什么会超出容器,为什么会没有用

前言 最近在做手机端的页面,制作过程出现了flex布局的一些问题,再次记录在解决办法关于在flex:1的情况下设置为width的效果 如果没有设置width,当内部元素的内容大小超过平均分配的剩余空间时,元素的宽度等于内容大小,如果设置了width并且这个width的大小小于平均分配的剩余空…

[Linux] 如何查看内核 Kernel 版本(查多个Kernel的方法)

上图来源于&#xff1a;turnoff.us&#xff0c;描述了Linux内核结构&#xff0c;有兴趣的同学可以访问原址看看 文章目录什么是Linux内核查看Linux内核Kernel的场景情况查看 Kernel 的几种方式1、使用 uname2、使用 hostnamectl 命令3、查看 /proc/version4、使用 rpm 命令5、使…

2.9 场景式文案,原来是这样子写的【玩赚小红书】

人的生活&#xff0c;就是一个场景连着另一个场景&#xff0c;循环往复&#xff0c;朝朝暮暮。 文案&#xff0c;只要切入了用户的场景&#xff0c;就可以切入他的生活&#xff0c;进而切入他的心。 什么是「 场景化文案」 &#xff1f;可以看一组对比&#xff1a; 非场景文…